- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
163 lines
3.2 KiB
Markdown
163 lines
3.2 KiB
Markdown
# Arquitectura de Base de Datos - MiChangarrito
|
|
|
|
**Última actualización**: 2026-01-05
|
|
|
|
---
|
|
|
|
## Resumen
|
|
|
|
| Métrica | Valor |
|
|
|---------|-------|
|
|
| Motor | PostgreSQL 15 |
|
|
| Schemas | 9 |
|
|
| Tablas | 27 |
|
|
| Extensiones | 4 |
|
|
|
|
---
|
|
|
|
## Schemas
|
|
|
|
| Schema | Tablas | Descripción |
|
|
|--------|--------|-------------|
|
|
| `public` | 2 | Tenants y configuración global |
|
|
| `auth` | 3 | Autenticación y sesiones |
|
|
| `catalog` | 3 | Productos y categorías |
|
|
| `sales` | 4 | Ventas y pagos |
|
|
| `inventory` | 2 | Stock y movimientos |
|
|
| `customers` | 3 | Clientes y fiados |
|
|
| `orders` | 2 | Pedidos WhatsApp |
|
|
| `subscriptions` | 5 | Planes y tokens |
|
|
| `messaging` | 3 | Conversaciones y mensajes |
|
|
|
|
---
|
|
|
|
## Estructura por Schema
|
|
|
|
### public
|
|
```
|
|
tenants - Negocios registrados
|
|
tenant_configs - Configuración por tenant
|
|
```
|
|
|
|
### auth
|
|
```
|
|
users - Usuarios del sistema
|
|
sessions - Sesiones activas
|
|
otp_codes - Códigos de verificación
|
|
```
|
|
|
|
### catalog
|
|
```
|
|
categories - Categorías de productos
|
|
products - Catálogo de productos
|
|
product_templates - Templates predefinidos
|
|
```
|
|
|
|
### sales
|
|
```
|
|
sales - Ventas realizadas
|
|
sale_items - Items de cada venta
|
|
payments - Pagos recibidos
|
|
daily_closures - Cortes de caja
|
|
```
|
|
|
|
### inventory
|
|
```
|
|
inventory_movements - Entradas/salidas de stock
|
|
stock_alerts - Alertas de stock bajo
|
|
```
|
|
|
|
### customers
|
|
```
|
|
customers - Clientes registrados
|
|
fiados - Cuentas de crédito
|
|
fiado_payments - Abonos a fiados
|
|
```
|
|
|
|
### orders
|
|
```
|
|
orders - Pedidos de WhatsApp
|
|
order_items - Items de cada pedido
|
|
```
|
|
|
|
### subscriptions
|
|
```
|
|
plans - Planes disponibles
|
|
subscriptions - Suscripciones activas
|
|
tenant_token_balance - Saldo de tokens
|
|
token_packages - Paquetes de recarga
|
|
token_usage - Consumo de tokens
|
|
```
|
|
|
|
### messaging
|
|
```
|
|
conversations - Sesiones de chat
|
|
messages - Mensajes individuales
|
|
notifications - Notificaciones push
|
|
```
|
|
|
|
---
|
|
|
|
## Extensiones
|
|
|
|
- `uuid-ossp`: Generación de UUIDs
|
|
- `pgcrypto`: Encriptación
|
|
- `pg_trgm`: Búsqueda por similitud
|
|
- `btree_gin`: Índices GIN para búsquedas
|
|
|
|
---
|
|
|
|
## Multi-tenancy
|
|
|
|
Todas las tablas excepto `public.tenants` incluyen:
|
|
- Columna `tenant_id UUID NOT NULL`
|
|
- Índice en `tenant_id`
|
|
- Trigger automático para asignar tenant
|
|
|
|
---
|
|
|
|
## Convenciones
|
|
|
|
### Columnas Comunes
|
|
- `id`: UUID PRIMARY KEY
|
|
- `tenant_id`: UUID NOT NULL (multi-tenant)
|
|
- `created_at`: TIMESTAMPTZ DEFAULT NOW()
|
|
- `updated_at`: TIMESTAMPTZ DEFAULT NOW()
|
|
- `is_active`: BOOLEAN DEFAULT TRUE
|
|
|
|
### Índices
|
|
- PK en `id`
|
|
- Índice en `tenant_id`
|
|
- Índices en FKs
|
|
- Índices en columnas de búsqueda frecuente
|
|
|
|
### Triggers
|
|
- `set_updated_at`: Actualiza `updated_at` automáticamente
|
|
|
|
---
|
|
|
|
## Conexión
|
|
|
|
```
|
|
Host: localhost (dev)
|
|
Puerto: 5432
|
|
Database: michangarrito_dev
|
|
Usuario: michangarrito_dev
|
|
```
|
|
|
|
---
|
|
|
|
## Scripts
|
|
|
|
| Script | Descripción |
|
|
|--------|-------------|
|
|
| `database/scripts/create-database.sh` | Crear BD desde cero |
|
|
| `database/scripts/recreate-database.sh` | Recrear BD (destructivo) |
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [Environment Inventory](../../orchestration/environment/ENVIRONMENT-INVENTORY.yml)
|
|
- [Contexto del Proyecto](../../orchestration/00-guidelines/CONTEXTO-PROYECTO.md)
|