model

package
v0.0.0-...-9306fc6 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 4 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"` //Base de dados principais de todos os models; "herança"
	OwnerName string             `gorm:"column:owner_name;type:varchar(255);not null" valid:"notnull"`
	Bank      *Bank              `valid:"-"`
	BankId    string             `gorm:"column:bank_id;type:uuid;not null" valid:"-"`
	Number    string             `json:"number" gorm:"type:varchar(20)" valid:"notnull"`
	PixKeys   []*PixKey          `gorm:"ForeignKey:AccountID" valid:"-"`
}

func NewAccount

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

NewAccount Função que cria nova conta, podendo retornar um erro ou a conta em si criada

type Bank

type Bank struct {
	Base     `valid:"required"` //Base de dados principais de todos os models; "herança"
	Code     string             `json:"code" gorm:"type:varchar(20)" valid:"notnull"`
	Name     string             `json:"name"  gorm:"type:varchar(255)" valid:"notnull"`
	Accounts []*Account         `gorm:"ForeignKey:BankId" valid:"-"`
}

Estrutura de dados do banco

func NewBank

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

NewBank Função de criação de um novo banco

type Base

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

Base Estrutura básica de dados de todos os models

type PixKey

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

func NewPixKey

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

NewPixKey Função que cria nova conta, podendo retornar um erro ou a conta em si criada

type PixKeyRepositoryInterface

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

PixKeyRepository - Interface para que qualquer um possa comunicar com o banco de dados

type Transaction

type Transaction struct {
	Base              `valid:"required"`
	AccountFrom       *Account `valid:"-"`
	AccountFromID     string   `gorm:"column:account_from_id;type:uuid;not null" valid:"notnull"`
	Amount            float64  `json:"amount" gorm:"type:float" valid:"notnull"`
	PixKeyTo          *PixKey  `valid:"-"`
	PixKeyIdTo        string   `gorm:"column:pix_key_id_to;type:uuid;not null" valid:"notnull"`
	Status            string   `json:"status" gorm:"type:varchar(20)" valid:"notnull"`
	Description       string   `json:"description" gorm:"type:varchar(255)" valid:"notnull"`
	CancelDescription string   `json:"cancel_description" gorm:"type:varchar(255)" valid:"notnull"`
}

func NewTransaction

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

NewTransaction - Função que cria nova conta, podendo retornar um erro ou a conta em si criada

func (*Transaction) Cancel

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

Cancel - Cancela a transação

func (*Transaction) Complete

func (transaction *Transaction) Complete() error

Complete - Completa a transação

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)
}

TransactionRepository - Interface para que qualquer um possa comunicar com o banco de dados

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