Multi-tenant
El ERP es multi-tenant: muchas empresas conviven en la misma base de
datos. El API hereda esa estructura sin pedirle al cliente que pase
empresa_id en cada request — el filtro es automático y se deriva del
token.
¿Cómo funciona?
Cuando haces POST /auth/login, el backend identifica al usuario en la
tabla ws_usuario_empresa y emite un token que lleva asociada una y
solo una empresa (la del usuario). De ahí en adelante:
- Modelos con campo
empresa(Nivel 3) — cada query del API agrega automáticamenteWHERE empresa = <empresa_del_token>. - Modelos sin campo
empresa(Niveles 1 y 2) — son catálogos globales, no se filtran. - Creación de registros — al hacer
POSTsobre un modelo Nivel 3, el campoempresase completa automáticamente con el del token.
Ejemplo práctico
Mismo endpoint, dos tokens distintos:
# Token de empresa 7134 → ve solo sus 458 compras
curl http://localhost/api/v1/Compra -H "Authorization: Bearer $TOKEN_7134"
# Token de empresa 9201 → ve solo sus 122 compras
curl http://localhost/api/v1/Compra -H "Authorization: Bearer $TOKEN_9201"Catálogos globales
Algunos catálogos NO tienen empresa porque son universales: Moneda,
Pais, RegimenFiscal, TipoComprobante, etc. Estos se comparten entre
todas las empresas. La lectura siempre regresa la lista completa.
Cambiar de empresa
Si un usuario opera para varias empresas, cada empresa tiene su propio
registro en ws_usuario_empresa y por lo tanto su propio token. Para
cambiar de empresa, haces login con el usuario asociado a la otra
empresa — no existe un endpoint "switch tenant".