-- ---------------------------------------------------------------------------
-- A SEMENTE DA VIGENCIA DO HORARIO, no PostgreSQL (F4.1, 02/10/2026).
--
--   psql -v ON_ERROR_STOP=1 -f postgres/semente-usuarios-horarios.sql
--
-- No corte, DEPOIS da carga (`migrar-dados.sh`) e de `conferir-migracao.php`, e
-- ANTES de abrir ao publico. O conferidor (`conferir-vigencia-do-horario.php
-- --plataforma=postgresql`) NAO roda logo em seguida: ele le o banco do
-- `local.php`, que so aponta para o PostgreSQL no passo 7. Ele e o ensaio ficam
-- no 7b (`docs/procedimento-de-corte.md`).
--
-- O `SET` VEM PRIMEIRO porque o RLS de `usuarios_horarios` e forcado: sem o
-- inquilino declarado, o `DEFAULT current_setting('app.inquilino_id')` da
-- coluna `inquilino_id` falha. E o inquilino 1, o mesmo de `migrar-dados.sh`.
--
-- O resto -- a data, o porque dela, e o rodar de novo sem duplicar -- esta em
-- `scripts/semente-usuarios-horarios.mysql.sql`. O CORPO E O MESMO, e
-- `UsuarioHorarioVigenciaTest` confere que continua sendo.
-- ---------------------------------------------------------------------------

SET app.inquilino_id = '1';

INSERT INTO usuarios_horarios (usuario, vigente_desde, porta, gravado_por, em_nome_de,
       status, visivel_agenda, tempo_atendimento,
       segunda_abertura, segunda_fechamento, segunda_almoco_inicio, segunda_almoco_fim,
       terca_abertura, terca_fechamento, terca_almoco_inicio, terca_almoco_fim,
       quarta_abertura, quarta_fechamento, quarta_almoco_inicio, quarta_almoco_fim,
       quinta_abertura, quinta_fechamento, quinta_almoco_inicio, quinta_almoco_fim,
       sexta_abertura, sexta_fechamento, sexta_almoco_inicio, sexta_almoco_fim,
       sabado_abertura, sabado_fechamento, sabado_almoco_inicio, sabado_almoco_fim,
       domingo_abertura, domingo_fechamento, domingo_almoco_inicio, domingo_almoco_fim,
       ferias_inicio, ferias_fim, data_criacao)
SELECT u.id, COALESCE(u.data_alteracao, u.data_criacao), 'semente', NULL, NULL,
       u.status, u.visivel_agenda, u.tempo_atendimento,
       u.segunda_abertura, u.segunda_fechamento, u.segunda_almoco_inicio, u.segunda_almoco_fim,
       u.terca_abertura, u.terca_fechamento, u.terca_almoco_inicio, u.terca_almoco_fim,
       u.quarta_abertura, u.quarta_fechamento, u.quarta_almoco_inicio, u.quarta_almoco_fim,
       u.quinta_abertura, u.quinta_fechamento, u.quinta_almoco_inicio, u.quinta_almoco_fim,
       u.sexta_abertura, u.sexta_fechamento, u.sexta_almoco_inicio, u.sexta_almoco_fim,
       u.sabado_abertura, u.sabado_fechamento, u.sabado_almoco_inicio, u.sabado_almoco_fim,
       u.domingo_abertura, u.domingo_fechamento, u.domingo_almoco_inicio, u.domingo_almoco_fim,
       u.ferias_inicio, u.ferias_fim, CURRENT_TIMESTAMP
  FROM usuarios u
 WHERE NOT EXISTS (SELECT 1 FROM usuarios_horarios h WHERE h.usuario = u.id)
 ORDER BY u.id;

SELECT COUNT(*) AS sem_vigencia
  FROM usuarios u
 WHERE NOT EXISTS (SELECT 1 FROM usuarios_horarios h WHERE h.usuario = u.id);
