erp-core-database-v2/ddl/README.md
Adrian Flores Cortes 9060cf7715 docs: Update DDL README with comprehensive schema documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 23:19:23 -06:00

8.6 KiB

Database DDL Files - erp-core

Version: 1.1.0 Fecha: 2026-02-03 Total Archivos: 38 Total Schemas: 20


Convenciones de Numeracion

Los archivos DDL siguen un esquema de numeracion por rangos segun dominio funcional:

Rango Dominio Descripcion
01-09 Foundation Auth, core, mobile, billing base
10-15 System Audit, feature-flags, webhooks, storage, AI, WhatsApp
16-19 Partners & Products Partners, products, warehouses, attributes
20-24 Catalogs & Operations Core catalogs, inventory, sales, purchases, invoices
25-29 Fiscal & CFDI Catalogos SAT, facturacion electronica CFDI
30-49 Reserved Expansiones futuras
50-59 Financial Contabilidad completa
60-69 Projects Proyectos y timesheets

Archivos DDL por Dominio

Foundation (01-09)

# Archivo Schema Descripcion
01 01-auth-profiles.sql auth Usuarios, sesiones, perfiles
02 02-auth-devices.sql auth Dispositivos, biometria
03 03-core-branches.sql core Sucursales, horarios
04 04-mobile.sql mobile Sesiones movil, push, sync
05 05-billing-usage.sql billing Suscripciones, planes, uso
06 06-auth-extended.sql auth OAuth, MFA extendido
07 07-users-rbac.sql auth Roles, permisos, grupos
08 08-plans.sql billing Planes detallados, features
09 09-notifications.sql notifications Notificaciones multicanal

System (10-15)

# Archivo Schema Descripcion
10 10-audit.sql audit Logs de auditoria completos
11 11-feature-flags.sql feature_flags Feature toggles por tenant
12 12-webhooks.sql webhooks Suscripciones y entregas
13 13-storage.sql storage Archivos, buckets, uploads
14 14-ai.sql ai Modelos, prompts, completions
15 15-whatsapp.sql whatsapp Conversaciones, mensajes

Partners & Products (16-19)

# Archivo Schema Descripcion
16 16-partners.sql partners Clientes/proveedores, tax_info, segments
17 17-products.sql products Productos comerciales
18 18-warehouses.sql inventory Almacenes, zonas, ubicaciones
19 19-product-attributes.sql products Atributos, variantes

Catalogs & Operations (20-24)

# Archivo Schema Descripcion
20 20-core-catalogs.sql core Paises, monedas, UoM, secuencias
21 21-inventory.sql inventory Stock, lots, pickings, transfers
22 22-sales.sql sales Ordenes de venta, cotizaciones
23 23-purchases.sql purchases Ordenes de compra
24 24-invoices.sql billing Facturas operacionales, pagos

Fiscal & CFDI (25-29)

# Archivo Schema Descripcion
25 25-payment-terminals.sql billing Terminales punto de venta
26 26-fiscal-catalogs.sql fiscal Catalogos SAT (regimenes, usos CFDI, formas pago)
27 27-cfdi-core.sql fiscal CFDI: certificados, facturas CFDI, conceptos
28 28-cfdi-operations.sql fiscal CFDI: cancelaciones, logs, complementos pago
29 29-cfdi-rls-functions.sql fiscal CFDI: RLS, funciones auxiliares, triggers, vistas

Financial (50-57)

# Archivo Schema Descripcion
50 50-financial-schema.sql financial Schema y extensiones
51 51-financial-accounts.sql financial Plan de cuentas, tipos
52 52-financial-journals.sql financial Diarios contables
53 53-financial-entries.sql financial Asientos contables
54 54-financial-invoices.sql financial Facturas contables
55 55-financial-payments.sql financial Pagos contables
56 56-financial-taxes.sql financial Impuestos
57 57-financial-bank-reconciliation.sql financial Conciliacion bancaria

Projects (60+)

# Archivo Schema Descripcion
60 60-projects-timesheets.sql projects Hojas de tiempo

Matching (46)

# Archivo Schema Descripcion
46 46-purchases-matching.sql purchases 3-way matching PO/Receipt/Invoice

Schemas PostgreSQL

Schema Proposito DDL Files
auth Autenticacion y usuarios 01, 02, 06, 07
audit Logs de auditoria 10
billing Facturacion SaaS 05, 08, 24
core Catalogos compartidos 03, 20
feature_flags Feature toggles 11
financial Contabilidad 50-57
fiscal Catalogos SAT y CFDI 26, 27, 28, 29
inventory Inventario y stock 18, 21
mobile App movil 04
notifications Notificaciones 09
partners Clientes/proveedores 16
products Productos 17, 19
projects Proyectos 60
purchases Compras 23, 46
sales Ventas 22
storage Archivos 13
webhooks Webhooks 12
whatsapp WhatsApp 15
ai Inteligencia artificial 14

