-- =============================================================================
-- Migración:    0024_create_entidades_previsionales_table
-- Sprint:       1.5a — Necesidad Inmediata (NI)
-- Tabla:        entidades_previsionales
-- Aplica en:    BD de cada tenant (innovium_<slug>)
-- Dependencias: ninguna (catálogo master).
--
-- Descripción:
--   AFPs (HABITAT, PROVIDA, etc.), compañías de seguros (BICE VIDA,
--   PENTA, etc.), instituciones sociales (IPS, CAPREDENA, DIPRECA, PGU)
--   y mutuales que pueden aportar al funeral del fallecido.
--
--   Es un "catálogo master" sembrado automáticamente al hacer
--   `migrate:tenant <slug>` con ~30 entidades chilenas comunes.
--   Cada tenant después puede activar/desactivar items según le convenga.
--
-- Notas de diseño:
--   - tipo ENUM: agrupa por categoría para filtrar en UI.
--   - orden_visual: ordenamiento natural (HABITAT antes que PROVIDA, etc.).
--   - SIN soft delete: los catálogos master se desactivan con activo=0,
--     no se borran. La trazabilidad histórica vive en
--     contrato_aportes_previsionales.nombre_snapshot (ver 0033).
-- =============================================================================

CREATE TABLE entidades_previsionales (
    id              BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
                    COMMENT 'PK auto-incremental.',
    nombre          VARCHAR(80)     NOT NULL
                    COMMENT 'Nombre comercial (ej: "HABITAT", "BICE VIDA", "IPS").',
    tipo            ENUM('afp', 'seguro', 'ips', 'mutual', 'otro')
                    NOT NULL DEFAULT 'otro'
                    COMMENT 'Categoría: afp/seguro/ips/mutual/otro.',
    activo          TINYINT(1)      NOT NULL DEFAULT 1
                    COMMENT '1=disponible para seleccionar en wizard, 0=oculto.',
    orden_visual    INT             NOT NULL DEFAULT 0
                    COMMENT 'Orden ascendente en dropdown del wizard (HABITAT=10, PROVIDA=20...).',
    creado_en       DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP
                    COMMENT 'UTC de creación. Inmutable.',
    actualizado_en  DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP
                                             ON UPDATE CURRENT_TIMESTAMP
                    COMMENT 'UTC de la última edición.',
    PRIMARY KEY (id),
    KEY idx_entidades_prev_activo_orden (activo, orden_visual),
    KEY idx_entidades_prev_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Catálogo master · entidades que aportan al funeral (AFPs, seguros, IPS, etc.).';
