{
  "id": "enum-holidayscope",
  "title": "Enum — HolidayScope",
  "description": "Escopo territorial de um feriado registrado no calendário do SGE.",
  "type": "enum-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/enums",
    "sge/calendario"
  ],
  "related": [
    "migration-22-holidays"
  ],
  "sourceRefs": [],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "| Case | Valor | Rótulo |\n| --- | --- | --- |\n| `National` | `national` | Nacional |\n| `State` | `state` | Estadual |\n| `Municipal` | `municipal` | Municipal |\n\nO escopo define quais colunas de localização são exigidas em [`holidays`](doc:migration-22-holidays): nacional não possui UF nem cidade; estadual exige UF; municipal exige `city_id` e deriva sua UF da cidade. O cast `HolidayScope` e a validação do model protegem a regra em importações e demais persistências; um futuro Form Request apenas a repetirá para apresentar erros de entrada.\n\nNão existe escopo `Campus`. Uma exceção específica de um estágio fica em `internship_calendar_overrides`, vinculada diretamente ao estágio.\n\n## Checklist\n\n- [x] Criar enum string com `label()`, `values()` e `options()`.\n- [x] Cobrir cases, valores, rótulos e opções com teste unitário.\n- [x] Adicionar cast em `Holiday`.\n- [x] Validar as combinações de escopo e localização no domínio.",
  "sections": [
    {
      "id": "checklist",
      "level": 2,
      "title": "Checklist",
      "text": "- [x] Criar enum string com `label()`, `values()` e `options()`. - [x] Cobrir cases, valores, rótulos e opções com teste unitário. - [x] Adicionar cast em `Holiday`. - [x] Validar as combinações de escopo e localização no domínio.",
      "line": 11
    }
  ],
  "sourcePath": "content/enum-holidayscope.md",
  "visuals": [],
  "apiVersion": 1
}
