diff --git a/backend/internal/db/generated/agenda.sql.go b/backend/internal/db/generated/agenda.sql.go index faae4e6..55e84d6 100644 --- a/backend/internal/db/generated/agenda.sql.go +++ b/backend/internal/db/generated/agenda.sql.go @@ -321,7 +321,7 @@ func (q *Queries) GetAgendaByFotDataTipo(ctx context.Context, arg GetAgendaByFot } const getAgendaProfessionals = `-- name: GetAgendaProfessionals :many -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, f.nome as funcao_nome, u.email +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, f.nome as funcao_nome, u.email FROM cadastro_profissionais p JOIN agenda_profissionais ap ON p.id = ap.profissional_id LEFT JOIN funcoes_profissionais f ON p.funcao_profissional_id = f.id @@ -338,6 +338,10 @@ type GetAgendaProfessionalsRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -383,6 +387,10 @@ func (q *Queries) GetAgendaProfessionals(ctx context.Context, agendaID pgtype.UU &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -942,7 +950,7 @@ func (q *Queries) ListAgendasByUser(ctx context.Context, arg ListAgendasByUserPa const listAvailableProfessionalsForDate = `-- name: ListAvailableProfessionalsForDate :many SELECT - p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, + p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, u.email, f.nome as funcao_nome, dp.status as status_disponibilidade @@ -977,6 +985,10 @@ type ListAvailableProfessionalsForDateRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -1023,6 +1035,10 @@ func (q *Queries) ListAvailableProfessionalsForDate(ctx context.Context, arg Lis &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, diff --git a/backend/internal/db/generated/models.go b/backend/internal/db/generated/models.go index ffe9e0d..625a75c 100644 --- a/backend/internal/db/generated/models.go +++ b/backend/internal/db/generated/models.go @@ -115,6 +115,10 @@ type CadastroProfissionai struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` diff --git a/backend/internal/db/generated/profissionais.sql.go b/backend/internal/db/generated/profissionais.sql.go index 3babf99..2bc6fd2 100644 --- a/backend/internal/db/generated/profissionais.sql.go +++ b/backend/internal/db/generated/profissionais.sql.go @@ -39,18 +39,28 @@ func (q *Queries) ClearProfessionalFunctions(ctx context.Context, profissionalID const createProfissional = `-- name: CreateProfissional :one INSERT INTO cadastro_profissionais ( usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, + cep, numero, complemento, bairro, cpf_cnpj_titular, banco, agencia, conta_pix, conta, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, regiao ) 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, $25, $26, $27, $28 + $1, $2, $3, $4, $5, $6, $7, + $28, $29, $30, $31, + $8, $9, $10, $11, $12, $13, $14, $15, + $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $32 ) ON CONFLICT (email) DO UPDATE SET nome = EXCLUDED.nome, funcao_profissional_id = EXCLUDED.funcao_profissional_id, whatsapp = EXCLUDED.whatsapp, + endereco = EXCLUDED.endereco, + cidade = EXCLUDED.cidade, + uf = EXCLUDED.uf, + cep = EXCLUDED.cep, + numero = EXCLUDED.numero, + complemento = EXCLUDED.complemento, + bairro = EXCLUDED.bairro, cpf_cnpj_titular = EXCLUDED.cpf_cnpj_titular, banco = EXCLUDED.banco, agencia = EXCLUDED.agencia, @@ -72,7 +82,7 @@ ON CONFLICT (email) DO UPDATE SET avatar_url = EXCLUDED.avatar_url, regiao = EXCLUDED.regiao, atualizado_em = NOW() -RETURNING id, usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, cpf_cnpj_titular, banco, agencia, conta, conta_pix, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, criado_em, atualizado_em, regiao +RETURNING id, usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, cep, numero, complemento, bairro, cpf_cnpj_titular, banco, agencia, conta, conta_pix, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, criado_em, atualizado_em, regiao ` type CreateProfissionalParams struct { @@ -103,6 +113,10 @@ type CreateProfissionalParams struct { Equipamentos pgtype.Text `json:"equipamentos"` Email pgtype.Text `json:"email"` AvatarUrl pgtype.Text `json:"avatar_url"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` Regiao pgtype.Text `json:"regiao"` } @@ -135,6 +149,10 @@ func (q *Queries) CreateProfissional(ctx context.Context, arg CreateProfissional arg.Equipamentos, arg.Email, arg.AvatarUrl, + arg.Cep, + arg.Numero, + arg.Complemento, + arg.Bairro, arg.Regiao, ) var i CadastroProfissionai @@ -147,6 +165,10 @@ func (q *Queries) CreateProfissional(ctx context.Context, arg CreateProfissional &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -199,7 +221,7 @@ func (q *Queries) DeleteProfissional(ctx context.Context, arg DeleteProfissional } const getProfissionalByCPF = `-- name: GetProfissionalByCPF :one -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, COALESCE( (SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome)) FROM profissionais_funcoes_junction pfj @@ -225,6 +247,10 @@ type GetProfissionalByCPFRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -263,6 +289,10 @@ func (q *Queries) GetProfissionalByCPF(ctx context.Context, arg GetProfissionalB &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -292,7 +322,7 @@ func (q *Queries) GetProfissionalByCPF(ctx context.Context, arg GetProfissionalB } const getProfissionalByID = `-- name: GetProfissionalByID :one -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, COALESCE( (SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome)) FROM profissionais_funcoes_junction pfj @@ -318,6 +348,10 @@ type GetProfissionalByIDRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -356,6 +390,10 @@ func (q *Queries) GetProfissionalByID(ctx context.Context, arg GetProfissionalBy &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -385,7 +423,7 @@ func (q *Queries) GetProfissionalByID(ctx context.Context, arg GetProfissionalBy } const getProfissionalByUsuarioID = `-- name: GetProfissionalByUsuarioID :one -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, u.email as usuario_email, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, u.email as usuario_email, COALESCE( (SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome)) FROM profissionais_funcoes_junction pfj @@ -407,6 +445,10 @@ type GetProfissionalByUsuarioIDRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -446,6 +488,10 @@ func (q *Queries) GetProfissionalByUsuarioID(ctx context.Context, usuarioID pgty &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -507,7 +553,7 @@ func (q *Queries) LinkUserToProfessional(ctx context.Context, arg LinkUserToProf } const listProfissionais = `-- name: ListProfissionais :many -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, u.email as usuario_email, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, u.email as usuario_email, COALESCE( (SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome)) FROM profissionais_funcoes_junction pfj @@ -530,6 +576,10 @@ type ListProfissionaisRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -575,6 +625,10 @@ func (q *Queries) ListProfissionais(ctx context.Context, regiao pgtype.Text) ([] &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -612,7 +666,7 @@ func (q *Queries) ListProfissionais(ctx context.Context, regiao pgtype.Text) ([] } const searchProfissionais = `-- name: SearchProfissionais :many -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, COALESCE( (SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome)) FROM profissionais_funcoes_junction pfj @@ -640,6 +694,10 @@ type SearchProfissionaisRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -684,6 +742,10 @@ func (q *Queries) SearchProfissionais(ctx context.Context, arg SearchProfissiona &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -720,7 +782,7 @@ func (q *Queries) SearchProfissionais(ctx context.Context, arg SearchProfissiona } const searchProfissionaisByFunction = `-- name: SearchProfissionaisByFunction :many -SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, +SELECT p.id, p.usuario_id, p.nome, p.funcao_profissional_id, p.endereco, p.cidade, p.uf, p.whatsapp, p.cep, p.numero, p.complemento, p.bairro, p.cpf_cnpj_titular, p.banco, p.agencia, p.conta, p.conta_pix, p.carro_disponivel, p.tem_estudio, p.qtd_estudio, p.tipo_cartao, p.observacao, p.qual_tec, p.educacao_simpatia, p.desempenho_evento, p.disp_horario, p.media, p.tabela_free, p.extra_por_equipamento, p.equipamentos, p.email, p.avatar_url, p.criado_em, p.atualizado_em, p.regiao, COALESCE( (SELECT json_agg(json_build_object('id', f2.id, 'nome', f2.nome)) FROM profissionais_funcoes_junction pfj2 @@ -759,6 +821,10 @@ type SearchProfissionaisByFunctionRow struct { Cidade pgtype.Text `json:"cidade"` Uf pgtype.Text `json:"uf"` Whatsapp pgtype.Text `json:"whatsapp"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"` Banco pgtype.Text `json:"banco"` Agencia pgtype.Text `json:"agencia"` @@ -803,6 +869,10 @@ func (q *Queries) SearchProfissionaisByFunction(ctx context.Context, arg SearchP &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, @@ -847,6 +917,10 @@ SET cidade = $5, uf = $6, whatsapp = $7, + cep = $28, + numero = $29, + complemento = $30, + bairro = $31, cpf_cnpj_titular = $8, banco = $9, agencia = $10, @@ -868,8 +942,8 @@ SET avatar_url = $26, email = $27, atualizado_em = NOW() -WHERE id = $1 AND regiao = $28 -RETURNING id, usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, cpf_cnpj_titular, banco, agencia, conta, conta_pix, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, criado_em, atualizado_em, regiao +WHERE id = $1 AND regiao = $32 +RETURNING id, usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, cep, numero, complemento, bairro, cpf_cnpj_titular, banco, agencia, conta, conta_pix, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, criado_em, atualizado_em, regiao ` type UpdateProfissionalParams struct { @@ -900,6 +974,10 @@ type UpdateProfissionalParams struct { Equipamentos pgtype.Text `json:"equipamentos"` AvatarUrl pgtype.Text `json:"avatar_url"` Email pgtype.Text `json:"email"` + Cep pgtype.Text `json:"cep"` + Numero pgtype.Text `json:"numero"` + Complemento pgtype.Text `json:"complemento"` + Bairro pgtype.Text `json:"bairro"` Regiao pgtype.Text `json:"regiao"` } @@ -932,6 +1010,10 @@ func (q *Queries) UpdateProfissional(ctx context.Context, arg UpdateProfissional arg.Equipamentos, arg.AvatarUrl, arg.Email, + arg.Cep, + arg.Numero, + arg.Complemento, + arg.Bairro, arg.Regiao, ) var i CadastroProfissionai @@ -944,6 +1026,10 @@ func (q *Queries) UpdateProfissional(ctx context.Context, arg UpdateProfissional &i.Cidade, &i.Uf, &i.Whatsapp, + &i.Cep, + &i.Numero, + &i.Complemento, + &i.Bairro, &i.CpfCnpjTitular, &i.Banco, &i.Agencia, diff --git a/backend/internal/db/migrations/018_add_professional_address_fields.up.sql b/backend/internal/db/migrations/018_add_professional_address_fields.up.sql new file mode 100644 index 0000000..f03ad83 --- /dev/null +++ b/backend/internal/db/migrations/018_add_professional_address_fields.up.sql @@ -0,0 +1,5 @@ +ALTER TABLE cadastro_profissionais +ADD COLUMN IF NOT EXISTS cep VARCHAR(10), +ADD COLUMN IF NOT EXISTS numero VARCHAR(20), +ADD COLUMN IF NOT EXISTS complemento VARCHAR(100), +ADD COLUMN IF NOT EXISTS bairro VARCHAR(100); diff --git a/backend/internal/db/queries/profissionais.sql b/backend/internal/db/queries/profissionais.sql index 408289b..cfca7ba 100644 --- a/backend/internal/db/queries/profissionais.sql +++ b/backend/internal/db/queries/profissionais.sql @@ -1,18 +1,28 @@ -- name: CreateProfissional :one INSERT INTO cadastro_profissionais ( usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp, + cep, numero, complemento, bairro, cpf_cnpj_titular, banco, agencia, conta_pix, conta, carro_disponivel, tem_estudio, qtd_estudio, tipo_cartao, observacao, qual_tec, educacao_simpatia, desempenho_evento, disp_horario, media, tabela_free, extra_por_equipamento, equipamentos, email, avatar_url, regiao ) VALUES ( - $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, + $1, $2, $3, $4, $5, $6, $7, + $28, $29, $30, $31, + $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, @regiao ) ON CONFLICT (email) DO UPDATE SET nome = EXCLUDED.nome, funcao_profissional_id = EXCLUDED.funcao_profissional_id, whatsapp = EXCLUDED.whatsapp, + endereco = EXCLUDED.endereco, + cidade = EXCLUDED.cidade, + uf = EXCLUDED.uf, + cep = EXCLUDED.cep, + numero = EXCLUDED.numero, + complemento = EXCLUDED.complemento, + bairro = EXCLUDED.bairro, cpf_cnpj_titular = EXCLUDED.cpf_cnpj_titular, banco = EXCLUDED.banco, agencia = EXCLUDED.agencia, @@ -84,6 +94,10 @@ SET cidade = $5, uf = $6, whatsapp = $7, + cep = $28, + numero = $29, + complemento = $30, + bairro = $31, cpf_cnpj_titular = $8, banco = $9, agencia = $10, diff --git a/backend/internal/db/schema.sql b/backend/internal/db/schema.sql index d600bb0..e29bfe6 100644 --- a/backend/internal/db/schema.sql +++ b/backend/internal/db/schema.sql @@ -37,6 +37,10 @@ CREATE TABLE IF NOT EXISTS cadastro_profissionais ( cidade VARCHAR(100), uf CHAR(2), whatsapp VARCHAR(20), + cep VARCHAR(10), + numero VARCHAR(20), + complemento VARCHAR(100), + bairro VARCHAR(100), cpf_cnpj_titular VARCHAR(20) UNIQUE, banco VARCHAR(100), agencia VARCHAR(20), diff --git a/backend/internal/profissionais/handler.go b/backend/internal/profissionais/handler.go index 60ba91e..ae2d563 100644 --- a/backend/internal/profissionais/handler.go +++ b/backend/internal/profissionais/handler.go @@ -30,6 +30,10 @@ type ProfissionalResponse struct { Endereco *string `json:"endereco"` Cidade *string `json:"cidade"` Uf *string `json:"uf"` + Cep *string `json:"cep"` + Numero *string `json:"numero"` + Complemento *string `json:"complemento"` + Bairro *string `json:"bairro"` Whatsapp *string `json:"whatsapp"` CpfCnpjTitular *string `json:"cpf_cnpj_titular"` Banco *string `json:"banco"` @@ -71,6 +75,10 @@ func toResponse(p interface{}) ProfissionalResponse { Endereco: fromPgText(v.Endereco), Cidade: fromPgText(v.Cidade), Uf: fromPgText(v.Uf), + Cep: fromPgText(v.Cep), + Numero: fromPgText(v.Numero), + Complemento: fromPgText(v.Complemento), + Bairro: fromPgText(v.Bairro), Whatsapp: fromPgText(v.Whatsapp), CpfCnpjTitular: fromPgText(v.CpfCnpjTitular), Banco: fromPgText(v.Banco), @@ -108,6 +116,10 @@ func toResponse(p interface{}) ProfissionalResponse { Endereco: fromPgText(v.Endereco), Cidade: fromPgText(v.Cidade), Uf: fromPgText(v.Uf), + Cep: fromPgText(v.Cep), + Numero: fromPgText(v.Numero), + Complemento: fromPgText(v.Complemento), + Bairro: fromPgText(v.Bairro), Whatsapp: fromPgText(v.Whatsapp), CpfCnpjTitular: fromPgText(v.CpfCnpjTitular), Banco: fromPgText(v.Banco), @@ -141,6 +153,10 @@ func toResponse(p interface{}) ProfissionalResponse { Endereco: fromPgText(v.Endereco), Cidade: fromPgText(v.Cidade), Uf: fromPgText(v.Uf), + Cep: fromPgText(v.Cep), + Numero: fromPgText(v.Numero), + Complemento: fromPgText(v.Complemento), + Bairro: fromPgText(v.Bairro), Whatsapp: fromPgText(v.Whatsapp), CpfCnpjTitular: fromPgText(v.CpfCnpjTitular), Banco: fromPgText(v.Banco), @@ -178,6 +194,10 @@ func toResponse(p interface{}) ProfissionalResponse { Endereco: fromPgText(v.Endereco), Cidade: fromPgText(v.Cidade), Uf: fromPgText(v.Uf), + Cep: fromPgText(v.Cep), + Numero: fromPgText(v.Numero), + Complemento: fromPgText(v.Complemento), + Bairro: fromPgText(v.Bairro), Whatsapp: fromPgText(v.Whatsapp), CpfCnpjTitular: fromPgText(v.CpfCnpjTitular), Banco: fromPgText(v.Banco), diff --git a/backend/internal/profissionais/service.go b/backend/internal/profissionais/service.go index dd7f64f..8caf9d2 100644 --- a/backend/internal/profissionais/service.go +++ b/backend/internal/profissionais/service.go @@ -27,6 +27,10 @@ type CreateProfissionalInput struct { Endereco *string `json:"endereco"` Cidade *string `json:"cidade"` Uf *string `json:"uf"` + Cep *string `json:"cep"` + Numero *string `json:"numero"` + Complemento *string `json:"complemento"` + Bairro *string `json:"bairro"` Whatsapp *string `json:"whatsapp"` CpfCnpjTitular *string `json:"cpf_cnpj_titular"` Banco *string `json:"banco"` @@ -127,6 +131,10 @@ func (s *Service) Create(ctx context.Context, userID string, input CreateProfiss Endereco: mergeStr(input.Endereco, existing.Endereco), Cidade: mergeStr(input.Cidade, existing.Cidade), Uf: mergeStr(input.Uf, existing.Uf), + Cep: mergeStr(input.Cep, existing.Cep), + Numero: mergeStr(input.Numero, existing.Numero), + Complemento: mergeStr(input.Complemento, existing.Complemento), + Bairro: mergeStr(input.Bairro, existing.Bairro), Whatsapp: mergeStr(input.Whatsapp, existing.Whatsapp), CpfCnpjTitular: mergeStr(input.CpfCnpjTitular, existing.CpfCnpjTitular), Banco: mergeStr(input.Banco, existing.Banco), @@ -197,6 +205,10 @@ func (s *Service) Create(ctx context.Context, userID string, input CreateProfiss Endereco: toPgText(input.Endereco), Cidade: toPgText(input.Cidade), Uf: toPgText(input.Uf), + Cep: toPgText(input.Cep), + Numero: toPgText(input.Numero), + Complemento: toPgText(input.Complemento), + Bairro: toPgText(input.Bairro), Whatsapp: toPgText(input.Whatsapp), CpfCnpjTitular: toPgText(input.CpfCnpjTitular), Banco: toPgText(input.Banco), @@ -275,6 +287,10 @@ type UpdateProfissionalInput struct { Endereco *string `json:"endereco"` Cidade *string `json:"cidade"` Uf *string `json:"uf"` + Cep *string `json:"cep"` + Numero *string `json:"numero"` + Complemento *string `json:"complemento"` + Bairro *string `json:"bairro"` Whatsapp *string `json:"whatsapp"` CpfCnpjTitular *string `json:"cpf_cnpj_titular"` Banco *string `json:"banco"` @@ -443,6 +459,10 @@ func (s *Service) Update(ctx context.Context, id string, input UpdateProfissiona Endereco: toPgText(input.Endereco), Cidade: toPgText(input.Cidade), Uf: toPgText(input.Uf), + Cep: toPgText(input.Cep), + Numero: toPgText(input.Numero), + Complemento: toPgText(input.Complemento), + Bairro: toPgText(input.Bairro), Whatsapp: toPgText(input.Whatsapp), CpfCnpjTitular: toPgText(input.CpfCnpjTitular), Banco: toPgText(input.Banco),