sqlc

package
v1.0.0-alpha Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	ID         int64   `db:"id" json:"id"`
	UserID     int64   `db:"user_id" json:"user_id"`
	Name       string  `db:"name" json:"name"`
	Balance    float64 `db:"balance" json:"balance"`
	CurrencyID int64   `db:"currency_id" json:"currency_id"`
}

type AddAccountBalanceParams

type AddAccountBalanceParams struct {
	ID      int64   `db:"id" json:"id"`
	Balance float64 `db:"balance" json:"balance"`
}

type Card

type Card struct {
	Number    string `db:"number" json:"number"`
	AccountID int64  `db:"account_id" json:"account_id"`
}

type CreateAccountParams

type CreateAccountParams struct {
	UserID     int64  `db:"user_id" json:"user_id"`
	CurrencyID int64  `db:"currency_id" json:"currency_id"`
	Name       string `db:"name" json:"name"`
}

type CreateCardParams

type CreateCardParams struct {
	Number    string `db:"number" json:"number"`
	AccountID int64  `db:"account_id" json:"account_id"`
}

type CreateDepositTransactionParams

type CreateDepositTransactionParams struct {
	Amount               float64       `db:"amount" json:"amount"`
	DestinationAccountID sql.NullInt64 `db:"destination_account_id" json:"destination_account_id"`
}

type CreateTransferTransactionParams

type CreateTransferTransactionParams struct {
	Amount               float64       `db:"amount" json:"amount"`
	SourceAccountID      sql.NullInt64 `db:"source_account_id" json:"source_account_id"`
	DestinationAccountID sql.NullInt64 `db:"destination_account_id" json:"destination_account_id"`
}

type CreateWithdrawTransactionParams

type CreateWithdrawTransactionParams struct {
	Amount          float64       `db:"amount" json:"amount"`
	SourceAccountID sql.NullInt64 `db:"source_account_id" json:"source_account_id"`
}

type Currency

