Add LastDigits and binding to currency for cards
This commit is contained in:
parent
05b5059477
commit
4522d4450f
13
db/card.go
13
db/card.go
|
@ -10,9 +10,12 @@ import (
|
|||
type Card struct {
|
||||
gorm.Model
|
||||
Name string
|
||||
LastDigits string
|
||||
Balance uint64
|
||||
HaveCreditLine bool
|
||||
CreditLine uint64
|
||||
CurrencyID uint
|
||||
Currency *Currency
|
||||
UserID uint
|
||||
User *User
|
||||
}
|
||||
|
@ -35,6 +38,7 @@ func (c *Card) SetUserID(id uint) {
|
|||
var (
|
||||
ERROR_CARD_NAME_EMPTY = errors.New("The 'Name' field for 'Card' cannot be empty")
|
||||
ERROR_CARD_NAME_NOT_UNIQUE = errors.New("The 'Name' field for 'Card' have to be unique for user")
|
||||
ERROR_CARD_CANT_FIND_CURR = errors.New("The 'CurrencyID' field for 'Card' is invalid")
|
||||
)
|
||||
|
||||
func (c *Card) BeforeSave(tx *gorm.DB) error {
|
||||
|
@ -50,6 +54,15 @@ func (c *Card) BeforeSave(tx *gorm.DB) error {
|
|||
if c.ID != dup.ID && dup.ID != 0 {
|
||||
return ERROR_CARD_NAME_NOT_UNIQUE
|
||||
}
|
||||
if c.CurrencyID != 0 {
|
||||
var currency Currency
|
||||
if err := tx.Find(¤cy, c.CurrencyID).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if currency.ID == 0 {
|
||||
return ERROR_CARD_CANT_FIND_CURR
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user