Orden de Ejecucion

Para una instalacion limpia, ejecutar en orden numerico:

for f in $(ls *.sql | sort -n); do
  psql -d erp_db -f "$f"
done

Dependencias importantes:

  1. 01-auth-profiles.sql debe ejecutarse primero (define auth.users, auth.tenants)
  2. 50-financial-schema.sql antes del resto de financial
  3. 20-core-catalogs.sql antes de inventory/sales/purchases
  4. 24-invoices.sql y 26-fiscal-catalogs.sql antes de 27-cfdi-core.sql
  5. 27-cfdi-core.sql antes de 28-cfdi-operations.sql y 29-cfdi-rls-functions.sql

Notas de Sprint 2 (2026-01-24)

Cambios realizados:

  1. 21-inventory.sql: Agregadas tablas lots y pickings con ENUMs
  2. 16-partners.sql: Agregadas tablas partner_tax_info y partner_segments
  3. 26-fiscal-catalogs.sql: Renumerado de 21 a 26 para evitar conflicto

Renumeracion historica:

  • 21-fiscal-catalogs.sql -> 26-fiscal-catalogs.sql (Sprint 2, 2026-01-24)
  • 25-fiscal-catalogs.sql eliminado (duplicado)

Notas de Sprint - Modulo CFDI (2026-02-03)

Archivos creados:

  1. 27-cfdi-core.sql: Tablas core del modulo CFDI

    • cfdi_certificates: Certificados CSD para timbrado
    • cfdi_pac_configurations: Configuracion de PACs
    • cfdi_invoices: Extension de facturas con datos CFDI 4.0
    • cfdi_invoice_items: Conceptos con claves SAT
    • cfdi_invoice_item_taxes: Impuestos por concepto
    • cfdi_related_documents: CFDIs relacionados
  2. 28-cfdi-operations.sql: Operaciones CFDI

    • cfdi_cancellation_requests: Solicitudes de cancelacion
    • cfdi_operation_logs: Audit trail de operaciones
    • cfdi_payment_complements: Complementos de pago (REP)
    • cfdi_payment_complement_documents: Documentos en complemento
    • cfdi_stamp_queue: Cola de timbrado asincrono
  3. 29-cfdi-rls-functions.sql: Seguridad y funciones

    • RLS policies para multi-tenancy
    • Funciones auxiliares (validate_rfc, generate_folio, etc.)
    • Triggers de auditoria y validacion
    • Vistas para reportes y monitoreo

ENUMs creados:

  • cfdi_voucher_type: Tipos de comprobante (I, E, T, N, P)
  • csd_certificate_status: Estados de certificado CSD
  • cfdi_status: Estados del CFDI
  • cfdi_relation_type: Tipos de relacion entre CFDIs
  • cfdi_cancellation_reason: Motivos de cancelacion SAT
  • cancellation_request_status: Estados de solicitud cancelacion
  • cfdi_operation_type: Tipos de operacion para logs
  • payment_complement_status: Estados del complemento de pago

Funciones creadas:

  • fiscal.get_default_certificate(): Obtener certificado activo
  • fiscal.get_active_pac(): Obtener PAC configurado
  • fiscal.validate_rfc(): Validar RFC mexicano
  • fiscal.generate_cfdi_folio(): Generar folios consecutivos
  • fiscal.can_cancel_cfdi(): Verificar si CFDI puede cancelarse
  • fiscal.get_invoice_payment_balance(): Saldo de factura PPD
  • fiscal.get_cfdi_summary(): Resumen de CFDIs por periodo

Vistas creadas:

  • fiscal.v_cfdi_pending_stamp: CFDIs pendientes de timbrar
  • fiscal.v_cfdi_pending_cancellations: Cancelaciones pendientes
  • fiscal.v_certificates_expiring: Certificados por vencer
  • fiscal.v_pac_stamp_usage: Uso de timbres por PAC
  • fiscal.v_invoices_pending_payment: Facturas PPD con saldo

Referencias

  • Entities: docs/_definitions/ENTITIES-CATALOG.md
  • Services: docs/_definitions/SERVICES-CATALOG.md
  • Invoices/Payments: docs/_definitions/INVOICES-PAYMENTS-REFERENCE.md

Documentacion actualizada: 2026-02-03 - Modulo CFDI