Frontend: - Implementado fluxo de inicialização para novos perfis (modal "Complete seu Cadastro"). - Adicionada lógica para pré-preencher nome e email do usuário no cadastro. - Adicionada renderização condicional: abas "Dados Bancários" e "Profissional" são ocultadas para clientes (EVENT_OWNER). - Unificada a função de salvar (criação e edição) com tratativa correta de erros e feedback (Toast). - Adicionado fallback para exibir o email do usuário caso o do perfil esteja vazio. Backend: - SQL: Ajustada query `GetProfissionalByUsuarioID` para buscar email da tabela de usuários (LEFT JOIN). - Handler: Implementado fallback para usar `UsuarioEmail` na resposta se o `Email` do perfil for nulo. - Service: Correção no salvamento (Create/Update) para tratar `funcao_profissional_id` com UUID vazio (Nil) como NULL, evitando erro de chave estrangeira (FK). Fixes #profile-save-error, #role-visibility
955 lines
34 KiB
Go
955 lines
34 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.30.0
|
|
// source: profissionais.sql
|
|
|
|
package generated
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
const addFunctionToProfessional = `-- name: AddFunctionToProfessional :exec
|
|
INSERT INTO profissionais_funcoes_junction (profissional_id, funcao_id)
|
|
VALUES ($1, $2)
|
|
ON CONFLICT DO NOTHING
|
|
`
|
|
|
|
type AddFunctionToProfessionalParams struct {
|
|
ProfissionalID pgtype.UUID `json:"profissional_id"`
|
|
FuncaoID pgtype.UUID `json:"funcao_id"`
|
|
}
|
|
|
|
func (q *Queries) AddFunctionToProfessional(ctx context.Context, arg AddFunctionToProfessionalParams) error {
|
|
_, err := q.db.Exec(ctx, addFunctionToProfessional, arg.ProfissionalID, arg.FuncaoID)
|
|
return err
|
|
}
|
|
|
|
const clearProfessionalFunctions = `-- name: ClearProfessionalFunctions :exec
|
|
DELETE FROM profissionais_funcoes_junction WHERE profissional_id = $1
|
|
`
|
|
|
|
func (q *Queries) ClearProfessionalFunctions(ctx context.Context, profissionalID pgtype.UUID) error {
|
|
_, err := q.db.Exec(ctx, clearProfessionalFunctions, profissionalID)
|
|
return err
|
|
}
|
|
|
|
const createProfissional = `-- name: CreateProfissional :one
|
|
INSERT INTO cadastro_profissionais (
|
|
usuario_id, nome, funcao_profissional_id, endereco, cidade, uf, whatsapp,
|
|
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
|
|
)
|
|
ON CONFLICT (email) DO UPDATE SET
|
|
nome = EXCLUDED.nome,
|
|
funcao_profissional_id = EXCLUDED.funcao_profissional_id,
|
|
whatsapp = EXCLUDED.whatsapp,
|
|
cpf_cnpj_titular = EXCLUDED.cpf_cnpj_titular,
|
|
banco = EXCLUDED.banco,
|
|
agencia = EXCLUDED.agencia,
|
|
conta_pix = EXCLUDED.conta_pix,
|
|
conta = EXCLUDED.conta,
|
|
carro_disponivel = EXCLUDED.carro_disponivel,
|
|
tem_estudio = EXCLUDED.tem_estudio,
|
|
qtd_estudio = EXCLUDED.qtd_estudio,
|
|
tipo_cartao = EXCLUDED.tipo_cartao,
|
|
observacao = EXCLUDED.observacao,
|
|
qual_tec = EXCLUDED.qual_tec,
|
|
educacao_simpatia = EXCLUDED.educacao_simpatia,
|
|
desempenho_evento = EXCLUDED.desempenho_evento,
|
|
disp_horario = EXCLUDED.disp_horario,
|
|
media = EXCLUDED.media,
|
|
tabela_free = EXCLUDED.tabela_free,
|
|
extra_por_equipamento = EXCLUDED.extra_por_equipamento,
|
|
equipamentos = EXCLUDED.equipamentos,
|
|
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
|
|
`
|
|
|
|
type CreateProfissionalParams struct {
|
|
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"`
|
|
ContaPix pgtype.Text `json:"conta_pix"`
|
|
Conta pgtype.Text `json:"conta"`
|
|
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"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
func (q *Queries) CreateProfissional(ctx context.Context, arg CreateProfissionalParams) (CadastroProfissionai, error) {
|
|
row := q.db.QueryRow(ctx, createProfissional,
|
|
arg.UsuarioID,
|
|
arg.Nome,
|
|
arg.FuncaoProfissionalID,
|
|
arg.Endereco,
|
|
arg.Cidade,
|
|
arg.Uf,
|
|
arg.Whatsapp,
|
|
arg.CpfCnpjTitular,
|
|
arg.Banco,
|
|
arg.Agencia,
|
|
arg.ContaPix,
|
|
arg.Conta,
|
|
arg.CarroDisponivel,
|
|
arg.TemEstudio,
|
|
arg.QtdEstudio,
|
|
arg.TipoCartao,
|
|
arg.Observacao,
|
|
arg.QualTec,
|
|
arg.EducacaoSimpatia,
|
|
arg.DesempenhoEvento,
|
|
arg.DispHorario,
|
|
arg.Media,
|
|
arg.TabelaFree,
|
|
arg.ExtraPorEquipamento,
|
|
arg.Equipamentos,
|
|
arg.Email,
|
|
arg.AvatarUrl,
|
|
arg.Regiao,
|
|
)
|
|
var i CadastroProfissionai
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const deleteProfessionalFunctions = `-- name: DeleteProfessionalFunctions :exec
|
|
DELETE FROM profissionais_funcoes_junction WHERE profissional_id = $1
|
|
`
|
|
|
|
func (q *Queries) DeleteProfessionalFunctions(ctx context.Context, profissionalID pgtype.UUID) error {
|
|
_, err := q.db.Exec(ctx, deleteProfessionalFunctions, profissionalID)
|
|
return err
|
|
}
|
|
|
|
const deleteProfissional = `-- name: DeleteProfissional :exec
|
|
DELETE FROM cadastro_profissionais
|
|
WHERE id = $1 AND regiao = $2
|
|
`
|
|
|
|
type DeleteProfissionalParams struct {
|
|
ID pgtype.UUID `json:"id"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
func (q *Queries) DeleteProfissional(ctx context.Context, arg DeleteProfissionalParams) error {
|
|
_, err := q.db.Exec(ctx, deleteProfissional, arg.ID, arg.Regiao)
|
|
return err
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome))
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
WHERE p.cpf_cnpj_titular = $1 AND p.regiao = $2 LIMIT 1
|
|
`
|
|
|
|
type GetProfissionalByCPFParams struct {
|
|
CpfCnpjTitular pgtype.Text `json:"cpf_cnpj_titular"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
type GetProfissionalByCPFRow 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"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) GetProfissionalByCPF(ctx context.Context, arg GetProfissionalByCPFParams) (GetProfissionalByCPFRow, error) {
|
|
row := q.db.QueryRow(ctx, getProfissionalByCPF, arg.CpfCnpjTitular, arg.Regiao)
|
|
var i GetProfissionalByCPFRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.Functions,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome))
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
WHERE p.id = $1 AND p.regiao = $2 LIMIT 1
|
|
`
|
|
|
|
type GetProfissionalByIDParams struct {
|
|
ID pgtype.UUID `json:"id"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
type GetProfissionalByIDRow 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"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) GetProfissionalByID(ctx context.Context, arg GetProfissionalByIDParams) (GetProfissionalByIDRow, error) {
|
|
row := q.db.QueryRow(ctx, getProfissionalByID, arg.ID, arg.Regiao)
|
|
var i GetProfissionalByIDRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.Functions,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome))
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
LEFT JOIN usuarios u ON p.usuario_id = u.id
|
|
WHERE p.usuario_id = $1 LIMIT 1
|
|
`
|
|
|
|
type GetProfissionalByUsuarioIDRow 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"`
|
|
UsuarioEmail pgtype.Text `json:"usuario_email"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) GetProfissionalByUsuarioID(ctx context.Context, usuarioID pgtype.UUID) (GetProfissionalByUsuarioIDRow, error) {
|
|
row := q.db.QueryRow(ctx, getProfissionalByUsuarioID, usuarioID)
|
|
var i GetProfissionalByUsuarioIDRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.UsuarioEmail,
|
|
&i.Functions,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const linkUserToProfessional = `-- name: LinkUserToProfessional :exec
|
|
UPDATE cadastro_profissionais SET usuario_id = $2 WHERE id = $1
|
|
`
|
|
|
|
type LinkUserToProfessionalParams struct {
|
|
ID pgtype.UUID `json:"id"`
|
|
UsuarioID pgtype.UUID `json:"usuario_id"`
|
|
}
|
|
|
|
func (q *Queries) LinkUserToProfessional(ctx context.Context, arg LinkUserToProfessionalParams) error {
|
|
_, err := q.db.Exec(ctx, linkUserToProfessional, arg.ID, arg.UsuarioID)
|
|
return err
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome))
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
LEFT JOIN usuarios u ON p.usuario_id = u.id
|
|
WHERE p.regiao = $1
|
|
ORDER BY p.nome
|
|
`
|
|
|
|
type ListProfissionaisRow 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"`
|
|
UsuarioEmail pgtype.Text `json:"usuario_email"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) ListProfissionais(ctx context.Context, regiao pgtype.Text) ([]ListProfissionaisRow, error) {
|
|
rows, err := q.db.Query(ctx, listProfissionais, regiao)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []ListProfissionaisRow
|
|
for rows.Next() {
|
|
var i ListProfissionaisRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.UsuarioEmail,
|
|
&i.Functions,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f.id, 'nome', f.nome))
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
WHERE p.nome ILIKE '%' || $1 || '%' AND p.regiao = $2
|
|
ORDER BY p.nome
|
|
LIMIT 20
|
|
`
|
|
|
|
type SearchProfissionaisParams struct {
|
|
Column1 pgtype.Text `json:"column_1"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
type SearchProfissionaisRow 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"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) SearchProfissionais(ctx context.Context, arg SearchProfissionaisParams) ([]SearchProfissionaisRow, error) {
|
|
rows, err := q.db.Query(ctx, searchProfissionais, arg.Column1, arg.Regiao)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []SearchProfissionaisRow
|
|
for rows.Next() {
|
|
var i SearchProfissionaisRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.Functions,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
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,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', f2.id, 'nome', f2.nome))
|
|
FROM profissionais_funcoes_junction pfj2
|
|
JOIN funcoes_profissionais f2 ON pfj2.funcao_id = f2.id
|
|
WHERE pfj2.profissional_id = p.id
|
|
), '[]'::json
|
|
) as functions
|
|
FROM cadastro_profissionais p
|
|
WHERE (p.nome ILIKE '%' || $1 || '%') AND p.regiao = $3
|
|
AND (
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM profissionais_funcoes_junction pfj
|
|
JOIN funcoes_profissionais f ON pfj.funcao_id = f.id
|
|
WHERE pfj.profissional_id = p.id AND f.nome = $2
|
|
)
|
|
OR
|
|
p.funcao_profissional_id = (SELECT id FROM funcoes_profissionais WHERE nome = $2 LIMIT 1)
|
|
)
|
|
ORDER BY p.nome
|
|
LIMIT 20
|
|
`
|
|
|
|
type SearchProfissionaisByFunctionParams struct {
|
|
Column1 pgtype.Text `json:"column_1"`
|
|
Nome string `json:"nome"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
type SearchProfissionaisByFunctionRow 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"`
|
|
Functions interface{} `json:"functions"`
|
|
}
|
|
|
|
func (q *Queries) SearchProfissionaisByFunction(ctx context.Context, arg SearchProfissionaisByFunctionParams) ([]SearchProfissionaisByFunctionRow, error) {
|
|
rows, err := q.db.Query(ctx, searchProfissionaisByFunction, arg.Column1, arg.Nome, arg.Regiao)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []SearchProfissionaisByFunctionRow
|
|
for rows.Next() {
|
|
var i SearchProfissionaisByFunctionRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
&i.Functions,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const updateProfissional = `-- name: UpdateProfissional :one
|
|
UPDATE cadastro_profissionais
|
|
SET
|
|
nome = $2,
|
|
funcao_profissional_id = $3,
|
|
endereco = $4,
|
|
cidade = $5,
|
|
uf = $6,
|
|
whatsapp = $7,
|
|
cpf_cnpj_titular = $8,
|
|
banco = $9,
|
|
agencia = $10,
|
|
conta_pix = $11,
|
|
conta = $12,
|
|
carro_disponivel = $13,
|
|
tem_estudio = $14,
|
|
qtd_estudio = $15,
|
|
tipo_cartao = $16,
|
|
observacao = $17,
|
|
qual_tec = $18,
|
|
educacao_simpatia = $19,
|
|
desempenho_evento = $20,
|
|
disp_horario = $21,
|
|
media = $22,
|
|
tabela_free = $23,
|
|
extra_por_equipamento = $24,
|
|
equipamentos = $25,
|
|
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
|
|
`
|
|
|
|
type UpdateProfissionalParams struct {
|
|
ID pgtype.UUID `json:"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"`
|
|
ContaPix pgtype.Text `json:"conta_pix"`
|
|
Conta pgtype.Text `json:"conta"`
|
|
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"`
|
|
AvatarUrl pgtype.Text `json:"avatar_url"`
|
|
Email pgtype.Text `json:"email"`
|
|
Regiao pgtype.Text `json:"regiao"`
|
|
}
|
|
|
|
func (q *Queries) UpdateProfissional(ctx context.Context, arg UpdateProfissionalParams) (CadastroProfissionai, error) {
|
|
row := q.db.QueryRow(ctx, updateProfissional,
|
|
arg.ID,
|
|
arg.Nome,
|
|
arg.FuncaoProfissionalID,
|
|
arg.Endereco,
|
|
arg.Cidade,
|
|
arg.Uf,
|
|
arg.Whatsapp,
|
|
arg.CpfCnpjTitular,
|
|
arg.Banco,
|
|
arg.Agencia,
|
|
arg.ContaPix,
|
|
arg.Conta,
|
|
arg.CarroDisponivel,
|
|
arg.TemEstudio,
|
|
arg.QtdEstudio,
|
|
arg.TipoCartao,
|
|
arg.Observacao,
|
|
arg.QualTec,
|
|
arg.EducacaoSimpatia,
|
|
arg.DesempenhoEvento,
|
|
arg.DispHorario,
|
|
arg.Media,
|
|
arg.TabelaFree,
|
|
arg.ExtraPorEquipamento,
|
|
arg.Equipamentos,
|
|
arg.AvatarUrl,
|
|
arg.Email,
|
|
arg.Regiao,
|
|
)
|
|
var i CadastroProfissionai
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.UsuarioID,
|
|
&i.Nome,
|
|
&i.FuncaoProfissionalID,
|
|
&i.Endereco,
|
|
&i.Cidade,
|
|
&i.Uf,
|
|
&i.Whatsapp,
|
|
&i.CpfCnpjTitular,
|
|
&i.Banco,
|
|
&i.Agencia,
|
|
&i.Conta,
|
|
&i.ContaPix,
|
|
&i.CarroDisponivel,
|
|
&i.TemEstudio,
|
|
&i.QtdEstudio,
|
|
&i.TipoCartao,
|
|
&i.Observacao,
|
|
&i.QualTec,
|
|
&i.EducacaoSimpatia,
|
|
&i.DesempenhoEvento,
|
|
&i.DispHorario,
|
|
&i.Media,
|
|
&i.TabelaFree,
|
|
&i.ExtraPorEquipamento,
|
|
&i.Equipamentos,
|
|
&i.Email,
|
|
&i.AvatarUrl,
|
|
&i.CriadoEm,
|
|
&i.AtualizadoEm,
|
|
&i.Regiao,
|
|
)
|
|
return i, err
|
|
}
|