db

package
v0.0.0-...-31693e8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2025 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDBConnection

func CreateDBConnection(uri string) (*pgxpool.Pool, error)

CreateDBConnection generates from the db source uri the connector

Types

type Account

type Account struct {
	ID           int64           `json:"id"`
	Owner        string          `json:"owner"`
	Title        string          `json:"title"`
	Description  string          `json:"description"`
	InitBalance  decimal.Decimal `json:"init_balance"`
	Balance      decimal.Decimal `json:"balance"`
	FinalBalance decimal.Decimal `json:"final_balance"`
}

type AddAccountBalanceParams

type AddAccountBalanceParams struct {
	Amount      decimal.Decimal `json:"amount"`
	FinalAmount decimal.Decimal `json:"final_amount"`
	ID          int64           `json:"id"`
}

type AddLineTxParams

type AddLineTxParams struct {
	Title       string          `json:"title"`
	Owner       string          `json:"owner"`
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
	AccountID   int64           `json:"account_id"`
	MonthID     int64           `json:"month_id"`
	YearID      int64           `json:"year_id"`
	CategoryID  int64           `json:"category_id"`
}

AddLineTxParams contains all infos to create a new line

type AddLineTxResult

type AddLineTxResult struct {
	Line    Line         `json:"line"`
	Balance util.Balance `json:"balance"`
}

AddLineTxResult contains all infos about the result of line creation

type AddMonthBalanceParams

type AddMonthBalanceParams struct {
	Amount      decimal.Decimal `json:"amount"`
	FinalAmount decimal.Decimal `json:"final_amount"`
	ID          int64           `json:"id"`
}

type AddYearBalanceParams

type AddYearBalanceParams struct {
	Amount      decimal.Decimal `json:"amount"`
	FinalAmount decimal.Decimal `json:"final_amount"`
	ID          int64           `json:"id"`
}

type Category

type Category struct {
	ID    int64  `json:"id"`
	Title string `json:"title"`
	Owner string `json:"owner"`
}

type CreateAccountParams

type CreateAccountParams struct {
	Owner       string          `json:"owner"`
	Title       string          `json:"title"`
	Description string          `json:"description"`
	InitBalance decimal.Decimal `json:"init_balance"`
}

type CreateCategoryParams

type CreateCategoryParams struct {
	Title string `json:"title"`
	Owner string `json:"owner"`
}

type CreateLineParams

type CreateLineParams struct {
	Title       string          `json:"title"`
	Owner       string          `json:"owner"`
	AccountID   int64           `json:"account_id"`
	MonthID     int64           `json:"month_id"`
	CategoryID  int64           `json:"category_id"`
	YearID      int64           `json:"year_id"`
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
}

type CreateMonthParams

type CreateMonthParams struct {
	Title       string    `json:"title"`
	Owner       string    `json:"owner"`
	Description string    `json:"description"`
	YearID      int64     `json:"year_id"`
	StartDate   time.Time `json:"start_date"`
	EndDate     time.Time `json:"end_date"`
}

type CreateRecLineParams

type CreateRecLineParams struct {
	Title       string          `json:"title"`
	Owner       string          `json:"owner"`
	AccountID   int64           `json:"account_id"`
	CategoryID  int64           `json:"category_id"`
	Amount      decimal.Decimal `json:"amount"`
	Description string          `json:"description"`
	Recurrency  string          `json:"recurrency"`
	DueDate     time.Time       `json:"due_date"`
}

type CreateSessionParams

type CreateSessionParams struct {
	ID           uuid.UUID `json:"id"`
	Username     string    `json:"username"`
	RefreshToken string    `json:"refresh_token"`
	UserAgent    string    `json:"user_agent"`
	ClientIp     string    `json:"client_ip"`
	IsBlocked    bool      `json:"is_blocked"`
	ExpiresAt    time.Time `json:"expires_at"`
}

type CreateUserParams

type CreateUserParams struct {
	Username          string    `json:"username"`
	HashedPassword    string    `json:"hashed_password"`
	FullName          string    `json:"full_name"`
	Email             string    `json:"email"`
	Currency          string    `json:"currency"`
	PasswordChangedAt time.Time `json:"password_changed_at"`
}

