/
token.go
36 lines (30 loc) · 1.19 KB
/
token.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package types
import (
"time"
"github.com/ethereum/go-ethereum/common"
validation "github.com/go-ozzo/ozzo-validation"
"labix.org/v2/mgo/bson"
)
type Token struct {
ID bson.ObjectId `json:"id" bson:"_id"`
Name string `json:"name" bson:"name"`
Symbol string `json:"symbol" bson:"symbol"`
Image Image `json:"image" bson:"image"`
ContractAddress string `json:"contractAddress" bson:"contractAddress"`
Decimal int `json:"decimal" bson:"decimal"`
Active bool `json:"active" bson:"active"`
CreatedAt time.Time `json:"createdAt" bson:"createdAt"`
UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"`
}
type Image struct {
URL string `json:"url" bson:"url"`
Meta map[string]interface{} `json:"meta" bson:"meta"`
}
func (t Token) Validate() error {
return validation.ValidateStruct(&t,
validation.Field(&t.Name, validation.Required),
validation.Field(&t.Symbol, validation.Required),
validation.Field(&t.ContractAddress, validation.Required, validation.NewStringRule(common.IsHexAddress, "Invalid Address")),
validation.Field(&t.Decimal, validation.Required),
)
}