-- name: CreateEscala :one INSERT INTO agenda_escalas ( agenda_id, profissional_id, data_hora_inicio, data_hora_fim, funcao_especifica ) VALUES ( $1, $2, $3, $4, $5 ) RETURNING *; -- name: ListEscalasByAgendaID :many SELECT e.*, p.nome as profissional_nome, p.avatar_url, p.whatsapp, f.nome as funcao_nome FROM agenda_escalas e JOIN cadastro_profissionais p ON e.profissional_id = p.id LEFT JOIN funcoes_profissionais f ON p.funcao_profissional_id = f.id WHERE e.agenda_id = $1 ORDER BY e.data_hora_inicio; -- name: DeleteEscala :exec DELETE FROM agenda_escalas WHERE id = $1; -- name: UpdateEscala :one UPDATE agenda_escalas SET profissional_id = COALESCE($2, profissional_id), data_hora_inicio = COALESCE($3, data_hora_inicio), data_hora_fim = COALESCE($4, data_hora_fim), funcao_especifica = COALESCE($5, funcao_especifica), atualizado_em = NOW() WHERE id = $1 RETURNING *; -- name: ListMapasByAgendaID :many SELECT * FROM mapas_eventos WHERE agenda_id = $1 ORDER BY criado_em; -- name: CreateMapa :one INSERT INTO mapas_eventos (agenda_id, nome, imagem_url) VALUES ($1, $2, $3) RETURNING *; -- name: DeleteMapa :exec DELETE FROM mapas_eventos WHERE id = $1; -- name: ListMarcadoresByMapaID :many SELECT m.*, p.nome as profissional_nome, p.avatar_url, f.nome as funcao_nome FROM marcadores_mapa m LEFT JOIN cadastro_profissionais p ON m.profissional_id = p.id LEFT JOIN funcoes_profissionais f ON p.funcao_profissional_id = f.id WHERE m.mapa_id = $1; -- name: UpsertMarcador :one INSERT INTO marcadores_mapa (mapa_id, profissional_id, pos_x, pos_y, rotulo) VALUES ($1, $2, $3, $4, $5) ON CONFLICT (id) DO UPDATE SET pos_x = EXCLUDED.pos_x, pos_y = EXCLUDED.pos_y, rotulo = EXCLUDED.rotulo, profissional_id = EXCLUDED.profissional_id RETURNING *; -- name: DeleteMarcador :exec DELETE FROM marcadores_mapa WHERE id = $1;