-
Notifications
You must be signed in to change notification settings - Fork 0
/
asset.go
54 lines (45 loc) · 1.72 KB
/
asset.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package models
import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// Asset model
type Asset struct {
ID primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
Created time.Time `bson:"created,omitempty" json:"created,omitempty"`
Modified time.Time `bson:"modified,omitempty" json:"modified,omitempty"`
Status string `bson:"status,omitempty" json:"status,omitempty"`
AssetType string `bson:"assettype,omitempty" json:"assettype,omitempty"`
IssuerAccount *Account `bson:"issueraccount,omitempty" json:"issueraccount,omitempty"`
DistributorAccount *Account `bson:"distributoraccount,omitempty" json:"distributoraccount,omitempty"`
Name string `validate:"required" bson:"name,omitempty" json:"name,omitempty"`
Abbr string `valid:"required,min=3,max=12" bson:"abbr,omitempty" json:"abbr,omitempty"`
Public string `valid:"required,min=56,max=56" bson:"public,omitempty" json:"public,omitempty"`
Note string `bson:"note,omitempty" json:"note,omitempty"`
}
type AssetTypeId int
const (
KPI AssetTypeId = iota
Unit
Commercial
NFT
OtherAsset
)
type AssetType struct {
AssetTypeId `json:"assettypeid"`
Name string `json:"name"`
Value string `json:"value"`
}
var AssetTypes = []AssetType{
{KPI, "kpi", "kpi"},
{Unit, "unit", "unit"},
{Commercial, "commercial", "commercial"},
{NFT, "nft", "nft"},
{OtherAsset, "otherasset", "otherasset"},
}
func (e *AssetType) GetAssetType() string {
return e.Name
}
func (c AssetTypeId) GetAssetType() string {
return AssetTypes[int(c)].Name
}