-- name: CreateCarro :one INSERT INTO logistica_carros ( agenda_id, motorista_id, nome_motorista, horario_chegada, observacoes ) VALUES ( $1, $2, $3, $4, $5 ) RETURNING *; -- name: ListCarrosByAgendaID :many SELECT c.*, p.nome as motorista_nome_sistema, p.avatar_url as motorista_avatar FROM logistica_carros c LEFT JOIN cadastro_profissionais p ON c.motorista_id = p.id WHERE c.agenda_id = $1 ORDER BY c.criado_em; -- name: GetCarroByID :one SELECT c.*, p.nome as motorista_nome_sistema FROM logistica_carros c LEFT JOIN cadastro_profissionais p ON c.motorista_id = p.id WHERE c.id = $1; -- name: UpdateCarro :one UPDATE logistica_carros SET motorista_id = COALESCE($2, motorista_id), nome_motorista = COALESCE($3, nome_motorista), horario_chegada = COALESCE($4, horario_chegada), observacoes = COALESCE($5, observacoes), atualizado_em = NOW() WHERE id = $1 RETURNING *; -- name: DeleteCarro :one DELETE FROM logistica_carros WHERE id = $1 RETURNING agenda_id; -- name: AddPassageiro :one INSERT INTO logistica_passageiros (carro_id, profissional_id) VALUES ($1, $2) RETURNING *; -- name: RemovePassageiro :exec DELETE FROM logistica_passageiros WHERE carro_id = $1 AND profissional_id = $2; -- name: ListPassageirosByCarroID :many SELECT lp.*, p.nome, p.avatar_url, f.nome as funcao_nome FROM logistica_passageiros lp JOIN cadastro_profissionais p ON lp.profissional_id = p.id LEFT JOIN funcoes_profissionais f ON p.funcao_profissional_id = f.id WHERE lp.carro_id = $1;