photum/backend/internal/db/generated/financial_transactions.sql.go
2026-02-12 11:32:14 -03:00

738 lines
24 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: financial_transactions.sql
package generated
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const countTransactions = `-- name: CountTransactions :one
SELECT COUNT(*) FROM financial_transactions WHERE regiao = $1
`
func (q *Queries) CountTransactions(ctx context.Context, regiao pgtype.Text) (int64, error) {
row := q.db.QueryRow(ctx, countTransactions, regiao)
var count int64
err := row.Scan(&count)
return count, err
}
const countTransactionsFiltered = `-- name: CountTransactionsFiltered :one
SELECT COUNT(*)
FROM financial_transactions t
LEFT JOIN cadastro_fot f ON t.fot_id = f.id
LEFT JOIN empresas e ON f.empresa_id = e.id
LEFT JOIN cursos c ON f.curso_id = c.id
LEFT JOIN anos_formaturas a ON f.ano_formatura_id = a.id
WHERE
t.regiao = $1 AND
($2::text = '' OR CAST(f.fot AS TEXT) ILIKE '%' || $2 || '%') AND
($3::text = '' OR CAST(t.data_cobranca AS TEXT) ILIKE '%' || $3 || '%') AND
($4::text = '' OR t.tipo_evento ILIKE '%' || $4 || '%') AND
($5::text = '' OR t.tipo_servico ILIKE '%' || $5 || '%') AND
($6::text = '' OR t.professional_name ILIKE '%' || $6 || '%') AND
($7::text = '' OR c.nome ILIKE '%' || $7 || '%') AND
($8::text = '' OR f.instituicao ILIKE '%' || $8 || '%') AND
($9::text = '' OR CAST(a.ano_semestre AS TEXT) ILIKE '%' || $9 || '%') AND
($10::text = '' OR e.nome ILIKE '%' || $10 || '%') AND
-- Date Range Logic
($11::text = '' OR t.data_cobranca >= CAST($11 AS DATE)) AND
($12::text = '' OR t.data_cobranca <= CAST($12 AS DATE)) AND
-- Weekend Logic
($13::boolean = true OR EXTRACT(DOW FROM t.data_cobranca) NOT IN (0, 6))
`
type CountTransactionsFilteredParams struct {
Regiao pgtype.Text `json:"regiao"`
Fot string `json:"fot"`
Data string `json:"data"`
Evento string `json:"evento"`
Servico string `json:"servico"`
Nome string `json:"nome"`
Curso string `json:"curso"`
Instituicao string `json:"instituicao"`
Ano string `json:"ano"`
Empresa string `json:"empresa"`
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
IncludeWeekends bool `json:"include_weekends"`
}
func (q *Queries) CountTransactionsFiltered(ctx context.Context, arg CountTransactionsFilteredParams) (int64, error) {
row := q.db.QueryRow(ctx, countTransactionsFiltered,
arg.Regiao,
arg.Fot,
arg.Data,
arg.Evento,
arg.Servico,
arg.Nome,
arg.Curso,
arg.Instituicao,
arg.Ano,
arg.Empresa,
arg.StartDate,
arg.EndDate,
arg.IncludeWeekends,
)
var count int64
err := row.Scan(&count)
return count, err
}
const createTransaction = `-- name: CreateTransaction :one
INSERT INTO financial_transactions (
fot_id, data_cobranca, tipo_evento, tipo_servico, professional_name,
whatsapp, cpf, tabela_free, valor_free, valor_extra, descricao_extra,
total_pagar, data_pagamento, pgto_ok, profissional_id, regiao
) VALUES (
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16
) RETURNING id, fot_id, data_cobranca, tipo_evento, tipo_servico, professional_name, whatsapp, cpf, tabela_free, valor_free, valor_extra, descricao_extra, total_pagar, data_pagamento, pgto_ok, criado_em, atualizado_em, profissional_id, regiao
`
type CreateTransactionParams struct {
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
}
func (q *Queries) CreateTransaction(ctx context.Context, arg CreateTransactionParams) (FinancialTransaction, error) {
row := q.db.QueryRow(ctx, createTransaction,
arg.FotID,
arg.DataCobranca,
arg.TipoEvento,
arg.TipoServico,
arg.ProfessionalName,
arg.Whatsapp,
arg.Cpf,
arg.TabelaFree,
arg.ValorFree,
arg.ValorExtra,
arg.DescricaoExtra,
arg.TotalPagar,
arg.DataPagamento,
arg.PgtoOk,
arg.ProfissionalID,
arg.Regiao,
)
var i FinancialTransaction
err := row.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
)
return i, err
}
const deleteTransaction = `-- name: DeleteTransaction :exec
DELETE FROM financial_transactions WHERE id = $1 AND regiao = $2
`
type DeleteTransactionParams struct {
ID pgtype.UUID `json:"id"`
Regiao pgtype.Text `json:"regiao"`
}
func (q *Queries) DeleteTransaction(ctx context.Context, arg DeleteTransactionParams) error {
_, err := q.db.Exec(ctx, deleteTransaction, arg.ID, arg.Regiao)
return err
}
const getTransaction = `-- name: GetTransaction :one
SELECT id, fot_id, data_cobranca, tipo_evento, tipo_servico, professional_name, whatsapp, cpf, tabela_free, valor_free, valor_extra, descricao_extra, total_pagar, data_pagamento, pgto_ok, criado_em, atualizado_em, profissional_id, regiao FROM financial_transactions WHERE id = $1 AND regiao = $2
`
type GetTransactionParams struct {
ID pgtype.UUID `json:"id"`
Regiao pgtype.Text `json:"regiao"`
}
func (q *Queries) GetTransaction(ctx context.Context, arg GetTransactionParams) (FinancialTransaction, error) {
row := q.db.QueryRow(ctx, getTransaction, arg.ID, arg.Regiao)
var i FinancialTransaction
err := row.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
)
return i, err
}
const listTransactions = `-- name: ListTransactions :many
SELECT t.id, t.fot_id, t.data_cobranca, t.tipo_evento, t.tipo_servico, t.professional_name, t.whatsapp, t.cpf, t.tabela_free, t.valor_free, t.valor_extra, t.descricao_extra, t.total_pagar, t.data_pagamento, t.pgto_ok, t.criado_em, t.atualizado_em, t.profissional_id, t.regiao, f.fot as fot_numero
FROM financial_transactions t
LEFT JOIN cadastro_fot f ON t.fot_id = f.id
WHERE t.regiao = $1
ORDER BY t.data_cobranca DESC NULLS LAST
`
type ListTransactionsRow struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
FotNumero pgtype.Text `json:"fot_numero"`
}
func (q *Queries) ListTransactions(ctx context.Context, regiao pgtype.Text) ([]ListTransactionsRow, error) {
rows, err := q.db.Query(ctx, listTransactions, regiao)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTransactionsRow
for rows.Next() {
var i ListTransactionsRow
if err := rows.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
&i.FotNumero,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listTransactionsByFot = `-- name: ListTransactionsByFot :many
SELECT id, fot_id, data_cobranca, tipo_evento, tipo_servico, professional_name, whatsapp, cpf, tabela_free, valor_free, valor_extra, descricao_extra, total_pagar, data_pagamento, pgto_ok, criado_em, atualizado_em, profissional_id, regiao FROM financial_transactions
WHERE fot_id = $1 AND regiao = $2
ORDER BY data_cobranca DESC
`
type ListTransactionsByFotParams struct {
FotID pgtype.UUID `json:"fot_id"`
Regiao pgtype.Text `json:"regiao"`
}
func (q *Queries) ListTransactionsByFot(ctx context.Context, arg ListTransactionsByFotParams) ([]FinancialTransaction, error) {
rows, err := q.db.Query(ctx, listTransactionsByFot, arg.FotID, arg.Regiao)
if err != nil {
return nil, err
}
defer rows.Close()
var items []FinancialTransaction
for rows.Next() {
var i FinancialTransaction
if err := rows.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listTransactionsByProfessional = `-- name: ListTransactionsByProfessional :many
SELECT t.id, t.fot_id, t.data_cobranca, t.tipo_evento, t.tipo_servico, t.professional_name, t.whatsapp, t.cpf, t.tabela_free, t.valor_free, t.valor_extra, t.descricao_extra, t.total_pagar, t.data_pagamento, t.pgto_ok, t.criado_em, t.atualizado_em, t.profissional_id, t.regiao, f.fot as fot_numero, e.nome as empresa_nome, c.nome as curso_nome
FROM financial_transactions t
LEFT JOIN cadastro_fot f ON t.fot_id = f.id
LEFT JOIN empresas e ON f.empresa_id = e.id
LEFT JOIN cursos c ON f.curso_id = c.id
WHERE
t.profissional_id = $1
OR (
$2::text <> '' AND
REGEXP_REPLACE(t.cpf, '\D', '', 'g') = REGEXP_REPLACE($2, '\D', '', 'g')
) AND t.regiao = $3
ORDER BY t.data_cobranca DESC
`
type ListTransactionsByProfessionalParams struct {
ProfissionalID pgtype.UUID `json:"profissional_id"`
Column2 string `json:"column_2"`
Regiao pgtype.Text `json:"regiao"`
}
type ListTransactionsByProfessionalRow struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
FotNumero pgtype.Text `json:"fot_numero"`
EmpresaNome pgtype.Text `json:"empresa_nome"`
CursoNome pgtype.Text `json:"curso_nome"`
}
func (q *Queries) ListTransactionsByProfessional(ctx context.Context, arg ListTransactionsByProfessionalParams) ([]ListTransactionsByProfessionalRow, error) {
rows, err := q.db.Query(ctx, listTransactionsByProfessional, arg.ProfissionalID, arg.Column2, arg.Regiao)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTransactionsByProfessionalRow
for rows.Next() {
var i ListTransactionsByProfessionalRow
if err := rows.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
&i.FotNumero,
&i.EmpresaNome,
&i.CursoNome,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listTransactionsPaginated = `-- name: ListTransactionsPaginated :many
SELECT t.id, t.fot_id, t.data_cobranca, t.tipo_evento, t.tipo_servico, t.professional_name, t.whatsapp, t.cpf, t.tabela_free, t.valor_free, t.valor_extra, t.descricao_extra, t.total_pagar, t.data_pagamento, t.pgto_ok, t.criado_em, t.atualizado_em, t.profissional_id, t.regiao, f.fot as fot_numero,
e.nome as empresa_nome,
c.nome as curso_nome,
a.ano_semestre as ano_formatura,
f.instituicao as instituicao_nome
FROM financial_transactions t
LEFT JOIN cadastro_fot f ON t.fot_id = f.id
LEFT JOIN empresas e ON f.empresa_id = e.id
LEFT JOIN cursos c ON f.curso_id = c.id
LEFT JOIN anos_formaturas a ON f.ano_formatura_id = a.id
WHERE t.regiao = $3
ORDER BY t.data_cobranca DESC NULLS LAST
LIMIT $1 OFFSET $2
`
type ListTransactionsPaginatedParams struct {
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
Regiao pgtype.Text `json:"regiao"`
}
type ListTransactionsPaginatedRow struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
FotNumero pgtype.Text `json:"fot_numero"`
EmpresaNome pgtype.Text `json:"empresa_nome"`
CursoNome pgtype.Text `json:"curso_nome"`
AnoFormatura pgtype.Text `json:"ano_formatura"`
InstituicaoNome pgtype.Text `json:"instituicao_nome"`
}
func (q *Queries) ListTransactionsPaginated(ctx context.Context, arg ListTransactionsPaginatedParams) ([]ListTransactionsPaginatedRow, error) {
rows, err := q.db.Query(ctx, listTransactionsPaginated, arg.Limit, arg.Offset, arg.Regiao)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTransactionsPaginatedRow
for rows.Next() {
var i ListTransactionsPaginatedRow
if err := rows.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
&i.FotNumero,
&i.EmpresaNome,
&i.CursoNome,
&i.AnoFormatura,
&i.InstituicaoNome,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listTransactionsPaginatedFiltered = `-- name: ListTransactionsPaginatedFiltered :many
SELECT t.id, t.fot_id, t.data_cobranca, t.tipo_evento, t.tipo_servico, t.professional_name, t.whatsapp, t.cpf, t.tabela_free, t.valor_free, t.valor_extra, t.descricao_extra, t.total_pagar, t.data_pagamento, t.pgto_ok, t.criado_em, t.atualizado_em, t.profissional_id, t.regiao, f.fot as fot_numero,
e.nome as empresa_nome,
c.nome as curso_nome,
a.ano_semestre as ano_formatura,
f.instituicao as instituicao_nome
FROM financial_transactions t
LEFT JOIN cadastro_fot f ON t.fot_id = f.id
LEFT JOIN empresas e ON f.empresa_id = e.id
LEFT JOIN cursos c ON f.curso_id = c.id
LEFT JOIN anos_formaturas a ON f.ano_formatura_id = a.id
WHERE
t.regiao = $3 AND
($4::text = '' OR CAST(f.fot AS TEXT) ILIKE '%' || $4 || '%') AND
($5::text = '' OR CAST(t.data_cobranca AS TEXT) ILIKE '%' || $5 || '%') AND
($6::text = '' OR t.tipo_evento ILIKE '%' || $6 || '%') AND
($7::text = '' OR t.tipo_servico ILIKE '%' || $7 || '%') AND
($8::text = '' OR t.professional_name ILIKE '%' || $8 || '%') AND
($9::text = '' OR c.nome ILIKE '%' || $9 || '%') AND
($10::text = '' OR f.instituicao ILIKE '%' || $10 || '%') AND
($11::text = '' OR CAST(a.ano_semestre AS TEXT) ILIKE '%' || $11 || '%') AND
($12::text = '' OR e.nome ILIKE '%' || $12 || '%') AND
-- Date Range Logic
($13::text = '' OR t.data_cobranca >= CAST($13 AS DATE)) AND
($14::text = '' OR t.data_cobranca <= CAST($14 AS DATE)) AND
-- Weekend Logic (0=Sunday, 6=Saturday)
($15::boolean = true OR EXTRACT(DOW FROM t.data_cobranca) NOT IN (0, 6))
ORDER BY t.data_cobranca DESC NULLS LAST
LIMIT $1 OFFSET $2
`
type ListTransactionsPaginatedFilteredParams struct {
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
Regiao pgtype.Text `json:"regiao"`
Fot string `json:"fot"`
Data string `json:"data"`
Evento string `json:"evento"`
Servico string `json:"servico"`
Nome string `json:"nome"`
Curso string `json:"curso"`
Instituicao string `json:"instituicao"`
Ano string `json:"ano"`
Empresa string `json:"empresa"`
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
IncludeWeekends bool `json:"include_weekends"`
}
type ListTransactionsPaginatedFilteredRow struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
CriadoEm pgtype.Timestamptz `json:"criado_em"`
AtualizadoEm pgtype.Timestamptz `json:"atualizado_em"`
ProfissionalID pgtype.UUID `json:"profissional_id"`
Regiao pgtype.Text `json:"regiao"`
FotNumero pgtype.Text `json:"fot_numero"`
EmpresaNome pgtype.Text `json:"empresa_nome"`
CursoNome pgtype.Text `json:"curso_nome"`
AnoFormatura pgtype.Text `json:"ano_formatura"`
InstituicaoNome pgtype.Text `json:"instituicao_nome"`
}
func (q *Queries) ListTransactionsPaginatedFiltered(ctx context.Context, arg ListTransactionsPaginatedFilteredParams) ([]ListTransactionsPaginatedFilteredRow, error) {
rows, err := q.db.Query(ctx, listTransactionsPaginatedFiltered,
arg.Limit,
arg.Offset,
arg.Regiao,
arg.Fot,
arg.Data,
arg.Evento,
arg.Servico,
arg.Nome,
arg.Curso,
arg.Instituicao,
arg.Ano,
arg.Empresa,
arg.StartDate,
arg.EndDate,
arg.IncludeWeekends,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTransactionsPaginatedFilteredRow
for rows.Next() {
var i ListTransactionsPaginatedFilteredRow
if err := rows.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
&i.FotNumero,
&i.EmpresaNome,
&i.CursoNome,
&i.AnoFormatura,
&i.InstituicaoNome,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const sumTotalByFot = `-- name: SumTotalByFot :one
SELECT COALESCE(SUM(total_pagar), 0)::NUMERIC
FROM financial_transactions
WHERE fot_id = $1
`
func (q *Queries) SumTotalByFot(ctx context.Context, fotID pgtype.UUID) (pgtype.Numeric, error) {
row := q.db.QueryRow(ctx, sumTotalByFot, fotID)
var column_1 pgtype.Numeric
err := row.Scan(&column_1)
return column_1, err
}
const updateTransaction = `-- name: UpdateTransaction :one
UPDATE financial_transactions SET
fot_id = $2, data_cobranca = $3, tipo_evento = $4, tipo_servico = $5,
professional_name = $6, whatsapp = $7, cpf = $8, tabela_free = $9,
valor_free = $10, valor_extra = $11, descricao_extra = $12,
total_pagar = $13, data_pagamento = $14, pgto_ok = $15,
atualizado_em = NOW()
WHERE id = $1 AND regiao = $16
RETURNING id, fot_id, data_cobranca, tipo_evento, tipo_servico, professional_name, whatsapp, cpf, tabela_free, valor_free, valor_extra, descricao_extra, total_pagar, data_pagamento, pgto_ok, criado_em, atualizado_em, profissional_id, regiao
`
type UpdateTransactionParams struct {
ID pgtype.UUID `json:"id"`
FotID pgtype.UUID `json:"fot_id"`
DataCobranca pgtype.Date `json:"data_cobranca"`
TipoEvento pgtype.Text `json:"tipo_evento"`
TipoServico pgtype.Text `json:"tipo_servico"`
ProfessionalName pgtype.Text `json:"professional_name"`
Whatsapp pgtype.Text `json:"whatsapp"`
Cpf pgtype.Text `json:"cpf"`
TabelaFree pgtype.Text `json:"tabela_free"`
ValorFree pgtype.Numeric `json:"valor_free"`
ValorExtra pgtype.Numeric `json:"valor_extra"`
DescricaoExtra pgtype.Text `json:"descricao_extra"`
TotalPagar pgtype.Numeric `json:"total_pagar"`
DataPagamento pgtype.Date `json:"data_pagamento"`
PgtoOk pgtype.Bool `json:"pgto_ok"`
Regiao pgtype.Text `json:"regiao"`
}
func (q *Queries) UpdateTransaction(ctx context.Context, arg UpdateTransactionParams) (FinancialTransaction, error) {
row := q.db.QueryRow(ctx, updateTransaction,
arg.ID,
arg.FotID,
arg.DataCobranca,
arg.TipoEvento,
arg.TipoServico,
arg.ProfessionalName,
arg.Whatsapp,
arg.Cpf,
arg.TabelaFree,
arg.ValorFree,
arg.ValorExtra,
arg.DescricaoExtra,
arg.TotalPagar,
arg.DataPagamento,
arg.PgtoOk,
arg.Regiao,
)
var i FinancialTransaction
err := row.Scan(
&i.ID,
&i.FotID,
&i.DataCobranca,
&i.TipoEvento,
&i.TipoServico,
&i.ProfessionalName,
&i.Whatsapp,
&i.Cpf,
&i.TabelaFree,
&i.ValorFree,
&i.ValorExtra,
&i.DescricaoExtra,
&i.TotalPagar,
&i.DataPagamento,
&i.PgtoOk,
&i.CriadoEm,
&i.AtualizadoEm,
&i.ProfissionalID,
&i.Regiao,
)
return i, err
}