michangarrito/orchestration/inventarios/DATABASE_INVENTORY.yml
rckrdmrd 3bba4ce6d7 feat: Add complete epic documentation and orchestration inventories
Sprint 3-4 deliverables:
- 28 epics documented (MCH-001 to MCH-028)
- 7 development phases fully documented
- DATABASE_INVENTORY.yml, BACKEND_INVENTORY.yml, FRONTEND_INVENTORY.yml
- Task traces for database and frontend

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:40:13 -06:00

332 lines
9.1 KiB
YAML

# DATABASE INVENTORY - MiChangarrito
# Version: 1.0.0
# Ultima actualizacion: 2026-01-07
# Sistema: SIMCO - NEXUS v4.0
metadata:
proyecto: "michangarrito"
componente: "database"
db_name: "michangarrito_platform"
version_pg: "16+"
estado: "100% DDL completado"
# ============================================================================
# RESUMEN
# ============================================================================
resumen:
total_schemas: 10
total_tablas: 29
total_archivos_ddl: 13
rls_habilitado: true
multi_tenant: true
tenant_column: "tenant_id"
# ============================================================================
# ARCHIVOS DDL
# ============================================================================
archivos_ddl:
- archivo: "00-extensions.sql"
descripcion: "Extensiones PostgreSQL"
contenido:
- uuid-ossp
- pgcrypto
estado: completado
- archivo: "01-schemas.sql"
descripcion: "Creacion de schemas"
schemas_creados:
- public
- auth
- catalog
- sales
- inventory
- customers
- orders
- subscriptions
- messaging
- integrations
estado: completado
- archivo: "02-functions.sql"
descripcion: "Funciones utilitarias"
funciones:
- current_tenant_id()
- set_tenant_id(uuid)
- updated_at_trigger()
estado: completado
- archivo: "03-public.sql"
descripcion: "Schema public - tenants base"
tablas:
- tenants
- tenant_settings
estado: completado
- archivo: "04-auth.sql"
descripcion: "Autenticacion y usuarios"
tablas:
- users
- sessions
- roles
- permissions
estado: completado
- archivo: "05-catalog.sql"
descripcion: "Catalogo de productos"
tablas:
- categories
- products
- product_variants
estado: completado
- archivo: "06-sales.sql"
descripcion: "Punto de venta"
tablas:
- sales
- sale_items
- payment_methods
- cash_registers
estado: completado
- archivo: "07-inventory.sql"
descripcion: "Control de inventario"
tablas:
- stock_movements
- inventory_counts
estado: completado
- archivo: "08-customers.sql"
descripcion: "Clientes y fiados"
tablas:
- customers
- credit_accounts
- credit_transactions
estado: completado
- archivo: "09-orders.sql"
descripcion: "Pedidos"
tablas:
- orders
- order_items
estado: completado
- archivo: "10-subscriptions.sql"
descripcion: "Planes y suscripciones"
tablas:
- plans
- subscriptions
- token_packages
- token_usage
estado: completado
- archivo: "11-messaging.sql"
descripcion: "Mensajeria WhatsApp"
tablas:
- conversations
- messages
estado: completado
- archivo: "12-integrations.sql"
descripcion: "Integraciones por tenant"
tablas:
- tenant_integrations
- integration_logs
estado: completado
# ============================================================================
# SCHEMAS DETALLADOS
# ============================================================================
schemas:
public:
descripcion: "Datos globales y tenants"
tablas:
- nombre: tenants
columnas: [id, name, slug, settings, status, created_at]
rls: false
descripcion: "Organizaciones/negocios"
- nombre: tenant_settings
columnas: [id, tenant_id, key, value]
rls: true
descripcion: "Configuraciones por tenant"
auth:
descripcion: "Autenticacion y sesiones"
tablas:
- nombre: users
columnas: [id, tenant_id, phone, email, password_hash, name, role, status]
rls: true
descripcion: "Usuarios del sistema"
- nombre: sessions
columnas: [id, user_id, token, device_info, expires_at]
rls: true
descripcion: "Sesiones activas"
- nombre: roles
columnas: [id, tenant_id, name, permissions]
rls: true
descripcion: "Roles personalizados"
catalog:
descripcion: "Catalogo de productos"
tablas:
- nombre: categories
columnas: [id, tenant_id, name, parent_id, image_url, sort_order]
rls: true
descripcion: "Categorias de productos"
- nombre: products
columnas: [id, tenant_id, category_id, sku, name, description, price, cost, image_url, barcode, track_inventory, status]
rls: true
descripcion: "Productos"
- nombre: product_variants
columnas: [id, product_id, name, sku, price, attributes]
rls: true
descripcion: "Variantes de producto"
sales:
descripcion: "Punto de venta"
tablas:
- nombre: sales
columnas: [id, tenant_id, user_id, customer_id, subtotal, tax, discount, total, payment_method, status, notes]
rls: true
descripcion: "Ventas registradas"
- nombre: sale_items
columnas: [id, sale_id, product_id, quantity, unit_price, discount, total]
rls: true
descripcion: "Detalle de venta"
- nombre: payment_methods
columnas: [id, tenant_id, name, type, settings, active]
rls: true
descripcion: "Metodos de pago"
- nombre: cash_registers
columnas: [id, tenant_id, name, opening_balance, current_balance, status]
rls: true
descripcion: "Cajas registradoras"
inventory:
descripcion: "Control de inventario"
tablas:
- nombre: stock_movements
columnas: [id, tenant_id, product_id, type, quantity, reason, reference_id, user_id]
rls: true
descripcion: "Movimientos de stock"
- nombre: inventory_counts
columnas: [id, tenant_id, product_id, expected, counted, difference, user_id, status]
rls: true
descripcion: "Conteos de inventario"
customers:
descripcion: "Clientes y credito"
tablas:
- nombre: customers
columnas: [id, tenant_id, name, phone, email, address, credit_enabled, credit_limit, balance]
rls: true
descripcion: "Clientes"
- nombre: credit_accounts
columnas: [id, customer_id, limit, balance, status]
rls: true
descripcion: "Cuentas de credito (fiados)"
- nombre: credit_transactions
columnas: [id, credit_account_id, type, amount, sale_id, notes]
rls: true
descripcion: "Movimientos de credito"
orders:
descripcion: "Pedidos"
tablas:
- nombre: orders
columnas: [id, tenant_id, customer_id, channel, status, total, delivery_address, scheduled_at]
rls: true
descripcion: "Pedidos"
- nombre: order_items
columnas: [id, order_id, product_id, quantity, unit_price, notes]
rls: true
descripcion: "Detalle de pedido"
subscriptions:
descripcion: "Planes y tokens IA"
tablas:
- nombre: plans
columnas: [id, name, price, features, token_quota, status]
rls: false
descripcion: "Planes disponibles"
- nombre: subscriptions
columnas: [id, tenant_id, plan_id, status, current_period_start, current_period_end]
rls: true
descripcion: "Suscripciones activas"
- nombre: token_packages
columnas: [id, name, tokens, price]
rls: false
descripcion: "Paquetes de tokens"
- nombre: token_usage
columnas: [id, tenant_id, tokens_used, operation, metadata]
rls: true
descripcion: "Consumo de tokens"
messaging:
descripcion: "WhatsApp"
tablas:
- nombre: conversations
columnas: [id, tenant_id, customer_phone, status, last_message_at]
rls: true
descripcion: "Conversaciones"
- nombre: messages
columnas: [id, conversation_id, direction, type, content, status, wa_message_id]
rls: true
descripcion: "Mensajes"
integrations:
descripcion: "Integraciones externas"
tablas:
- nombre: tenant_integrations
columnas: [id, tenant_id, provider, credentials, settings, status]
rls: true
descripcion: "Integraciones por tenant"
- nombre: integration_logs
columnas: [id, integration_id, operation, request, response, status]
rls: true
descripcion: "Logs de integraciones"
# ============================================================================
# COMANDOS UTILES
# ============================================================================
comandos:
recrear_db: "./drop-and-recreate-database.sh"
conectar: "psql -d michangarrito_platform"
ejecutar_ddl: "psql -d michangarrito_platform -f database/schemas/*.sql"
# ============================================================================
# MIGRACIONES PENDIENTES
# ============================================================================
migraciones_pendientes: []
# ============================================================================
# NOTAS
# ============================================================================
notas:
- "RLS habilitado en todas las tablas excepto plans y token_packages"
- "Usar current_tenant_id() para obtener tenant del contexto"
- "Trigger updated_at automatico en todas las tablas"
- "Multi-tenant por columna tenant_id"