package model

import (
	"pure/global"
	"time"
)

type MissionClaim struct { //领取任务记录
	MissionId        uint      `gorm:"type:int(11)" json:"mission_id"`             //任务id
	ClaimNo          string    `gorm:"unique;type:varchar(60);" json:"claim_no"`   //领取任务编号
	AchieveNum       int64     `gorm:"type:int(11)" json:"achieve_num"`            //已完成商品数量
	CreateBy         string    `gorm:"size:64" json:"create_by"`                   //创建人
	Status           int       `gorm:"type:tinyint(1);" json:"status"`             //状态 1:已领取待发货 2:已发货 3:已收货推广中
	ExpireAt         time.Time `json:"expire_at"`                                  //任务推广过期时间
	Finished         int       `gorm:"type:tinyint(1);" json:"finished"`           // 任务完成状态 0:未完成 1:已完成
	OrderNum         int64     `gorm:"type:int" json:"orderNum"`                   // 订单数
	OrderMoney       float64   `gorm:"type:decimal(10,2)" json:"orderMoney"`       // 订单金额
	RewardFinished   float64   `gorm:"type:decimal(10,2)" json:"rewardFinished"`   // 佣金结算
	RewardUnfinished float64   `gorm:"type:decimal(10,2)" json:"rewardUnfinished"` // 在途佣金
	Email            string    `gorm:"size:255" json:"email"`                      //发送邮箱
	SendFinished     int       `gorm:"type:tinyint(1);" json:"send_finished"`      //状态 1:已发送 2:发送失败
	global.MG_MODEL
}

type MissionClaimDetail struct {
	global.MG_MODEL
	ClaimNo      string                `json:"claim_no"`                                                        //领取任务编号
	MissionId    uint                  `json:"mission_id"`                                                      //任务id
	AchieveNum   int64                 `json:"achieve_num"`                                                     //已完成商品数量
	Status       int                   `json:"status"`                                                          //状态 1:已领取待发货 2:已发货 3:已收货推广中
	SpreadUrl    string                `json:"spread_url"`                                                      //推广链接
	TotalBonus   int64                 `json:"total_bonus"`                                                     //累计佣金
	StatusExcept string                `json:"status_except" gorm:"-"`                                          //状态描述
	ExpireAt     time.Time             `json:"expire_at"`                                                       //任务推广过期时间
	Email        string                `json:"email"`                                                           //发送邮箱
	Finished     int                   `json:"finished"`                                                        // 任务完成状态 0:未完成 1:已完成
	Order        MissionClaimOrderInfo `gorm:"ForeignKey:MissionClaimId;AssociationForeignKey:ID" json:"order"` //任务订单
	Mission      MissionDetail         `gorm:"ForeignKey:MissionId;AssociationForeignKey:ID" json:"mission"`    //关联任务
	Works        []MissionClaimWorks   `gorm:"ForeignKey:MissionClaimId;AssociationForeignKey:ID" json:"works"` //发布作品
	Video        MissionClaimVideo     `gorm:"ForeignKey:MissionClaimId;AssociationForeignKey:ID" json:"video"` //上传视频
}

func (MissionClaim) TableName() string {
	return "mission_claim"
}

func (MissionClaimDetail) TableName() string {
	return "mission_claim"
}