// 自动生成模板TwiActList
package twi

import (
	"courseSign/server/global"

	"time"
)

// TwiActList 结构体
type TwiActList struct {
      global.GVA_MODEL
      ActTitle  string `json:"actTitle" form:"actTitle" gorm:"column:act_title;not null;comment:标题;size:128;"` // 活动标题
      StartTime  *time.Time `json:"startTime" form:"startTime" gorm:"column:start_time;comment:开始时间;"`        // 活动开始时间
      EndTime  *time.Time `json:"endTime" form:"endTime" gorm:"column:end_time;comment:结束时间;"`                // 活动结束时间
      Type  *int `json:"type" form:"type" gorm:"column:type;comment:分配方式;"`                                   // 分配方式 0 先到先得 1 随机分配
      ProjectId  *int `json:"projectId" form:"projectId" gorm:"column:project_id;comment:项目方;"`                // 项目方编号
      Chain  string `json:"chain" form:"chain" gorm:"column:chain;comment:主链;size:8;"`                          // 主链名称
      RewardType  *int `json:"rewardType" form:"rewardType" gorm:"column:reward_type;not null;comment:奖励类型;"`   // 奖励类型 0 代币 1 积分 2 nft
      RewardCoin  string `json:"rewardCoin" form:"rewardCoin" gorm:"column:reward_coin;not null;comment:币种;size:8;"`  // 代币标志
      RewardAmount  *float64 `json:"rewardAmount" form:"rewardAmount" gorm:"column:reward_amount;type:DECIMAL(10,2);not null;comment:奖励总数;"` // 奖励总数
      RewardAmountRemain  *float64 `json:"rewardAmountRemain" form:"rewardAmountRemain" gorm:"column:reward_amount_remain;type:DECIMAL(10,2);UNSIGNED;not null;comment:奖励总数剩余;"` // 奖励剩余
      RewardPersonRemain  *int `json:"rewardPersonRemain" form:"rewardPersonRemain" gorm:"column:reward_person_remain;UNSIGNED;not null;comment:奖励人数剩余;"` // 奖励人数剩余
      RewardPerson  *int `json:"rewardPerson" form:"rewardPerson" gorm:"column:reward_person;not null;comment:人数;"`   // 奖励人数
      Black  string `json:"black" form:"black" gorm:"column:black;comment:;type:text;"` // 黑名单集合
      White  string `json:"white" form:"white" gorm:"column:white;comment:;type:text;"` // 白名单集合
      ShowPicture  string `json:"showPicture" form:"showPicture" gorm:"column:show_picture;comment:展示图;size:128;"` // 展示图
      Status *bool `json:"status" form:"status" gorm:"column:status;comment:0下线 1 上线;default:0;"` // 状态 0 下线 1 上限
      Desc string `json:"desc" form:"desc" gorm:"column:desc;comment:简介;type:text;"` // 简介
      Count int `json:"count" form:"count" gorm:"-"`
}

type TwiActInfo struct {
      Activity TwiActList
      Project TwiProject
      TemplateList []TwiActTemplate
      Persons []UserSimpleInfo
}

// TableName TwiActList 表名
func (TwiActList) TableName() string {
  return "twi_act_list"
}

const (
      ActionStatusNormal = iota     // 下线
      ActionStatusOnline            // 上线
)

const (
      ActionRewardSendTypeNormal = iota    // 完成后先到先得
      ActionRewardSendTypeRand            // 完成后随机分配
)

const (
      ActionRewardTypeCoins = iota  // 代币
      ActionRewardTypePoints        // 积分
      ActionRewardTypeNFT           // nft
)