feat: suporte a endereço completo no cadastro de profissionais e correção do fluxo de registro
This commit is contained in:
parent
44b73a080d
commit
cd33c63d9d
8 changed files with 183 additions and 14 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
Loading…
Reference in a new issue