From 2fd1e2ece7984b02e3a1608f073caca12ffe7789 Mon Sep 17 00:00:00 2001 From: NANDO9322 Date: Fri, 6 Feb 2026 23:37:59 -0300 Subject: [PATCH] =?UTF-8?q?fix(backend):=20corrige=20persist=C3=AAncia=20d?= =?UTF-8?q?a=20regi=C3=A3o=20na=20cria=C3=A7=C3=A3o=20de=20FOT=20e=20orden?= =?UTF-8?q?a=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Corrige bug onde a região não era salva no banco durante a criação de FOT (campo faltante no service). - Adiciona fallback para garantir região "SP" caso o header x-regiao esteja vazio. - Altera ordenação da listagem para updated_at DESC (editados aparecem no topo). --- backend/cmd/api/main.go | 2 ++ backend/internal/auth/middleware.go | 3 +++ backend/internal/cadastro_fot/handler.go | 14 ++++++++++++-- backend/internal/cadastro_fot/service.go | 1 + backend/internal/db/generated/cadastro_fot.sql.go | 4 ++-- backend/internal/db/queries/cadastro_fot.sql | 4 ++-- frontend/services/apiService.ts | 4 ++-- 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/backend/cmd/api/main.go b/backend/cmd/api/main.go index b6c7eba..d5961d8 100644 --- a/backend/cmd/api/main.go +++ b/backend/cmd/api/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "fmt" "log" "photum-backend/docs" @@ -58,6 +59,7 @@ import ( // @in header // @name Authorization func main() { + fmt.Println("=== PHOTUM BACKEND VERSION: 2.1 (UPDATED_AT SORT) ===") cfg := config.LoadConfig() log.Printf("Loaded DSN: %s", cfg.DBDsn) diff --git a/backend/internal/auth/middleware.go b/backend/internal/auth/middleware.go index ff7010a..f1cb90e 100644 --- a/backend/internal/auth/middleware.go +++ b/backend/internal/auth/middleware.go @@ -46,6 +46,9 @@ func AuthMiddleware(cfg *config.Config) gin.HandlerFunc { // Add Vary header to correctly handle browser caching based on region c.Header("Vary", "x-regiao") + c.Header("Cache-Control", "no-cache, no-store, must-revalidate") + c.Header("Pragma", "no-cache") + c.Header("Expires", "0") // Region Logic requestedRegion := c.GetHeader("x-regiao") diff --git a/backend/internal/cadastro_fot/handler.go b/backend/internal/cadastro_fot/handler.go index 9f5cbf7..9adbe36 100644 --- a/backend/internal/cadastro_fot/handler.go +++ b/backend/internal/cadastro_fot/handler.go @@ -1,7 +1,6 @@ package cadastro_fot import ( - "fmt" "net/http" "photum-backend/internal/db/generated" @@ -115,6 +114,12 @@ func (h *Handler) Create(c *gin.Context) { } regiao := c.GetString("regiao") + if regiao == "" { + regiao = c.GetHeader("x-regiao") + } + if regiao == "" { + regiao = "SP" + } res, err := h.service.Create(c.Request.Context(), req, regiao) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) @@ -136,9 +141,14 @@ func (h *Handler) Create(c *gin.Context) { func (h *Handler) List(c *gin.Context) { empresaID := c.Query("empresa_id") regiao := c.GetString("regiao") + if regiao == "" { + regiao = c.GetHeader("x-regiao") + } + if regiao == "" { + regiao = "SP" + } var response []CadastroFotResponse - fmt.Printf("[DEBUG] List FOT - Regiao: %s, EmpresaID: %s\n", regiao, empresaID) if empresaID != "" { rows, err := h.service.ListByEmpresa(c.Request.Context(), empresaID, regiao) diff --git a/backend/internal/cadastro_fot/service.go b/backend/internal/cadastro_fot/service.go index a2d6130..fc41f62 100644 --- a/backend/internal/cadastro_fot/service.go +++ b/backend/internal/cadastro_fot/service.go @@ -49,6 +49,7 @@ func (s *Service) Create(ctx context.Context, input CreateInput, regiao string) Observacoes: pgtype.Text{String: input.Observacoes, Valid: true}, GastosCaptacao: toPgNumeric(input.GastosCaptacao), PreVenda: pgtype.Bool{Bool: input.PreVenda, Valid: true}, + Regiao: pgtype.Text{String: regiao, Valid: true}, }) if err != nil { return nil, err diff --git a/backend/internal/db/generated/cadastro_fot.sql.go b/backend/internal/db/generated/cadastro_fot.sql.go index d858c60..71fd1dd 100644 --- a/backend/internal/db/generated/cadastro_fot.sql.go +++ b/backend/internal/db/generated/cadastro_fot.sql.go @@ -262,7 +262,7 @@ LEFT JOIN empresas e ON c.empresa_id = e.id LEFT JOIN cursos cur ON c.curso_id = cur.id LEFT JOIN anos_formaturas a ON c.ano_formatura_id = a.id WHERE c.regiao = $1 -ORDER BY c.fot DESC +ORDER BY c.updated_at DESC ` type ListCadastroFotRow struct { @@ -334,7 +334,7 @@ LEFT JOIN empresas e ON c.empresa_id = e.id LEFT JOIN cursos cur ON c.curso_id = cur.id LEFT JOIN anos_formaturas a ON c.ano_formatura_id = a.id WHERE c.empresa_id = $1 AND c.regiao = $2 -ORDER BY c.fot DESC +ORDER BY c.updated_at DESC ` type ListCadastroFotByEmpresaParams struct { diff --git a/backend/internal/db/queries/cadastro_fot.sql b/backend/internal/db/queries/cadastro_fot.sql index b709929..c09d04d 100644 --- a/backend/internal/db/queries/cadastro_fot.sql +++ b/backend/internal/db/queries/cadastro_fot.sql @@ -29,7 +29,7 @@ LEFT JOIN empresas e ON c.empresa_id = e.id LEFT JOIN cursos cur ON c.curso_id = cur.id LEFT JOIN anos_formaturas a ON c.ano_formatura_id = a.id WHERE c.regiao = @regiao -ORDER BY c.fot DESC; +ORDER BY c.updated_at DESC; -- name: ListCadastroFotByEmpresa :many SELECT @@ -42,7 +42,7 @@ LEFT JOIN empresas e ON c.empresa_id = e.id LEFT JOIN cursos cur ON c.curso_id = cur.id LEFT JOIN anos_formaturas a ON c.ano_formatura_id = a.id WHERE c.empresa_id = $1 AND c.regiao = @regiao -ORDER BY c.fot DESC; +ORDER BY c.updated_at DESC; -- name: GetCadastroFotByID :one SELECT diff --git a/frontend/services/apiService.ts b/frontend/services/apiService.ts index 2f3eb01..bf5ae87 100644 --- a/frontend/services/apiService.ts +++ b/frontend/services/apiService.ts @@ -329,9 +329,9 @@ export async function getAvailableCourses(): Promise> { try { - let url = `${API_BASE_URL}/api/cadastro-fot`; + let url = `${API_BASE_URL}/api/cadastro-fot?_t=${new Date().getTime()}`; if (empresaId) { - url += `?empresa_id=${empresaId}`; + url += `&empresa_id=${empresaId}`; } const response = await fetch(url, {