# EPICA: EPIC-MAI-001 - Fundamentos

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | EPIC-MAI-001 |
| **Nombre** | Fundamentos de Construccion |
| **Modulo** | fundamentos |
| **Fase** | Fase 1 - Alcance Inicial |
| **Prioridad** | P0 (Critico) |
| **Estado** | Backlog |
| **Story Points** | 55 |
| **Sprint(s)** | Sprint 1-2 |

---

## Descripcion

Modulo base que establece la infraestructura para el sistema de construccion. Incluye configuracion multi-tenant por constructora, parametros especificos de la industria, catalogos SAT para facturacion electronica, y la estructura base de permisos para obra.

**Extiende:** MGN-001 Auth, MGN-002 Users, MGN-003 Roles, MGN-004 Tenants

---

## Objetivo de Negocio

Establecer la base tecnologica que:
- Configure constructoras como tenants
- Defina roles especificos de obra (residente, superintendente, etc.)
- Integre catalogos SAT Mexico (CFDI 4.0)
- Soporte operacion multi-proyecto por constructora

---

## Historias de Usuario

| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-MAI001-001 | Como admin, quiero configurar mi constructora como tenant | P0 | 5 | Backlog |
| US-MAI001-002 | Como admin, quiero configurar roles de obra (residente, supervisor, etc.) | P0 | 8 | Backlog |
| US-MAI001-003 | Como admin, quiero configurar catalogos SAT (productos/servicios, unidades) | P0 | 8 | Backlog |
| US-MAI001-004 | Como admin, quiero configurar parametros de constructora (RFC, regimen fiscal) | P0 | 5 | Backlog |
| US-MAI001-005 | Como admin, quiero configurar centros de costo por proyecto | P0 | 5 | Backlog |
| US-MAI001-006 | Como sistema, quiero aplicar RLS por constructora_id | P0 | 8 | Backlog |
| US-MAI001-007 | Como admin, quiero configurar secuencias de folios por tipo de documento | P1 | 5 | Backlog |
| US-MAI001-008 | Como admin, quiero importar catalogos desde Excel | P1 | 5 | Backlog |
| US-MAI001-009 | Como usuario, quiero cambiar de proyecto sin cerrar sesion | P1 | 3 | Backlog |
| US-MAI001-010 | Como admin, quiero ver dashboard de uso del sistema | P2 | 3 | Backlog |

**Total Story Points:** 55 SP

---

## Criterios de Aceptacion de la Epica

**Funcionales:**
- [ ] Configuracion de constructora con datos fiscales completos
- [ ] Roles predefinidos: Admin, Residente, Superintendente, Almacenista, etc.
- [ ] Catalogos SAT cargados y actualizables
- [ ] Centros de costo por proyecto funcionales
- [ ] RLS implementado en todas las tablas
- [ ] Secuencias de folios por tipo de documento

**No Funcionales:**
- [ ] Aislamiento de datos 100% por constructora
- [ ] Configuracion inicial < 30 minutos

**Tecnicos:**
- [ ] Tests de seguridad (penetracion entre tenants)
- [ ] Seeders con datos de muestra

---

## Dependencias

**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| MGN-001 Auth (Core) | Ready | Si |
| MGN-004 Tenants (Core) | Ready | Si |

**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| EPIC-MAI-002 Proyectos | Requiere constructora configurada |
| EPIC-MAI-011 INFONAVIT | Requiere catalogos SAT |
| Todos los MAI | Base del sistema |

---

## Desglose Tecnico

**Database:**
- [ ] Schema: `construction_core` (extiende core_system)
- [ ] Tablas: 8 (constructoras, sat_catalogs, cost_centers, sequences, etc.)
- [ ] Funciones: 3 (get_constructora_context, set_project_context)
- [ ] RLS Policies: Todas las tablas

**Backend:**
- [ ] Modulo: `construction-core`
- [ ] Extiende: AuthModule, TenantsModule
- [ ] Entities: 8
- [ ] Endpoints: 20+
- [ ] Tests: 35+

**Frontend:**
- [ ] Paginas: 5 (ConstructoraSetup, RolesConfig, CatalogosAdmin, CostCenters)
- [ ] Componentes: 12+
- [ ] Stores: 2 (constructoraStore, catalogosStore)

---

## Roles Predefinidos de Obra

| Rol | Descripcion | Permisos Principales |
|-----|-------------|---------------------|
| SuperAdmin | Administrador global | Todo |
| AdminConstructora | Admin de constructora | Configuracion, usuarios |
| DirectorObra | Director de obra | Todos los proyectos |
| ResidenteObra | Residente de obra | Avances, requisiciones |
| Superintendente | Superintendente | Supervision, reportes |
| Almacenista | Control de almacen | Inventarios, recepciones |
| Contralor | Area contable | Estimaciones, pagos |
| Comprador | Compras | Ordenes de compra |

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-05