type CreateYearParams

type CreateYearParams struct {
	Title       string    `json:"title"`
	Owner       string    `json:"owner"`
	Description string    `json:"description"`
	StartDate   time.Time `json:"start_date"`
	EndDate     time.Time `json:"end_date"`
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type DeleteLineTxParams

type DeleteLineTxParams struct {
	ID int64 `json:"id"`
}

DeleteLineTxParams contains all infos to create a new line

type DeleteLineTxResult

type DeleteLineTxResult struct {
	Balance util.Balance `json:"balance"`
}

AddLineTxResult contains all infos about the result of line creation

type GetExpliciteLineRow

type GetExpliciteLineRow struct {
	ID          int64           `json:"id"`
	Owner       string          `json:"owner"`
	Title       string          `json:"title"`
	Account     string          `json:"account"`
	Month       string          `json:"month"`
	Category    string          `json:"category"`
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
}

type Line

type Line struct {
	ID         int64  `json:"id"`
	Owner      string `json:"owner"`
	Title      string `json:"title"`
	AccountID  int64  `json:"account_id"`
	MonthID    int64  `json:"month_id"`
	YearID     int64  `json:"year_id"`
	CategoryID int64  `json:"category_id"`
	// can be negative or positive
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
}

type ListAccountsParams

type ListAccountsParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListCategoriesParams

type ListCategoriesParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListExplicitLinesParams

type ListExplicitLinesParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListExplicitLinesRow

type ListExplicitLinesRow struct {
	ID          int64           `json:"id"`
	Owner       string          `json:"owner"`
	Title       string          `json:"title"`
	Account     string          `json:"account"`
	Month       string          `json:"month"`
	Category    string          `json:"category"`
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
}

type ListLinesParams

type ListLinesParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListMonthsParams

type ListMonthsParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListRecLinesParams

type ListRecLinesParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type ListYearsParams

type ListYearsParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

type Month

type Month struct {
	ID           int64           `json:"id"`
	Owner        string          `json:"owner"`
	Title        string          `json:"title"`
	Description  string          `json:"description"`
	YearID       int64           `json:"year_id"`
	Balance      decimal.Decimal `json:"balance"`
	FinalBalance decimal.Decimal `json:"final_balance"`
	StartDate    time.Time       `json:"start_date"`
	EndDate      time.Time       `json:"end_date"`
}

type Querier

type Querier interface {
	AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error)
	AddMonthBalance(ctx context.Context, arg AddMonthBalanceParams) (Month, error)
	AddYearBalance(ctx context.Context, arg AddYearBalanceParams) (Year, error)
	CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)
	CreateCategory(ctx context.Context, arg CreateCategoryParams) (Category, error)
	CreateLine(ctx context.Context, arg CreateLineParams) (Line, error)
	CreateMonth(ctx context.Context, arg CreateMonthParams) (Month, error)
	CreateRecLine(ctx context.Context, arg CreateRecLineParams) (Recline, error)
	CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)
	CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
	CreateYear(ctx context.Context, arg CreateYearParams) (Year, error)
	DeleteAccount(ctx context.Context, id int64) error
	DeleteCategory(ctx context.Context, id int64) error
	DeleteLine(ctx context.Context, id int64) error
	DeleteMonth(ctx context.Context, id int64) error
	DeleteRecLine(ctx context.Context, id int64) error
	DeleteUser(ctx context.Context, username string) error
	DeleteYear(ctx context.Context, id int64) error
	GetAccount(ctx context.Context, id int64) (Account, error)
	GetAccountForUpdate(ctx context.Context, id int64) (Account, error)
	GetCategory(ctx context.Context, id int64) (Category, error)
	GetCategoryForUpdate(ctx context.Context, id int64) (Category, error)
	GetExpliciteLine(ctx context.Context, id int64) (GetExpliciteLineRow, error)
	GetLine(ctx context.Context, id int64) (Line, error)
	GetLineForUpdate(ctx context.Context, id int64) (Line, error)
	GetMonth(ctx context.Context, id int64) (Month, error)
	GetMonthForUpdate(ctx context.Context, id int64) (Month, error)
	GetRecLine(ctx context.Context, id int64) (Recline, error)
	GetRecLineForUpdate(ctx context.Context, id int64) (Recline, error)
	GetSession(ctx context.Context, id uuid.UUID) (Session, error)
	GetUser(ctx context.Context, username string) (User, error)
	GetYear(ctx context.Context, id int64) (Year, error)
	GetYearForUpdate(ctx context.Context, id int64) (Year, error)
	ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)
	ListCategories(ctx context.Context, arg ListCategoriesParams) ([]Category, error)
	ListExplicitLines(ctx context.Context, arg ListExplicitLinesParams) ([]ListExplicitLinesRow, error)
	ListLines(ctx context.Context, arg ListLinesParams) ([]Line, error)
	ListMonths(ctx context.Context, arg ListMonthsParams) ([]Month, error)
	ListRecLines(ctx context.Context, arg ListRecLinesParams) ([]Recline, error)
	ListYears(ctx context.Context, arg ListYearsParams) ([]Year, error)
	UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)
	UpdateLine(ctx context.Context, arg UpdateLineParams) (Line, error)
	UpdateMonth(ctx context.Context, arg UpdateMonthParams) (Month, error)
	UpdateRecLine(ctx context.Context, arg UpdateRecLineParams) (Recline, error)
	UpdateYear(ctx context.Context, arg UpdateYearParams) (Year, error)
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) AddAccountBalance

