2.0 KiB
2.0 KiB
US-MGN-002-001-001: CRUD de Empresas (Companies)
RF Asociado: RF-MGN-002-001 Módulo: MGN-002 - Empresas y Organizaciones Epic: Gestión de Empresas Prioridad: P0 (MVP) Story Points: 5 Sprint: Sprint 3 Fecha: 2025-11-24
User Story
Como administrador, Quiero crear, listar, editar y desactivar empresas (companies), Para gestionar las organizaciones que operan dentro del tenant.
Criterios de Aceptación
Escenario 1: Crear empresa
Cuando creo empresa con nombre, RFC/NIT, dirección fiscal, Entonces empresa creada, disponible para operaciones.
Escenario 2: Listar empresas con jerarquía
Cuando listo empresas, Entonces veo estructura jerárquica (holding → subsidiarias).
Escenario 3: Editar empresa
Cuando actualizo datos fiscales o logo, Entonces cambios se aplican inmediatamente.
Escenario 4: Desactivar empresa
Cuando desactivo empresa con transacciones, Entonces empresa inactiva, transacciones históricas preservadas.
Reglas de Negocio
- RN-1: Una empresa pertenece a un tenant
- RN-2: Empresa puede ser holding (parent_company_id=null) o subsidiaria
- RN-3: Soft delete: status='inactive'
- RN-4: RFC/NIT único por tenant
Tareas Técnicas
Backend
- POST /api/v1/companies - Crear
- GET /api/v1/companies - Listar con jerarquía
- PATCH /api/v1/companies/:id - Actualizar
- DELETE /api/v1/companies/:id - Soft delete
- CompaniesService.create/findAll/update/deactivate
- Tests (10 casos)
Frontend
- CompaniesListPage con árbol jerárquico
- CompanyFormModal (crear/editar)
- API client + tests