type Currency struct {
	ID   int64  `db:"id" json:"id"`
	Name string `db:"name" json:"name"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type GetAccountRow

type GetAccountRow struct {
	ID           int64   `db:"id" json:"id"`
	UserID       int64   `db:"user_id" json:"user_id"`
	Name         string  `db:"name" json:"name"`
	Balance      float64 `db:"balance" json:"balance"`
	CurrencyID   int64   `db:"currency_id" json:"currency_id"`
	CurrencyName string  `db:"currency_name" json:"currency_name"`
}

type GetAccountsRow

type GetAccountsRow struct {
	ID           int64   `db:"id" json:"id"`
	UserID       int64   `db:"user_id" json:"user_id"`
	Name         string  `db:"name" json:"name"`
	Balance      float64 `db:"balance" json:"balance"`
	CurrencyID   int64   `db:"currency_id" json:"currency_id"`
	CurrencyName string  `db:"currency_name" json:"currency_name"`
}

type GetCardAccountRow

type GetCardAccountRow struct {
	ID       int64   `db:"id" json:"id"`
	OwnerID  int64   `db:"owner_id" json:"owner_id"`
	Name     string  `db:"name" json:"name"`
	Balance  float64 `db:"balance" json:"balance"`
	Currency string  `db:"currency" json:"currency"`
}

type GetTransactionRow

type GetTransactionRow struct {
	ID              uuid.UUID       `db:"id" json:"id"`
	Type            TransactionType `db:"type" json:"type"`
	Amount          float64         `db:"amount" json:"amount"`
	FromAccountID   sql.NullInt64   `db:"from_account_id" json:"from_account_id"`
	FromAccountName sql.NullString  `db:"from_account_name" json:"from_account_name"`
	ToAccountID     sql.NullInt64   `db:"to_account_id" json:"to_account_id"`
	ToAccountName   sql.NullString  `db:"to_account_name" json:"to_account_name"`
	CreatedAt       time.Time       `db:"created_at" json:"created_at"`
	IsRolledBack    bool            `db:"is_rolled_back" json:"is_rolled_back"`
}

type GetTransactionsParams

type GetTransactionsParams struct {
	AccountID int64           `db:"account_id" json:"account_id"`
	MinAmount sql.NullFloat64 `db:"min_amount" json:"min_amount"`
	MaxAmount sql.NullFloat64 `db:"max_amount" json:"max_amount"`
	Offset    int32           `db:"offset" json:"offset"`
	Limit     int32           `db:"limit" json:"limit"`
}

type GetTransactionsRow

type GetTransactionsRow struct {
	ID              uuid.UUID       `db:"id" json:"id"`
	Amount          float64         `db:"amount" json:"amount"`
	Type            TransactionType `db:"type" json:"type"`
	FromAccountName sql.NullString  `db:"from_account_name" json:"from_account_name"`
	ToAccountName   sql.NullString  `db:"to_account_name" json:"to_account_name"`
	CreatedAt       time.Time       `db:"created_at" json:"created_at"`
	IsRolledBack    bool            `db:"is_rolled_back" json:"is_rolled_back"`
}

type GetUserCardsRow

type GetUserCardsRow struct {
	Number     string `db:"number" json:"number"`
	AccountID  int64  `db:"account_id" json:"account_id"`
	CurrencyID int64  `db:"currency_id" json:"currency_id"`
}

type NullTransactionType

type NullTransactionType struct {
	TransactionType TransactionType
	Valid           bool // Valid is true if TransactionType is not NULL
}

func (*NullTransactionType) Scan

func (ns *NullTransactionType) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullTransactionType) Value

func (ns NullTransactionType) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type Querier

type Querier interface {
	AddAccountBalance(ctx context.Context, db DBTX, arg AddAccountBalanceParams) error
	CreateAccount(ctx context.Context, db DBTX, arg CreateAccountParams) error
	CreateCard(ctx context.Context, db DBTX, arg CreateCardParams) error
	CreateDepositTransaction(ctx context.Context, db DBTX, arg CreateDepositTransactionParams) error
	CreateTransferTransaction(ctx context.Context, db DBTX, arg CreateTransferTransactionParams) error
	CreateUser(ctx context.Context, db DBTX, externalID uuid.UUID) error
	CreateWithdrawTransaction(ctx context.Context, db DBTX, arg CreateWithdrawTransactionParams) error
	DeleteAccount(ctx context.Context, db DBTX, id int64) error
	DeleteAccountCards(ctx context.Context, db DBTX, accountID int64) error
	DeleteCard(ctx context.Context, db DBTX, number string) error
	GetAccount(ctx context.Context, db DBTX, id int64) (GetAccountRow, error)
	GetAccountCards(ctx context.Context, db DBTX, accountID int64) ([]Card, error)
	GetAccounts(ctx context.Context, db DBTX, userID int64) ([]GetAccountsRow, error)
	GetCard(ctx context.Context, db DBTX, number string) (Card, error)
	GetCardAccount(ctx context.Context, db DBTX, number string) (GetCardAccountRow, error)
	GetCardBalance(ctx context.Context, db DBTX, number string) (float64, error)
	GetCurrencyByID(ctx context.Context, db DBTX, id int64) (Currency, error)
	GetCurrencyByName(ctx context.Context, db DBTX, name string) (int64, error)
	GetTransaction(ctx context.Context, db DBTX, id uuid.UUID) (GetTransactionRow, error)
	//   AND coalesce(sqlc.narg('transaction_type') IS NULL, t.type) = t.type
	GetTransactions(ctx context.Context, db DBTX, arg GetTransactionsParams) ([]GetTransactionsRow, error)
	GetUserByExternalID(ctx context.Context, db DBTX, externalID uuid.UUID) (int64, error)
	GetUserCards(ctx context.Context, db DBTX, userID int64) ([]GetUserCardsRow, error)
	SetTransactionRolledBack(ctx context.Context, db DBTX, id uuid.UUID) error
	SubAccountBalance(ctx context.Context, db DBTX, arg SubAccountBalanceParams) error
}

type Queries

type Queries struct {
}

func New

func New() *Queries

func (*Queries) AddAccountBalance

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

func (*Queries) CreateAccount

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

func (*Queries) CreateCard

func (q *Queries) CreateCard(ctx context.Context, db DBTX, arg CreateCardParams) error

func (*Queries) CreateDepositTransaction

func (q *Queries) CreateDepositTransaction(ctx context.Context, db DBTX, arg CreateDepositTransactionParams) error

func (*Queries) CreateTransferTransaction

func (q *Queries) CreateTransferTransaction(ctx context.Context, db DBTX, arg CreateTransferTransactionParams) error

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, db DBTX, externalID uuid.UUID) error

func (*Queries) CreateWithdrawTransaction

func (q *Queries) CreateWithdrawTransaction(ctx context.Context, db DBTX, arg CreateWithdrawTransactionParams) error

func (*Queries) DeleteAccount

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

func (*Queries) DeleteAccountCards

func (q *Queries) DeleteAccountCards(ctx context.Context, db DBTX, accountID int64) error

func (*Queries) DeleteCard

func (q *Queries) DeleteCard(ctx context.Context, db DBTX, number string) error

func (*Queries) GetAccount

func (q *Queries) GetAccount(ctx context.Context, db DBTX, id int64) (GetAccountRow, error)

func (*Queries) GetAccountCards

func (q *Queries) GetAccountCards(ctx context.Context, db DBTX, accountID int64) ([]Card, error)

func (*Queries) GetAccounts

func (q *Queries) GetAccounts(ctx context.Context, db DBTX, userID int64) ([]GetAccountsRow, error)

func (*Queries) GetCard

func (q *Queries) GetCard(ctx context.Context, db DBTX, number string) (Card, error)

func (*Queries) GetCardAccount

func (q *Queries) GetCardAccount(ctx context.Context, db DBTX, number string) (GetCardAccountRow, error)

func (*Queries) GetCardBalance

func (q *Queries) GetCardBalance(ctx context.Context, db DBTX, number string) (float64, error)

func (*Queries) GetCurrencyByID

func (q *Queries) GetCurrencyByID(ctx context.Context, db DBTX, id int64) (Currency, error)

func (*Queries) GetCurrencyByName

func (q *Queries) GetCurrencyByName(ctx context.Context, db DBTX, name string) (int64, error)

func (*Queries) GetTransaction

func (q *Queries) GetTransaction(ctx context.Context, db DBTX, id uuid.UUID) (GetTransactionRow, error)

func (*Queries) GetTransactions

func (q *Queries) GetTransactions(ctx context.Context, db DBTX, arg GetTransactionsParams) ([]GetTransactionsRow, error)

AND coalesce(sqlc.narg('transaction_type') IS NULL, t.type) = t.type

func (*Queries) GetUserByExternalID

func (q *Queries) GetUserByExternalID(ctx context.Context, db DBTX, externalID uuid.UUID) (int64, error)

func (*Queries) GetUserCards

func (q *Queries) GetUserCards(ctx context.Context, db DBTX, userID int64) ([]GetUserCardsRow, error)

func (*Queries) SetTransactionRolledBack

func (q *Queries) SetTransactionRolledBack(ctx context.Context, db DBTX, id uuid.UUID) error

func (*Queries) SubAccountBalance

func (q *Queries) SubAccountBalance(ctx context.Context, db DBTX, arg SubAccountBalanceParams) error

type SubAccountBalanceParams

type SubAccountBalanceParams struct {
	ID      int64   `db:"id" json:"id"`
	Balance float64 `db:"balance" json:"balance"`
}

type Transaction

type Transaction struct {
	ID                   uuid.UUID       `db:"id" json:"id"`
	Type                 TransactionType `db:"type" json:"type"`
	Amount               float64         `db:"amount" json:"amount"`
	SourceAccountID      sql.NullInt64   `db:"source_account_id" json:"source_account_id"`
	DestinationAccountID sql.NullInt64   `db:"destination_account_id" json:"destination_account_id"`
	CreatedAt            time.Time       `db:"created_at" json:"created_at"`
	IsRolledBack         bool            `db:"is_rolled_back" json:"is_rolled_back"`
}

type TransactionType

type TransactionType string
const (
	TransactionTypeDeposit    TransactionType = "deposit"
	TransactionTypeWithdrawal TransactionType = "withdrawal"
	TransactionTypeTransfer   TransactionType = "transfer"
)

func AllTransactionTypeValues

func AllTransactionTypeValues() []TransactionType

func (*TransactionType) Scan

func (e *TransactionType) Scan(src interface{}) error

func (TransactionType) Valid

func (e TransactionType) Valid() bool

type User

type User struct {
	ID         int64     `db:"id" json:"id"`
	ExternalID uuid.UUID `db:"external_id" json:"external_id"`
}

Jump to

Keyboard shortcuts

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