21 lines
1.1 KiB
Go
21 lines
1.1 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
type Asset struct {
|
|
ID uint `json:"id" gorm:"primaryKey;index:idx_assets_user_status_id,priority:3"`
|
|
UserID uint `json:"user_id" gorm:"not null;index:idx_assets_user_status_category,priority:1;index:idx_assets_user_status_id,priority:1"`
|
|
Name string `json:"name" gorm:"size:128;not null"`
|
|
CategoryID uint `json:"category_id" gorm:"not null;index:idx_assets_user_status_category,priority:3"`
|
|
Category Category `json:"-"`
|
|
Quantity float64 `json:"quantity" gorm:"not null"`
|
|
UnitPrice float64 `json:"unit_price" gorm:"not null"`
|
|
TotalValue float64 `json:"total_value" gorm:"not null;index"`
|
|
Currency string `json:"currency" gorm:"size:16;not null"`
|
|
ExpiryDate *time.Time `json:"expiry_date,omitempty" gorm:"index"`
|
|
Note string `json:"note" gorm:"type:text"`
|
|
Status string `json:"status" gorm:"size:16;not null;default:active;check:status IN ('active','inactive');index:idx_assets_user_status_category,priority:2;index:idx_assets_user_status_id,priority:2"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|