# `modules/companies` `companies` es el módulo independiente y fuente de verdad de la ficha operativa de empresa. ## Responsabilidades Gestiona la entidad `Company` funcional del ERP: - datos legales - datos operativos básicos - `slug` - `status` Separación arquitectónica: - `modules/identity`: autenticación, cuentas, memberships, acceso account-company - `modules/companies`: ficha real de empresa y validación de company activa ## Tabla `companies` Campos actuales: ```txt id legal_name trade_name tin slug email phone website status created_at updated_at ``` Índices esperados: ```txt UNIQUE(slug) INDEX(status) INDEX(tin) ``` ## Servicios públicos El módulo expone: ```txt companies:general ``` Responsabilidad: - validar existencia y estado activo de la company - devolver datos públicos/operativos de empresa No debe asumir: - memberships - autenticación por cuenta - roles/permisos de identity ## Dependencias `modules/companies` depende de `identity`. Uso actual: - sus endpoints usan `requireIdentityAuthenticated(params)` - `GET /companies/available` no usa `requireIdentityTenant(params)` ## Reglas - `CompanyMembership` vive en `identity`. - No mover memberships a `companies`. - No usar `customers` para representar la empresa tenant. - `companySlug` no debe venir de token, `X-Company-Slug` ni `req.user.companySlug`.