photum/backend/internal/db/generated/models.go
NANDO9322 9c6ee3afdb feat: habilita edição de perfil para clientes e corrige carga de dados
Backend:
- Adiciona endpoint `PUT /api/me` para permitir atualização de dados do usuário logado.
- Implementa query `UpdateCadastroCliente` e função de serviço [UpdateClientData]para persistir alterações de clientes.
- Atualiza handlers [Me], [Login] e [ListPending] para incluir e mapear corretamente campos de cliente (CPF, Endereço, Telefone).
- Corrige mapeamento do campo `phone` na struct de resposta do usuário.

Frontend:
- Habilita o formulário de edição em [Profile.tsx] para usuários do tipo 'CLIENTE' (Event Owner).
- Adiciona função [updateUserProfile] em [apiService.ts] para consumir o novo endpoint.
- Atualiza [AuthContext] para persistir campos do cliente (CPF, Endereço, etc.) durante a restauração de sessão ([restoreSession], corrigindo o bug de perfil vazio ao recarregar a página.
- Padroniza envio de dados no Registro e Aprovação para usar `snake_case` (ex: `cpf_cnpj`, `professional_type`).
- Atualiza tipos em [types.ts] para incluir campos de endereço e documentos.
2026-02-09 00:56:09 -03:00

292 lines
13 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package generated
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Agenda struct {
ID pgtype.UUID `json:"id"`
UserID pgtype.UUID `json:"user_id"`
FotID pgtype.UUID `json:"fot_id"`
DataEvento pgtype.Date `json:"data_evento"`
TipoEventoID pgtype.UUID `json:"tipo_evento_id"`
ObservacoesEvento pgtype.Text `json:"observacoes_evento"`
LocalEvento pgtype.Text `json:"local_evento"`
Endereco pgtype.Text `json:"endereco"`
Horario pgtype.Text `json:"horario"`
QtdFormandos pgtype.Int4 `json:"qtd_formandos"`
QtdFotografos pgtype.Int4 `json:"qtd_fotografos"`
QtdRecepcionistas pgtype.Int4 `json:"qtd_recepcionistas"`
QtdCinegrafistas pgtype.Int4 `json:"qtd_cinegrafistas"`
QtdEstudios pgtype.Int4 `json:"qtd_estudios"`
QtdPontoFoto pgtype.Int4 `json:"qtd_ponto_foto"`
QtdPontoID pgtype.Int4 `json:"qtd_ponto_id"`
QtdPontoDecorado pgtype.Int4 `json:"qtd_ponto_decorado"`
QtdPontosLed pgtype.Int4 `json:"qtd_pontos_led"`
QtdPlataforma360 pgtype.Int4 `json:"qtd_plataforma_360"`
StatusProfissionais pgtype.Text `json:"status_profissionais"`
FotoFaltante pgtype.Int4 `json:"foto_faltante"`
RecepFaltante pgtype.Int4 `json:"recep_faltante"`
CineFaltante pgtype.Int4 `json:"cine_faltante"`
LogisticaObservacoes pgtype.Text `json:"logistica_observacoes"`
PreVenda pgtype.Bool `json:"pre_venda"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
Status pgtype.Text `json:"status"`
LogisticaNotificacaoEnviadaEm pgtype.Timestamp `json:"logistica_notificacao_enviada_em"`
Regiao pgtype.Text `json:"regiao"`
Contatos []byte `json:"contatos"`
}
type AgendaEscala struct {
ID pgtype.UUID `json:"id"`
AgendaID pgtype.UUID `json:"agenda_id"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
DataHoraInicio pgtype.Timestamptz `json:"data_hora_inicio"`
DataHoraFim pgtype.Timestamptz `json:"data_hora_fim"`
FuncaoEspecifica pgtype.Text `json:"funcao_especifica"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
}
type AgendaProfissionai struct {
ID pgtype.UUID `json:"id"`
AgendaID pgtype.UUID `json:"agenda_id"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Status pgtype.Text `json:"status"`
MotivoRejeicao pgtype.Text `json:"motivo_rejeicao"`
FuncaoID pgtype.UUID `json:"funcao_id"`
Posicao pgtype.Text `json:"posicao"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type AnosFormatura struct {
ID pgtype.UUID `json:"id"`
AnoSemestre string `json:"ano_semestre"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type CadastroCliente struct {
ID pgtype.UUID `json:"id"`
UsuarioID pgtype.UUID `json:"usuario_id"`
EmpresaID pgtype.UUID `json:"empresa_id"`
Nome pgtype.Text `json:"nome"`
Telefone pgtype.Text `json:"telefone"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
CpfCnpj pgtype.Text `json:"cpf_cnpj"`
Cep pgtype.Text `json:"cep"`
Endereco pgtype.Text `json:"endereco"`
Numero pgtype.Text `json:"numero"`
Complemento pgtype.Text `json:"complemento"`
Bairro pgtype.Text `json:"bairro"`
Cidade pgtype.Text `json:"cidade"`
Estado pgtype.Text `json:"estado"`
}
type CadastroFot struct {
ID pgtype.UUID `json:"id"`
Fot string `json:"fot"`
EmpresaID pgtype.UUID `json:"empresa_id"`
CursoID pgtype.UUID `json:"curso_id"`
AnoFormaturaID pgtype.UUID `json:"ano_formatura_id"`
Instituicao pgtype.Text `json:"instituicao"`
Cidade pgtype.Text `json:"cidade"`
Estado pgtype.Text `json:"estado"`
Observacoes pgtype.Text `json:"observacoes"`
GastosCaptacao pgtype.Numeric `json:"gastos_captacao"`
PreVenda pgtype.Bool `json:"pre_venda"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
Regiao pgtype.Text `json:"regiao"`
}
type CadastroProfissionai struct {
ID pgtype.UUID `json:"id"`
UsuarioID pgtype.UUID `json:"usuario_id"`
Nome string `json:"nome"`
FuncaoProfissionalID pgtype.UUID `json:"funcao_profissional_id"`
Endereco pgtype.Text `json:"endereco"`
Cidade pgtype.Text `json:"cidade"`
Uf pgtype.Text `json:"uf"`
Whatsapp pgtype.Text `json:"whatsapp"`
CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"`
Banco pgtype.Text `json:"banco"`
Agencia pgtype.Text `json:"agencia"`
Conta pgtype.Text `json:"conta"`
ContaPix pgtype.Text `json:"conta_pix"`
CarroDisponivel pgtype.Bool `json:"carro_disponivel"`
TemEstudio pgtype.Bool `json:"tem_estudio"`
QtdEstudio pgtype.Int4 `json:"qtd_estudio"`
TipoCartao pgtype.Text `json:"tipo_cartao"`
Observacao pgtype.Text `json:"observacao"`
QualTec pgtype.Int4 `json:"qual_tec"`
EducacaoSimpatia pgtype.Int4 `json:"educacao_simpatia"`
DesempenhoEvento pgtype.Int4 `json:"desempenho_evento"`
DispHorario pgtype.Int4 `json:"disp_horario"`
Media pgtype.Numeric `json:"media"`
TabelaFree pgtype.Text `json:"tabela_free"`
ExtraPorEquipamento pgtype.Bool `json:"extra_por_equipamento"`
Equipamentos pgtype.Text `json:"equipamentos"`
Email pgtype.Text `json:"email"`
AvatarUrl pgtype.Text `json:"avatar_url"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type CodigosAcesso struct {
ID pgtype.UUID `json:"id"`
Codigo string `json:"codigo"`
Descricao pgtype.Text `json:"descricao"`
ValidadeDias int32 `json:"validade_dias"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
ExpiraEm pgtype.Timestamptz `json:"expira_em"`
Ativo bool `json:"ativo"`
Usos int32 `json:"usos"`
EmpresaID pgtype.UUID `json:"empresa_id"`
Regiao pgtype.Text `json:"regiao"`
}
type Curso struct {
ID pgtype.UUID `json:"id"`
Nome string `json:"nome"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type DisponibilidadeProfissionai struct {
ID pgtype.UUID `json:"id"`
UsuarioID pgtype.UUID `json:"usuario_id"`
Data pgtype.Date `json:"data"`
Status string `json:"status"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type Empresa struct {
ID pgtype.UUID `json:"id"`
Nome string `json:"nome"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type FinancialTransaction struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
}
type FuncoesProfissionai struct {
ID pgtype.UUID `json:"id"`
Nome string `json:"nome"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
}
type LogisticaCarro struct {
ID pgtype.UUID `json:"id"`
AgendaID pgtype.UUID `json:"agenda_id"`
MotoristaID pgtype.UUID `json:"motorista_id"`
NomeMotorista pgtype.Text `json:"nome_motorista"`
HorarioChegada pgtype.Text `json:"horario_chegada"`
Observacoes pgtype.Text `json:"observacoes"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
}
type LogisticaPassageiro struct {
ID pgtype.UUID `json:"id"`
CarroID pgtype.UUID `json:"carro_id"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type MapasEvento struct {
ID pgtype.UUID `json:"id"`
AgendaID pgtype.UUID `json:"agenda_id"`
Nome pgtype.Text `json:"nome"`
ImagemUrl pgtype.Text `json:"imagem_url"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type MarcadoresMapa struct {
ID pgtype.UUID `json:"id"`
MapaID pgtype.UUID `json:"mapa_id"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
PosX pgtype.Numeric `json:"pos_x"`
PosY pgtype.Numeric `json:"pos_y"`
Rotulo pgtype.Text `json:"rotulo"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type PrecosTiposEvento struct {
ID pgtype.UUID `json:"id"`
TipoEventoID pgtype.UUID `json:"tipo_evento_id"`
FuncaoProfissionalID pgtype.UUID `json:"funcao_profissional_id"`
Valor pgtype.Numeric `json:"valor"`
Regiao pgtype.Text `json:"regiao"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type ProfissionaisFuncoesJunction struct {
ProfissionalID pgtype.UUID `json:"profissional_id"`
FuncaoID pgtype.UUID `json:"funcao_id"`
}
type RefreshToken struct {
ID pgtype.UUID `json:"id"`
UsuarioID pgtype.UUID `json:"usuario_id"`
TokenHash string `json:"token_hash"`
UserAgent pgtype.Text `json:"user_agent"`
Ip pgtype.Text `json:"ip"`
ExpiraEm pgtype.Timestamptz `json:"expira_em"`
Revogado bool `json:"revogado"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
}
type TiposEvento struct {
ID pgtype.UUID `json:"id"`
Nome string `json:"nome"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type TiposServico struct {
ID pgtype.UUID `json:"id"`
Nome string `json:"nome"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
Regiao pgtype.Text `json:"regiao"`
}
type Usuario struct {
ID pgtype.UUID `json:"id"`
Email string `json:"email"`
SenhaHash string `json:"senha_hash"`
Role string `json:"role"`
TipoProfissional pgtype.Text `json:"tipo_profissional"`
Ativo bool `json:"ativo"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
RegioesPermitidas []string `json:"regioes_permitidas"`
}