// 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, 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, $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, 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, 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 { 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"` 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"` } 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.Cep, arg.Numero, arg.Complemento, arg.Bairro, 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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 linkProfissionalToUsuario = `-- name: LinkProfissionalToUsuario :exec UPDATE cadastro_profissionais SET usuario_id = $2 WHERE id = $1 AND regiao = $3 ` type LinkProfissionalToUsuarioParams struct { ID pgtype.UUID `json:"id"` UsuarioID pgtype.UUID `json:"usuario_id"` Regiao pgtype.Text `json:"regiao"` } func (q *Queries) LinkProfissionalToUsuario(ctx context.Context, arg LinkProfissionalToUsuarioParams) error { _, err := q.db.Exec(ctx, linkProfissionalToUsuario, arg.ID, arg.UsuarioID, arg.Regiao) return 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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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.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 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"` 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"` 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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, cep = $28, numero = $29, complemento = $30, bairro = $31, 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 = $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 { 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"` 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"` } 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.Cep, arg.Numero, arg.Complemento, arg.Bairro, 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.Cep, &i.Numero, &i.Complemento, &i.Bairro, &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 }