package gorm_model

import (
	"time"
)

type YoungeeTaskInfo struct {
	TaskID                 string    `gorm:"column:task_id;primary_key;AUTO_INCREMENT"`   // 任务id
	ProjectID              string    `gorm:"column:project_id;NOT NULL"`                  // 项目id
	TalentID               string    `gorm:"column:talent_id;NOT NULL"`                   // 达人id
	AccountID              int       `gorm:"column:account_id;NOT NULL"`                  // 账号id
	TalentPlatformInfoSnap string    `gorm:"column:talent_platform_info_snap;NOT NULL"`   // 达人平台信息快照
	TalentPersonalInfoSnap string    `gorm:"column:talent_personal_info_snap;NOT NULL"`   // 达人个人信息快照
	TalentPostAddrSnap     string    `gorm:"column:talent_post_addr_snap;NOT NULL"`       // 收货地址快照
	StrategyID             int       `gorm:"column:strategy_id"`                          // 报名选择的招募策略id
	TaskReward             float64   `gorm:"column:task_reward;NOT NULL"`                 // 达人报酬
	SettleAmount           float64   `gorm:"column:settle_amount;NOT NULL"`               // 达人实际所得（扣除违约扣款）
	AllPayment             float64   `gorm:"column:all_payment;NOT NULL"`                 // 企业支付
	RealPayment            float64   `gorm:"column:real_payment;NOT NULL"`                // 企业实际支付（扣除违约扣款）
	ErrBreakRate           int       `gorm:"column:err_break_rate;default:0;NOT NULL"`    // 未上传类型违约扣款比例，百分之
	ScriptBreakRate        int       `gorm:"column:script_break_rate;default:0;NOT NULL"` // 脚本上传超时违约扣款比例，百分之
	SketchBreakRate        int       `gorm:"column:sketch_break_rate;default:0;NOT NULL"` // 初稿上传超时违约扣款比例，百分之
	LinkBreakRate          int       `gorm:"column:link_break_rate;default:0;NOT NULL"`   // 链接上传超时违约扣款比例，百分之
	DataBreakRate          int       `gorm:"column:data_break_rate;default:0;NOT NULL"`   // 数据上传超时违约扣款比例，百分之
	FeeForm                int       `gorm:"column:fee_form;NOT NULL"`                    // 稿费形式，1,2,3分别代表产品置换、固定稿费、自报价
	ServiceCharge          float64   `gorm:"column:service_charge"`                       // 服务费
	ServiceRate            int       `gorm:"column:service_rate"`                         // 服务费率，千分之
	TaskStatus             int       `gorm:"column:task_status;default:1;NOT NULL"`       // 任务状态 1待选 2已选 3落选
	TaskStage              int       `gorm:"column:task_stage;NOT NULL"`                  // 任务阶段，详情见info_task_stage表
	CreateDate             time.Time `gorm:"column:create_date;NOT NULL"`                 // 创建时间
	SelectDate             time.Time `gorm:"column:select_date"`                          // 反选时间
	DeliveryDate           time.Time `gorm:"column:delivery_date"`                        // 发货时间
	CompleteStatus         int       `gorm:"column:complete_status;default:1;NOT NULL"`   // 结束方式 1未结束 2正常结束 3反选失败 4被解约
	CompleteDate           time.Time `gorm:"column:complete_date"`                        // 结束时间
	LogisticsStatus        int       `gorm:"column:logistics_status;default:1"`           // 发货状态 1 待发货 2已发货 3 已签收
	ScriptStatus           uint      `gorm:"column:script_status;default:1"`              // 脚本上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
	SketchStatus           uint      `gorm:"column:sketch_status;default:1"`              // 初稿上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
	UpdateAt               time.Time `gorm:"column:update_at"`                            // 更新时间
	LinkStatus             uint      `gorm:"column:link_status;default:1"`                // 链接上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
	DataStatus             uint      `gorm:"column:data_status;default:1"`                // 数据上传状态 1-5分别代表待添加、已添加、待修改、已修改、已通过
	CurDefaultType         int       `gorm:"column:cur_default_type"`                     // 任务当前处于的违约类型 0-8分别表示未违约、脚本超时违约、脚本未上传违约、初稿超时违约、初稿未上传违约、链接超时违约、链接未上传违约、数据超时违约、数据未上传违约
	CurBreakAt             time.Time `gorm:"column:cur_break_at"`                         // 当前阶段结束时间
	WithdrawStatus         int       `gorm:"column:withdraw_status;default:1"`            // 提现状态，1-4分别代表不可提现、可提现、提现中、已提现
	SettleStatus           int       `gorm:"column:settle_status;default:1"`              // 结算状态，1、2分别表示待结算、已结算
	SupplierId             int       `gorm:"column:supplier_id;default:0"`                // 服务商ID
	SupplierStatus         int       `gorm:"column:supplier_status;default:0"`            // 服务商任务状态 0表示达人来源非服务商 1待选 2已选 3落选
	DraftFee               float64   `gorm:"column:draft_fee"`                            // 达人稿费
	SignedTime             time.Time `gorm:"column:signed_time"`                          // 签收时间
	FansNum                int       `gorm:"column:fans_num"`                             // 粉丝数
	VoteAvg                int       `gorm:"column:vote_avg"`                             // 平均点赞数
	CommitAvg              int       `gorm:"column:commit_avg"`                           // 平均评论数
	BOperator              string    `gorm:"column:b_operator"`                           // 商家确定达人操作人ID
	BOperatorType          int       `gorm:"column:b_operator_type"`                      // 商家操作人类型，1商家用户，2商家子账号，3管理后台
	SOperator              int       `gorm:"column:s_operator"`                           // 服务商提报达人操作人ID
	SOperatorType          int       `gorm:"column:s_operator_type"`                      // 服务商操作人类型，1服务商主账号，2服务商子账号，3管理后台
	SProjectId             int       `gorm:"column:s_project_id"`                         // 服务商种草任务ID
	SupportFee             float64   `gorm:"column:support_fee"`                          // 提报价格
	TerminateTime          time.Time `gorm:"column:terminate_time"`                       // 终止合作时间
	TerminateReason        string    `gorm:"column:terminate_reason"`                     // 终止合作理由
	CancelTime             time.Time `gorm:"column:cancel_time"`                          // 解约时间
	CancelReason           string    `gorm:"column:cancel_reason"`                        // 解约理由
	SketchMissingTime      time.Time `gorm:"column:sketch_missing_time"`                  // 未传初稿违约时间
}

func (m *YoungeeTaskInfo) TableName() string {
	return "youngee_task_info"
}