func (q *Queries) AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error)

func (*Queries) AddMonthBalance

func (q *Queries) AddMonthBalance(ctx context.Context, arg AddMonthBalanceParams) (Month, error)

func (*Queries) AddYearBalance

func (q *Queries) AddYearBalance(ctx context.Context, arg AddYearBalanceParams) (Year, error)

func (*Queries) CreateAccount

func (q *Queries) CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)

func (*Queries) CreateCategory

func (q *Queries) CreateCategory(ctx context.Context, arg CreateCategoryParams) (Category, error)

func (*Queries) CreateLine

func (q *Queries) CreateLine(ctx context.Context, arg CreateLineParams) (Line, error)

func (*Queries) CreateMonth

func (q *Queries) CreateMonth(ctx context.Context, arg CreateMonthParams) (Month, error)

func (*Queries) CreateRecLine

func (q *Queries) CreateRecLine(ctx context.Context, arg CreateRecLineParams) (Recline, error)

func (*Queries) CreateSession

func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)

func (*Queries) CreateYear

func (q *Queries) CreateYear(ctx context.Context, arg CreateYearParams) (Year, error)

func (*Queries) DeleteAccount

func (q *Queries) DeleteAccount(ctx context.Context, id int64) error

func (*Queries) DeleteCategory

func (q *Queries) DeleteCategory(ctx context.Context, id int64) error

func (*Queries) DeleteLine

func (q *Queries) DeleteLine(ctx context.Context, id int64) error

func (*Queries) DeleteMonth

func (q *Queries) DeleteMonth(ctx context.Context, id int64) error

func (*Queries) DeleteRecLine

func (q *Queries) DeleteRecLine(ctx context.Context, id int64) error

func (*Queries) DeleteUser

func (q *Queries) DeleteUser(ctx context.Context, username string) error

func (*Queries) DeleteYear

func (q *Queries) DeleteYear(ctx context.Context, id int64) error

func (*Queries) GetAccount

func (q *Queries) GetAccount(ctx context.Context, id int64) (Account, error)

func (*Queries) GetAccountForUpdate

func (q *Queries) GetAccountForUpdate(ctx context.Context, id int64) (Account, error)

func (*Queries) GetCategory

func (q *Queries) GetCategory(ctx context.Context, id int64) (Category, error)

func (*Queries) GetCategoryForUpdate

func (q *Queries) GetCategoryForUpdate(ctx context.Context, id int64) (Category, error)

func (*Queries) GetExpliciteLine

func (q *Queries) GetExpliciteLine(ctx context.Context, id int64) (GetExpliciteLineRow, error)

func (*Queries) GetLine

