-- Migration 044 — F10 (11/05/2026).
--
-- Cria tabela cadastro_feriados — cadastro centralizado de feriados
-- (nacionais, estaduais, municipais, facultativos) consumido pela
-- validacao de dias uteis do boleto (RES#2 F6.2).
--
-- Decisao do dono (11/05/2026):
--   - Feriados NACIONAIS vem seeded por mim (Migration 045)
--   - UI no newportaltefnet (menu Configuracoes) permite cadastrar
--     adicionais (estadual, municipal, facultativo)
--   - Toggle "ativo" liga/desliga (nao exclui — sindicato pode trocar
--     dia regional, voce desativa sem perder historico)
--   - 1 vez cadastrado, vale ate ser desativado
--
-- Card: F10 / RES#2.

SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS cadastro_feriados (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  data DATE NOT NULL
    COMMENT 'data do feriado',
  descricao VARCHAR(120) NOT NULL
    COMMENT 'nome do feriado (ex: Tiradentes, Padroeira de Natal)',
  tipo ENUM('nacional','estadual','municipal','facultativo') NOT NULL
    COMMENT 'abrangencia',
  uf VARCHAR(2) NULL
    COMMENT 'preenche em estadual/municipal (ex: RN, SP)',
  municipio VARCHAR(120) NULL
    COMMENT 'preenche so em municipal',
  ativo TINYINT(1) NOT NULL DEFAULT 1
    COMMENT '1=valido, 0=desativado (sindicato trocou, troca regional, etc)',
  criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  criado_por_user_id INT UNSIGNED NULL
    COMMENT 'user que cadastrou (NULL = seed do sistema)',
  atualizado_em DATETIME NULL ON UPDATE CURRENT_TIMESTAMP,
  atualizado_por_user_id INT UNSIGNED NULL,
  PRIMARY KEY (id),
  UNIQUE KEY uq_data_tipo_uf_mun (data, tipo, uf, municipio),
  KEY idx_data_ativo (data, ativo),
  KEY idx_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='F10: cadastro de feriados (nacional+estadual+municipal+facultativo)';
