diff --git a/backend/docs/docs.go b/backend/docs/docs.go
index 568496c..497d795 100644
--- a/backend/docs/docs.go
+++ b/backend/docs/docs.go
@@ -3244,6 +3244,9 @@ const docTemplate = `{
"horario": {
"type": "string"
},
+ "horario_fim": {
+ "type": "string"
+ },
"local_evento": {
"type": "string"
},
diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json
index c1c86ce..5c83845 100644
--- a/backend/docs/swagger.json
+++ b/backend/docs/swagger.json
@@ -3238,6 +3238,9 @@
"horario": {
"type": "string"
},
+ "horario_fim": {
+ "type": "string"
+ },
"local_evento": {
"type": "string"
},
diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml
index f9435de..fe5f6eb 100644
--- a/backend/docs/swagger.yaml
+++ b/backend/docs/swagger.yaml
@@ -27,6 +27,8 @@ definitions:
type: integer
horario:
type: string
+ horario_fim:
+ type: string
local_evento:
type: string
logistica_observacoes:
diff --git a/backend/internal/agenda/service.go b/backend/internal/agenda/service.go
index 18028db..ee0a7de 100644
--- a/backend/internal/agenda/service.go
+++ b/backend/internal/agenda/service.go
@@ -50,6 +50,7 @@ type CreateAgendaRequest struct {
LocalEvento string `json:"local_evento"`
Endereco string `json:"endereco"`
Horario string `json:"horario"`
+ HorarioFim string `json:"horario_fim"`
QtdFormandos int32 `json:"qtd_formandos"`
QtdFotografos int32 `json:"qtd_fotografos"`
QtdRecepcionistas int32 `json:"qtd_recepcionistas"`
@@ -125,6 +126,7 @@ func (s *Service) Create(ctx context.Context, userID uuid.UUID, req CreateAgenda
LocalEvento: pgtype.Text{String: req.LocalEvento, Valid: req.LocalEvento != ""},
Endereco: pgtype.Text{String: req.Endereco, Valid: req.Endereco != ""},
Horario: pgtype.Text{String: req.Horario, Valid: req.Horario != ""},
+ HorarioFim: pgtype.Text{String: req.HorarioFim, Valid: req.HorarioFim != ""},
QtdFormandos: pgtype.Int4{Int32: req.QtdFormandos, Valid: true},
QtdFotografos: pgtype.Int4{Int32: req.QtdFotografos, Valid: true},
QtdRecepcionistas: pgtype.Int4{Int32: req.QtdRecepcionistas, Valid: true},
@@ -185,6 +187,7 @@ func (s *Service) List(ctx context.Context, userID uuid.UUID, role string, regia
LocalEvento: r.LocalEvento,
Endereco: r.Endereco,
Horario: r.Horario,
+ HorarioFim: r.HorarioFim,
QtdFormandos: r.QtdFormandos,
QtdFotografos: r.QtdFotografos,
QtdRecepcionistas: r.QtdRecepcionistas,
@@ -304,6 +307,7 @@ func (s *Service) Update(ctx context.Context, id uuid.UUID, req CreateAgendaRequ
LocalEvento: pgtype.Text{String: req.LocalEvento, Valid: req.LocalEvento != ""},
Endereco: pgtype.Text{String: req.Endereco, Valid: req.Endereco != ""},
Horario: pgtype.Text{String: req.Horario, Valid: req.Horario != ""},
+ HorarioFim: pgtype.Text{String: req.HorarioFim, Valid: req.HorarioFim != ""},
QtdFormandos: pgtype.Int4{Int32: req.QtdFormandos, Valid: true},
QtdFotografos: pgtype.Int4{Int32: req.QtdFotografos, Valid: true},
QtdRecepcionistas: pgtype.Int4{Int32: req.QtdRecepcionistas, Valid: true},
diff --git a/backend/internal/db/generated/agenda.sql.go b/backend/internal/db/generated/agenda.sql.go
index 45ba2f5..e6e800a 100644
--- a/backend/internal/db/generated/agenda.sql.go
+++ b/backend/internal/db/generated/agenda.sql.go
@@ -30,7 +30,7 @@ func (q *Queries) AssignProfessional(ctx context.Context, arg AssignProfessional
}
const checkProfessionalBusyDate = `-- name: CheckProfessionalBusyDate :many
-SELECT a.id, a.horario, ap.status
+SELECT a.id, a.horario, a.horario_fim, ap.status
FROM agenda_profissionais ap
JOIN agenda a ON ap.agenda_id = a.id
WHERE ap.profissional_id = $1
@@ -46,9 +46,10 @@ type CheckProfessionalBusyDateParams struct {
}
type CheckProfessionalBusyDateRow struct {
- ID pgtype.UUID `json:"id"`
- Horario pgtype.Text `json:"horario"`
- Status pgtype.Text `json:"status"`
+ ID pgtype.UUID `json:"id"`
+ Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
+ Status pgtype.Text `json:"status"`
}
func (q *Queries) CheckProfessionalBusyDate(ctx context.Context, arg CheckProfessionalBusyDateParams) ([]CheckProfessionalBusyDateRow, error) {
@@ -60,7 +61,12 @@ func (q *Queries) CheckProfessionalBusyDate(ctx context.Context, arg CheckProfes
var items []CheckProfessionalBusyDateRow
for rows.Next() {
var i CheckProfessionalBusyDateRow
- if err := rows.Scan(&i.ID, &i.Horario, &i.Status); err != nil {
+ if err := rows.Scan(
+ &i.ID,
+ &i.Horario,
+ &i.HorarioFim,
+ &i.Status,
+ ); err != nil {
return nil, err
}
items = append(items, i)
@@ -80,6 +86,7 @@ INSERT INTO agenda (
local_evento,
endereco,
horario,
+ horario_fim,
qtd_formandos,
qtd_fotografos,
qtd_recepcionistas,
@@ -100,8 +107,8 @@ INSERT INTO agenda (
regiao,
contatos
) VALUES (
- $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $26, $25
-) RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
+ $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $27, $26
+) RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, horario_fim, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
`
type CreateAgendaParams struct {
@@ -112,6 +119,7 @@ type CreateAgendaParams struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -142,6 +150,7 @@ func (q *Queries) CreateAgenda(ctx context.Context, arg CreateAgendaParams) (Age
arg.LocalEvento,
arg.Endereco,
arg.Horario,
+ arg.HorarioFim,
arg.QtdFormandos,
arg.QtdFotografos,
arg.QtdRecepcionistas,
@@ -173,6 +182,7 @@ func (q *Queries) CreateAgenda(ctx context.Context, arg CreateAgendaParams) (Age
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -215,7 +225,7 @@ func (q *Queries) DeleteAgenda(ctx context.Context, arg DeleteAgendaParams) erro
}
const getAgenda = `-- name: GetAgenda :one
-SELECT id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos FROM agenda
+SELECT id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, horario_fim, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos FROM agenda
WHERE id = $1 AND regiao = $2 LIMIT 1
`
@@ -237,6 +247,7 @@ func (q *Queries) GetAgenda(ctx context.Context, arg GetAgendaParams) (Agenda, e
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -264,7 +275,7 @@ func (q *Queries) GetAgenda(ctx context.Context, arg GetAgendaParams) (Agenda, e
}
const getAgendaByFotDataTipo = `-- name: GetAgendaByFotDataTipo :one
-SELECT id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos FROM agenda
+SELECT id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, horario_fim, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos FROM agenda
WHERE fot_id = $1 AND data_evento = $2 AND tipo_evento_id = $3 AND regiao = $4
LIMIT 1
`
@@ -294,6 +305,7 @@ func (q *Queries) GetAgendaByFotDataTipo(ctx context.Context, arg GetAgendaByFot
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -456,7 +468,7 @@ func (q *Queries) GetAssignment(ctx context.Context, arg GetAssignmentParams) (A
const listAgendas = `-- name: ListAgendas :many
SELECT
- a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
+ a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.horario_fim, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
cf.fot as fot_numero,
cf.instituicao,
c.nome as curso_nome,
@@ -499,6 +511,7 @@ type ListAgendasRow struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -553,6 +566,7 @@ func (q *Queries) ListAgendas(ctx context.Context, regiao pgtype.Text) ([]ListAg
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -599,7 +613,7 @@ func (q *Queries) ListAgendas(ctx context.Context, regiao pgtype.Text) ([]ListAg
const listAgendasByCompany = `-- name: ListAgendasByCompany :many
SELECT
- a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
+ a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.horario_fim, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
cf.fot as fot_numero,
cf.instituicao,
c.nome as curso_nome,
@@ -647,6 +661,7 @@ type ListAgendasByCompanyRow struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -701,6 +716,7 @@ func (q *Queries) ListAgendasByCompany(ctx context.Context, arg ListAgendasByCom
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -747,7 +763,7 @@ func (q *Queries) ListAgendasByCompany(ctx context.Context, arg ListAgendasByCom
const listAgendasByFot = `-- name: ListAgendasByFot :many
SELECT
- a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
+ a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.horario_fim, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
te.nome as tipo_evento_nome
FROM agenda a
JOIN tipos_eventos te ON a.tipo_evento_id = te.id
@@ -770,6 +786,7 @@ type ListAgendasByFotRow struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -814,6 +831,7 @@ func (q *Queries) ListAgendasByFot(ctx context.Context, arg ListAgendasByFotPara
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -850,7 +868,7 @@ func (q *Queries) ListAgendasByFot(ctx context.Context, arg ListAgendasByFotPara
const listAgendasByUser = `-- name: ListAgendasByUser :many
SELECT
- a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
+ a.id, a.user_id, a.fot_id, a.data_evento, a.tipo_evento_id, a.observacoes_evento, a.local_evento, a.endereco, a.horario, a.horario_fim, a.qtd_formandos, a.qtd_fotografos, a.qtd_recepcionistas, a.qtd_cinegrafistas, a.qtd_estudios, a.qtd_ponto_foto, a.qtd_ponto_id, a.qtd_ponto_decorado, a.qtd_pontos_led, a.qtd_plataforma_360, a.status_profissionais, a.foto_faltante, a.recep_faltante, a.cine_faltante, a.logistica_observacoes, a.pre_venda, a.criado_em, a.atualizado_em, a.status, a.logistica_notificacao_enviada_em, a.regiao, a.contatos,
cf.fot as fot_numero,
cf.instituicao,
c.nome as curso_nome,
@@ -898,6 +916,7 @@ type ListAgendasByUserRow struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -952,6 +971,7 @@ func (q *Queries) ListAgendasByUser(ctx context.Context, arg ListAgendasByUserPa
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -1166,26 +1186,27 @@ SET
local_evento = $6,
endereco = $7,
horario = $8,
- qtd_formandos = $9,
- qtd_fotografos = $10,
- qtd_recepcionistas = $11,
- qtd_cinegrafistas = $12,
- qtd_estudios = $13,
- qtd_ponto_foto = $14,
- qtd_ponto_id = $15,
- qtd_ponto_decorado = $16,
- qtd_pontos_led = $17,
- qtd_plataforma_360 = $18,
- status_profissionais = $19,
- foto_faltante = $20,
- recep_faltante = $21,
- cine_faltante = $22,
- logistica_observacoes = $23,
- pre_venda = $24,
- contatos = $25,
+ horario_fim = $9,
+ qtd_formandos = $10,
+ qtd_fotografos = $11,
+ qtd_recepcionistas = $12,
+ qtd_cinegrafistas = $13,
+ qtd_estudios = $14,
+ qtd_ponto_foto = $15,
+ qtd_ponto_id = $16,
+ qtd_ponto_decorado = $17,
+ qtd_pontos_led = $18,
+ qtd_plataforma_360 = $19,
+ status_profissionais = $20,
+ foto_faltante = $21,
+ recep_faltante = $22,
+ cine_faltante = $23,
+ logistica_observacoes = $24,
+ pre_venda = $25,
+ contatos = $26,
atualizado_em = NOW()
-WHERE id = $1 AND regiao = $26
-RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
+WHERE id = $1 AND regiao = $27
+RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, horario_fim, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
`
type UpdateAgendaParams struct {
@@ -1197,6 +1218,7 @@ type UpdateAgendaParams struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
@@ -1227,6 +1249,7 @@ func (q *Queries) UpdateAgenda(ctx context.Context, arg UpdateAgendaParams) (Age
arg.LocalEvento,
arg.Endereco,
arg.Horario,
+ arg.HorarioFim,
arg.QtdFormandos,
arg.QtdFotografos,
arg.QtdRecepcionistas,
@@ -1257,6 +1280,7 @@ func (q *Queries) UpdateAgenda(ctx context.Context, arg UpdateAgendaParams) (Age
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
@@ -1287,7 +1311,7 @@ const updateAgendaStatus = `-- name: UpdateAgendaStatus :one
UPDATE agenda
SET status = $2, atualizado_em = NOW()
WHERE id = $1 AND regiao = $3
-RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
+RETURNING id, user_id, fot_id, data_evento, tipo_evento_id, observacoes_evento, local_evento, endereco, horario, horario_fim, qtd_formandos, qtd_fotografos, qtd_recepcionistas, qtd_cinegrafistas, qtd_estudios, qtd_ponto_foto, qtd_ponto_id, qtd_ponto_decorado, qtd_pontos_led, qtd_plataforma_360, status_profissionais, foto_faltante, recep_faltante, cine_faltante, logistica_observacoes, pre_venda, criado_em, atualizado_em, status, logistica_notificacao_enviada_em, regiao, contatos
`
type UpdateAgendaStatusParams struct {
@@ -1309,6 +1333,7 @@ func (q *Queries) UpdateAgendaStatus(ctx context.Context, arg UpdateAgendaStatus
&i.LocalEvento,
&i.Endereco,
&i.Horario,
+ &i.HorarioFim,
&i.QtdFormandos,
&i.QtdFotografos,
&i.QtdRecepcionistas,
diff --git a/backend/internal/db/generated/models.go b/backend/internal/db/generated/models.go
index e605af2..31de571 100644
--- a/backend/internal/db/generated/models.go
+++ b/backend/internal/db/generated/models.go
@@ -18,6 +18,7 @@ type Agenda struct {
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
+ HorarioFim pgtype.Text `json:"horario_fim"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
diff --git a/backend/internal/db/migrations/021_add_horario_fim.up.sql b/backend/internal/db/migrations/021_add_horario_fim.up.sql
new file mode 100644
index 0000000..200cc47
--- /dev/null
+++ b/backend/internal/db/migrations/021_add_horario_fim.up.sql
@@ -0,0 +1 @@
+ALTER TABLE agenda ADD COLUMN IF NOT EXISTS horario_fim VARCHAR(20);
diff --git a/backend/internal/db/queries/agenda.sql b/backend/internal/db/queries/agenda.sql
index 1651555..89223ed 100644
--- a/backend/internal/db/queries/agenda.sql
+++ b/backend/internal/db/queries/agenda.sql
@@ -7,6 +7,7 @@ INSERT INTO agenda (
local_evento,
endereco,
horario,
+ horario_fim,
qtd_formandos,
qtd_fotografos,
qtd_recepcionistas,
@@ -27,7 +28,7 @@ INSERT INTO agenda (
regiao,
contatos
) VALUES (
- $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, @regiao, $25
+ $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, @regiao, $26
) RETURNING *;
-- name: GetAgenda :one
@@ -112,23 +113,24 @@ SET
local_evento = $6,
endereco = $7,
horario = $8,
- qtd_formandos = $9,
- qtd_fotografos = $10,
- qtd_recepcionistas = $11,
- qtd_cinegrafistas = $12,
- qtd_estudios = $13,
- qtd_ponto_foto = $14,
- qtd_ponto_id = $15,
- qtd_ponto_decorado = $16,
- qtd_pontos_led = $17,
- qtd_plataforma_360 = $18,
- status_profissionais = $19,
- foto_faltante = $20,
- recep_faltante = $21,
- cine_faltante = $22,
- logistica_observacoes = $23,
- pre_venda = $24,
- contatos = $25,
+ horario_fim = $9,
+ qtd_formandos = $10,
+ qtd_fotografos = $11,
+ qtd_recepcionistas = $12,
+ qtd_cinegrafistas = $13,
+ qtd_estudios = $14,
+ qtd_ponto_foto = $15,
+ qtd_ponto_id = $16,
+ qtd_ponto_decorado = $17,
+ qtd_pontos_led = $18,
+ qtd_plataforma_360 = $19,
+ status_profissionais = $20,
+ foto_faltante = $21,
+ recep_faltante = $22,
+ cine_faltante = $23,
+ logistica_observacoes = $24,
+ pre_venda = $25,
+ contatos = $26,
atualizado_em = NOW()
WHERE id = $1 AND regiao = @regiao
RETURNING *;
@@ -196,7 +198,7 @@ WHERE dp.data = $1
ORDER BY p.nome;
-- name: CheckProfessionalBusyDate :many
-SELECT a.id, a.horario, ap.status
+SELECT a.id, a.horario, a.horario_fim, ap.status
FROM agenda_profissionais ap
JOIN agenda a ON ap.agenda_id = a.id
WHERE ap.profissional_id = $1
diff --git a/backend/internal/db/schema.sql b/backend/internal/db/schema.sql
index 5c30282..a5eb5cd 100644
--- a/backend/internal/db/schema.sql
+++ b/backend/internal/db/schema.sql
@@ -226,6 +226,7 @@ CREATE TABLE IF NOT EXISTS agenda (
local_evento VARCHAR(255),
endereco VARCHAR(255),
horario VARCHAR(20),
+ horario_fim VARCHAR(20),
qtd_formandos INTEGER DEFAULT 0,
qtd_fotografos INTEGER DEFAULT 0,
qtd_recepcionistas INTEGER DEFAULT 0,
diff --git a/frontend/components/EventForm.tsx b/frontend/components/EventForm.tsx
index 4050d90..a6e6606 100644
--- a/frontend/components/EventForm.tsx
+++ b/frontend/components/EventForm.tsx
@@ -439,6 +439,7 @@ export const EventForm: React.FC
- {selectedEvent.time} + {selectedEvent.startTime || selectedEvent.time} + {selectedEvent.endTime || selectedEvent.horario_fim ? ` - ${selectedEvent.endTime || selectedEvent.horario_fim}` : ''}
@@ -1600,7 +1625,8 @@ export const Dashboard: React.FC