- Cria tabela 'cadastro_fot' com integracao (FKs) para Empresas, Cursos e Formaturas - Implementa endpoints (GET/POST/PUT/DELETE) em '/api/cadastro-fot' - Otimiza rota GET utilizando JOINs para retornar nomes das entidades estrangeiras - Define campo 'pre_venda' como BOOLEAN e 'fot' como identificador unico (int) - Adiciona tratativa robusta para tipos numericos no Postgres
52 lines
1.3 KiB
SQL
52 lines
1.3 KiB
SQL
-- name: CreateCadastroFot :one
|
|
INSERT INTO cadastro_fot (
|
|
fot, empresa_id, curso_id, ano_formatura_id, instituicao, cidade, estado, observacoes, gastos_captacao, pre_venda
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10
|
|
) RETURNING *;
|
|
|
|
-- name: ListCadastroFot :many
|
|
SELECT
|
|
c.*,
|
|
e.nome as empresa_nome,
|
|
cur.nome as curso_nome,
|
|
a.ano_semestre as ano_formatura_label
|
|
FROM cadastro_fot c
|
|
JOIN empresas e ON c.empresa_id = e.id
|
|
JOIN cursos cur ON c.curso_id = cur.id
|
|
JOIN anos_formaturas a ON c.ano_formatura_id = a.id
|
|
ORDER BY c.fot DESC;
|
|
|
|
-- name: GetCadastroFotByID :one
|
|
SELECT
|
|
c.*,
|
|
e.nome as empresa_nome,
|
|
cur.nome as curso_nome,
|
|
a.ano_semestre as ano_formatura_label
|
|
FROM cadastro_fot c
|
|
JOIN empresas e ON c.empresa_id = e.id
|
|
JOIN cursos cur ON c.curso_id = cur.id
|
|
JOIN anos_formaturas a ON c.ano_formatura_id = a.id
|
|
WHERE c.id = $1;
|
|
|
|
-- name: GetCadastroFotByFOT :one
|
|
SELECT * FROM cadastro_fot WHERE fot = $1;
|
|
|
|
-- name: UpdateCadastroFot :one
|
|
UPDATE cadastro_fot SET
|
|
fot = $2,
|
|
empresa_id = $3,
|
|
curso_id = $4,
|
|
ano_formatura_id = $5,
|
|
instituicao = $6,
|
|
cidade = $7,
|
|
estado = $8,
|
|
observacoes = $9,
|
|
gastos_captacao = $10,
|
|
pre_venda = $11,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = $1
|
|
RETURNING *;
|
|
|
|
-- name: DeleteCadastroFot :exec
|
|
DELETE FROM cadastro_fot WHERE id = $1;
|