func (q *Queries) GetLine(ctx context.Context, id int64) (Line, error)

func (*Queries) GetLineForUpdate

func (q *Queries) GetLineForUpdate(ctx context.Context, id int64) (Line, error)

func (*Queries) GetMonth

func (q *Queries) GetMonth(ctx context.Context, id int64) (Month, error)

func (*Queries) GetMonthForUpdate

func (q *Queries) GetMonthForUpdate(ctx context.Context, id int64) (Month, error)

func (*Queries) GetRecLine

func (q *Queries) GetRecLine(ctx context.Context, id int64) (Recline, error)

func (*Queries) GetRecLineForUpdate

func (q *Queries) GetRecLineForUpdate(ctx context.Context, id int64) (Recline, error)

func (*Queries) GetSession

func (q *Queries) GetSession(ctx context.Context, id uuid.UUID) (Session, error)

func (*Queries) GetUser

func (q *Queries) GetUser(ctx context.Context, username string) (User, error)

func (*Queries) GetYear

func (q *Queries) GetYear(ctx context.Context, id int64) (Year, error)

func (*Queries) GetYearForUpdate

func (q *Queries) GetYearForUpdate(ctx context.Context, id int64) (Year, error)

func (*Queries) ListAccounts

func (q *Queries) ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)

func (*Queries) ListCategories

func (q *Queries) ListCategories(ctx context.Context, arg ListCategoriesParams) ([]Category, error)

func (*Queries) ListExplicitLines

func (q *Queries) ListExplicitLines(ctx context.Context, arg ListExplicitLinesParams) ([]ListExplicitLinesRow, error)

func (*Queries) ListLines

func (q *Queries) ListLines(ctx context.Context, arg ListLinesParams) ([]Line, error)

func (*Queries) ListMonths

func (q *Queries) ListMonths(ctx context.Context, arg ListMonthsParams) ([]Month, error)

func (*Queries) ListRecLines

func (q *Queries) ListRecLines(ctx context.Context, arg ListRecLinesParams) ([]Recline, error)

func (*Queries) ListYears

func (q *Queries) ListYears(ctx context.Context, arg ListYearsParams) ([]Year, error)

func (*Queries) UpdateAccount

func (q *Queries) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)

func (*Queries) UpdateLine

func (q *Queries) UpdateLine(ctx context.Context, arg UpdateLineParams) (Line, error)

func (*Queries) UpdateMonth

func (q *Queries) UpdateMonth(ctx context.Context, arg UpdateMonthParams) (Month, error)

func (*Queries) UpdateRecLine

func (q *Queries) UpdateRecLine(ctx context.Context, arg UpdateRecLineParams) (Recline, error)

func (*Queries) UpdateYear

