model

package
v0.0.0-...-ae4f42d Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TransactionPending   string = "pending"
	TransactionCompleted string = "completed"
	TransactionError     string = "error"
	TransactionConfirmed string = "confirmed"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	Base      `valid:"required"`
	OwnerName string    `json:"owner-name" valid:"notnull"`
	Bank      *Bank     `valid:"-"`
	Number    string    `json:"number" valid:"notnull"`
	PixKeys   []*PixKey `valid:"notnull"`
}

func NewAccount

func NewAccount(bank *Bank, number string, ownerName string) (*Account, error)

type Bank

type Bank struct {
	Base     `valid:"required"`
	Code     string     `json:"code" valid:"notnull"`
	Name     string     `json:"name" valid:"notnull"`
	Accounts []*Account `valid:"-"`
}

func Newbank

func Newbank(code string, name string) (*Bank, error)

type Base

type Base struct {
	ID        string    `json:"id" valid:"uuid`
	CreatedAt time.Time `json:"create_at" valid:"-"`
	UpdatedAt time.Time `json:"updated_at" valid:"-"`
}

type PixKey

type PixKey struct {
	Base      `valid:"required"`
	Kind      string   `json:"kind" valid:"notnull"`
	Key       string   `json:"key" valid:"notnull"`
	AccountID string   `json:"account_id" valid:"notnull"`
	Account   *Account `valid:"-"`
	Status    string   `json:"status" valid:"notnull"`
}

func NewPixKey

func NewPixKey(kind string, account *Account, key string) (*PixKey, error)

type PixKeyRepositoryInterface

type PixKeyRepositoryInterface interface {
	RegisterKey(pixKey *PixKey) (*PixKey, error)
	FindKeyByKind(key string, kind string) (*PixKey, error)
	AddBank(bank *Bank) error
	AddAccount(account *Account) error
	FindAccount(id string) (*Account, error)
}

type Transaction

type Transaction struct {
	Base              `valid:"required"`
	AccountFrom       *Account `valid:"-"`
	Amount            float64  `json:"amount" valid:"notnull"`
	PixKeyTo          *PixKey  `valid:"-"`
	Status            string   `json:"status" valid:"notnull"`
	Description       string   `json:"description" valid:"notnull"`
	CancelDescription string   `json:"cancel_description" valid:"notnull"`
}

func NewTransaction

func NewTransaction(accountFrom *Account, amount float64, pixKeyTo *PixKey, description string) (*Transaction, error)

func (*Transaction) Cancel

func (transaction *Transaction) Cancel(description string) error

func (*Transaction) Complete

func (transaction *Transaction) Complete() error

func (*Transaction) Confirm

func (transaction *Transaction) Confirm() error

type TransactionRepositoryInterface

type TransactionRepositoryInterface interface {
	Register(transaction *Transaction) error
	Save(transaction *Transaction) error
	Find(id string) (*Transaction, error)
}

type Transactions

type Transactions struct {
	Transaction []Transaction
}

Jump to

Keyboard shortcuts

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