# =============================================================================
# TRAZABILIDAD: MAI-001 - FUNDAMENTOS
# =============================================================================
# Modulo: MAI-001 Fundamentos (Autenticacion, Usuarios, Roles)
# Fecha: 2025-11-25
# Version: 1.0.0
# Reutilizacion ERP Generico: 100%
# =============================================================================

metadata:
  modulo: MAI-001
  nombre: Fundamentos
  descripcion: Autenticacion, usuarios, roles, permisos y multi-tenancy
  fecha_actualizacion: 2025-11-25
  responsable: Architecture-Analyst
  mapeo_generico: MGN-001
  porcentaje_reutilizacion: 100

# =============================================================================
# REQUERIMIENTOS FUNCIONALES
# =============================================================================
requerimientos:
  - id: RF-AUTH-001
    nombre: Roles de Construccion
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/requerimientos/RF-AUTH-001-roles-construccion.md
    prioridad: P0
    estado: documentado
    descripcion: Definicion de roles especificos para construccion
    especificaciones:
      - id: ET-AUTH-001
        nombre: RBAC Sistema
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/especificaciones/ET-AUTH-001-rbac.md
        estado: documentado
    tablas_bd:
      - auth.users
      - auth.roles
      - auth.permissions
      - auth.user_roles
      - auth.role_permissions
    endpoints_api:
      - POST /api/v1/auth/login
      - POST /api/v1/auth/logout
      - POST /api/v1/auth/refresh
      - GET /api/v1/users
      - POST /api/v1/users
      - GET /api/v1/roles
      - POST /api/v1/roles
    componentes_frontend:
      - LoginPage
      - UserManagement
      - RoleManagement
      - PermissionMatrix

  - id: RF-AUTH-002
    nombre: Estados de Cuenta
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/requerimientos/RF-AUTH-002-estados-cuenta.md
    prioridad: P0
    estado: documentado
    descripcion: Gestion de estados de cuenta de usuario
    especificaciones:
      - id: ET-AUTH-002
        nombre: Estados de Cuenta
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/especificaciones/ET-AUTH-002-estados-cuenta.md
        estado: documentado
    tablas_bd:
      - auth.users
      - auth.sessions
      - auth.password_resets
    endpoints_api:
      - POST /api/v1/auth/forgot-password
      - POST /api/v1/auth/reset-password
      - PATCH /api/v1/users/{id}/status
    componentes_frontend:
      - ForgotPasswordPage
      - ResetPasswordPage
      - UserStatusBadge

  - id: RF-AUTH-003
    nombre: Multi-Tenancy
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/requerimientos/RF-AUTH-003-multi-tenancy.md
    prioridad: P0
    estado: documentado
    descripcion: Aislamiento de datos por tenant (constructor)
    especificaciones:
      - id: ET-AUTH-003
        nombre: Multi-Tenancy
        tipo: backend
        archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/especificaciones/ET-AUTH-003-multi-tenancy.md
        estado: documentado
    tablas_bd:
      - auth.tenants
      - auth.companies
      - auth.user_companies
    endpoints_api:
      - GET /api/v1/tenants/current
      - GET /api/v1/companies
      - POST /api/v1/companies
    componentes_frontend:
      - TenantSelector
      - CompanySelector

# =============================================================================
# HISTORIAS DE USUARIO
# =============================================================================
historias_usuario:
  - id: US-FUND-001
    nombre: Autenticacion Basica JWT
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-001-autenticacion-basica-jwt.md
    requerimientos: [RF-AUTH-001, RF-AUTH-002]

  - id: US-FUND-002
    nombre: Perfiles de Usuario Construccion
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-002-perfiles-usuario-construccion.md
    requerimientos: [RF-AUTH-001]

  - id: US-FUND-003
    nombre: Dashboard por Rol
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-003-dashboard-por-rol.md
    requerimientos: [RF-AUTH-001]

  - id: US-FUND-004
    nombre: Infraestructura Base
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-004-infraestructura-base.md
    requerimientos: [RF-AUTH-003]

  - id: US-FUND-005
    nombre: Sistema de Sesiones
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-005-sistema-sesiones.md
    requerimientos: [RF-AUTH-002]

  - id: US-FUND-006
    nombre: API RESTful Base
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-006-api-restful-base.md
    requerimientos: [RF-AUTH-001, RF-AUTH-002, RF-AUTH-003]

  - id: US-FUND-007
    nombre: Navegacion y Routing
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-007-navegacion-routing.md
    requerimientos: [RF-AUTH-001]

  - id: US-FUND-008
    nombre: UI/UX Base
    archivo: 01-fase-alcance-inicial/MAI-001-fundamentos/historias-usuario/US-FUND-008-ui-ux-base.md
    requerimientos: [RF-AUTH-001]

# =============================================================================
# ROLES DE CONSTRUCCION
# =============================================================================
roles_especificos:
  - codigo: director_obra
    nombre: Director de Obra
    permisos_clave:
      - ver_todos_proyectos
      - aprobar_estimaciones
      - ver_reportes_ejecutivos
      - gestionar_subcontratistas

  - codigo: residente_obra
    nombre: Residente de Obra
    permisos_clave:
      - capturar_avances
      - gestionar_bitacora
      - solicitar_materiales
      - ver_programa_obra

  - codigo: almacenista
    nombre: Almacenista
    permisos_clave:
      - gestionar_inventario
      - recibir_materiales
      - crear_requisiciones
      - ver_kardex

  - codigo: contador
    nombre: Contador
    permisos_clave:
      - ver_estimaciones
      - generar_facturas
      - ver_reportes_financieros

# =============================================================================
# DEPENDENCIAS
# =============================================================================
dependencias:
  modulos_requeridos: []
  modulos_dependientes:
    - MAI-002  # Proyectos usa roles
    - MAI-004  # Compras usa roles
    - MAI-005  # Control obra usa roles
    - MAI-007  # RRHH usa roles
    - MAI-008  # Estimaciones usa roles
    - MAI-013  # Admin usa roles

# =============================================================================
# METRICAS DE COBERTURA
# =============================================================================
metricas:
  total_rf: 3
  total_et: 3
  total_us: 8
  total_tablas: 10
  cobertura_documentacion: 100%
  cobertura_implementacion: 0%

# =============================================================================
# FIN DEL ARCHIVO
# =============================================================================