func (q *Queries) UpdateYear(ctx context.Context, arg UpdateYearParams) (Year, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type Recline

type Recline struct {
	ID        int64  `json:"id"`
	Owner     string `json:"owner"`
	Title     string `json:"title"`
	AccountID int64  `json:"account_id"`
	// can be negative or position
	Amount      decimal.Decimal `json:"amount"`
	CategoryID  int64           `json:"category_id"`
	Description string          `json:"description"`
	Recurrency  string          `json:"recurrency"`
	DueDate     time.Time       `json:"due_date"`
}

type SQLStore

type SQLStore struct {
	*Queries
	// contains filtered or unexported fields
}

Store provides all function to execute db queries and transactions

func (*SQLStore) AddLineTx

func (store *SQLStore) AddLineTx(ctx context.Context, arg AddLineTxParams) (AddLineTxResult, error)

func (*SQLStore) DeleteLineTx

func (store *SQLStore) DeleteLineTx(ctx context.Context, arg DeleteLineTxParams) (DeleteLineTxResult, error)

func (*SQLStore) UpdateLineTx

func (store *SQLStore) UpdateLineTx(ctx context.Context, arg UpdateLineTxParams) (UpdateLineTxResult, error)

type Session

type Session struct {
	ID           uuid.UUID `json:"id"`
	Username     string    `json:"username"`
	RefreshToken string    `json:"refresh_token"`
	UserAgent    string    `json:"user_agent"`
	ClientIp     string    `json:"client_ip"`
	IsBlocked    bool      `json:"is_blocked"`
	ExpiresAt    time.Time `json:"expires_at"`
	CreateAt     time.Time `json:"create_at"`
}

type Store

type Store interface {
	Querier
	AddLineTx(ctx context.Context, arg AddLineTxParams) (AddLineTxResult, error)
	DeleteLineTx(ctx context.Context, arg DeleteLineTxParams) (DeleteLineTxResult, error)
	UpdateLineTx(ctx context.Context, arg UpdateLineTxParams) (UpdateLineTxResult, error)
}

Store provides all function to execute db queries and transactions

func NewStore

func NewStore(connPool *pgxpool.Pool) Store

NewStore creates a new store

type UpdateAccountParams

type UpdateAccountParams struct {
	ID          int64           `json:"id"`
	InitBalance decimal.Decimal `json:"init_balance"`
	Title       string          `json:"title"`
	Description string          `json:"description"`
}

type UpdateLineParams

type UpdateLineParams struct {
	ID          int64           `json:"id"`
	Title       string          `json:"title"`
	AccountID   int64           `json:"account_id"`
	MonthID     int64           `json:"month_id"`
	CategoryID  int64           `json:"category_id"`
	YearID      int64           `json:"year_id"`
	Amount      decimal.Decimal `json:"amount"`
	Checked     bool            `json:"checked"`
	Description string          `json:"description"`
	DueDate     time.Time       `json:"due_date"`
}

type UpdateLineTxParams

type UpdateLineTxParams struct {
	ID          int64               `json:"id"`
	Title       *string             `json:"title"`
	Owner       *string             `json:"owner"`
	AccountID   *int64              `json:"account_id"`
	MonthID     *int64              `json:"month_id"`
	YearID      *int64              `json:"year_id"`
	CategoryID  *int64              `json:"category_id"`
	Amount      decimal.NullDecimal `json:"amount"`
	Checked     *bool               `json:"checked"`
	Description *string             `json:"description"`
	DueDate     *time.Time          `json:"due_date"`
}

UpdateLineTxParams contains all infos to update a new line

type UpdateLineTxResult

type UpdateLineTxResult struct {
	Line    Line         `json:"line"`
	Balance util.Balance `json:"balance"`
}

UpdateLineTxResult contains all infos about the result of line creation

type UpdateMonthParams

type UpdateMonthParams struct {
	ID          int64     `json:"id"`
	Title       string    `json:"title"`
	Description string    `json:"description"`
	YearID      int64     `json:"year_id"`
	StartDate   time.Time `json:"start_date"`
	EndDate     time.Time `json:"end_date"`
}

type UpdateRecLineParams

type UpdateRecLineParams struct {
	ID          int64           `json:"id"`
	Title       string          `json:"title"`
	AccountID   int64           `json:"account_id"`
	CategoryID  int64           `json:"category_id"`
	Amount      decimal.Decimal `json:"amount"`
	Description string          `json:"description"`
	Recurrency  string          `json:"recurrency"`
	DueDate     time.Time       `json:"due_date"`
}

type UpdateYearParams

type UpdateYearParams struct {
	ID          int64     `json:"id"`
	Title       string    `json:"title"`
	Description string    `json:"description"`
	StartDate   time.Time `json:"start_date"`
	EndDate     time.Time `json:"end_date"`
}

type User

type User struct {
	Username          string    `json:"username"`
	HashedPassword    string    `json:"hashed_password"`
	FullName          string    `json:"full_name"`
	Email             string    `json:"email"`
	Currency          string    `json:"currency"`
	PasswordChangedAt time.Time `json:"password_changed_at"`
	CreateAt          time.Time `json:"create_at"`
}

type Year

type Year struct {
	ID           int64           `json:"id"`
	Owner        string          `json:"owner"`
	Title        string          `json:"title"`
	Description  string          `json:"description"`
	Balance      decimal.Decimal `json:"balance"`
	FinalBalance decimal.Decimal `json:"final_balance"`
	StartDate    time.Time       `json:"start_date"`
	EndDate      time.Time       `json:"end_date"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL