michangarrito/backups/docs-backup-2026-01-10/docs/90-transversal/arquitectura/ARQUITECTURA-DATABASE.md
rckrdmrd 928eb795e6 [SIMCO-V38] feat: Actualizar a SIMCO v3.8.0 + cambios apps
- 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>
2026-01-10 08:53:05 -06:00

3.2 KiB

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