-- ---------------------------------------------------------------------------
-- A SEMENTE DA VIGENCIA DO HORARIO, no MySQL (F4.1, 02/10/2026).
--
--   docker compose exec -T mysql mysql -uroot -proot franquiabv_dev \
--     < scripts/semente-usuarios-horarios.mysql.sql
--
-- Uma linha `semente` para cada usuario que ainda nao tem nenhuma, com o
-- horario de hoje, valendo desde `COALESCE(data_alteracao, data_criacao)`.
--
-- POR QUE ESSA DATA E EXATA, e nao uma estimativa: todo escritor do horario,
-- das ferias, do `status` e do `visivel_agenda` grava `data_alteracao`
-- (`UsuarioService`), e o `inserir` grava so `data_criacao`. Nao ha outro
-- escritor, no codigo de hoje nem no de producao (o juiz da F4 conferiu os
-- dois). Entao o horario de hoje vale, no minimo, desde a ultima edicao -- e o
-- que vinha antes dela se perdeu. A ocupacao de um mes anterior a essa data
-- fica "sem o horario da epoca" (a decisao B6 do dono: a regua antiga do Dash).
--
-- RODA DE NOVO SEM DUPLICAR: so entra quem nao tem linha nenhuma. A ultima
-- consulta tem de dar 0.
--
-- O CORPO E O MESMO de `postgres/semente-usuarios-horarios.sql`, e
-- `UsuarioHorarioVigenciaTest` confere que continua sendo -- e roda os dois.
-- ---------------------------------------------------------------------------

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);
