84 lines
2.5 KiB
Markdown
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)
|