erp-retail-database-v2/README.md
rckrdmrd f7c584278a Migración desde erp-retail/database - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:11:37 -06:00

84 lines
2.5 KiB
Markdown

# Base de Datos - ERP Retail/POS
## Resumen
| Aspecto | Valor |
|---------|-------|
| **Schema principal** | `retail` |
| **Tablas específicas** | 16 |
| **ENUMs** | 6 |
| **Hereda de ERP-Core** | 144 tablas (12 schemas) |
## Prerequisitos
1. **ERP-Core instalado** con todos sus schemas
2. **Extensiones PostgreSQL**: pg_trgm
## Orden de Ejecución DDL
```bash
# 1. Instalar ERP-Core primero
cd apps/erp-core/database
./scripts/reset-database.sh
# 2. Instalar extensión Retail
cd apps/verticales/retail/database
psql $DATABASE_URL -f init/00-extensions.sql
psql $DATABASE_URL -f init/01-create-schemas.sql
psql $DATABASE_URL -f init/02-rls-functions.sql
psql $DATABASE_URL -f init/03-retail-tables.sql
```
## Tablas Implementadas
### Schema: retail (16 tablas)
| Tabla | Módulo | Descripción |
|-------|--------|-------------|
| branches | RT-002 | Sucursales |
| cash_registers | RT-001 | Cajas registradoras |
| pos_sessions | RT-001 | Sesiones de POS |
| pos_orders | RT-001 | Ventas/Órdenes |
| pos_order_lines | RT-001 | Líneas de venta |
| pos_payments | RT-001 | Pagos (mixtos) |
| cash_movements | RT-001 | Entradas/salidas efectivo |
| branch_stock | RT-002 | Stock por sucursal |
| stock_transfers | RT-002 | Transferencias |
| stock_transfer_lines | RT-002 | Líneas de transferencia |
| product_barcodes | RT-003 | Códigos de barras |
| promotions | RT-003 | Promociones |
| promotion_products | RT-003 | Productos en promo |
| loyalty_programs | RT-004 | Programas fidelización |
| loyalty_cards | RT-004 | Tarjetas |
| loyalty_transactions | RT-004 | Transacciones puntos |
## ENUMs
| Enum | Valores |
|------|---------|
| pos_session_status | opening, open, closing, closed |
| pos_order_status | draft, paid, done, cancelled, refunded |
| payment_method | cash, card, transfer, credit, mixed |
| cash_movement_type | in, out |
| transfer_status | draft, pending, in_transit, received, cancelled |
| promotion_type | percentage, fixed_amount, buy_x_get_y, bundle |
## Row Level Security
Todas las tablas tienen RLS con:
```sql
tenant_id = current_setting('app.current_tenant_id', true)::UUID
```
## Consideraciones Especiales
- **Operación offline**: POS puede operar sin conexión
- **Rendimiento**: <100ms por transacción
- **Hardware**: Integración con impresoras y lectores
- **CFDI 4.0**: Facturación en tiempo real
## Referencias
- [HERENCIA-ERP-CORE.md](./HERENCIA-ERP-CORE.md)
- [DATABASE_INVENTORY.yml](../orchestration/inventarios/DATABASE_INVENTORY.yml)