package backstage_model

import "github.com/gogf/gf/os/gtime"

// ResponseOrderInfo 请求和返回参数
type ResponseOrderInfo struct {
	OrderId                uint64      `orm:"order_id,primary"          json:"orderId"`                //
	TaskId                 int         `orm:"task_id"                   json:"taskId"`                 // 任务id
	TalentId               int         `orm:"talent_id"                 json:"talentId"`               // 达人id
	TaskName               string      `orm:"task_name"                 json:"taskName"`               // 达人id
	TalentPlatformInfoSnap string      `orm:"talent_platform_info_snap" json:"talentPlatformInfoSnap"` // 达人平台信息快照
	TalentPersonalInfoSnap string      `orm:"talent_personal_info_snap" json:"talentPersonalInfoSnap"` // 达人个人信息快照
	TalentPostAddrSnap     string      `orm:"talent_post_addr_snap"     json:"talentPostAddrSnap"`     // 收货地址快照
	TaskLevelId            int         `orm:"task_level_id"             json:"taskLevelId"`            // 报名选择的招募等级id(task_recruit_talent_level表中的id)
	ProdSpecificationId    int         `orm:"prod_specification_id"     json:"prodSpecificationId"`    // 商品规格列表的索引
	ProdNote               string      `orm:"prod_note"                 json:"prodNote"`               // 商品备注
	SignupStatus           int         `orm:"signup_status"             json:"signupStatus"`           // 报名状态 1等待反选 2等待玩家确认 3反选失败
	OrderStatus            int         `orm:"order_status"              json:"orderStatus"`            // 订单状态
	CreateDate             *gtime.Time `orm:"create_date"               json:"createDate"`             // 创建时间
	SelectDate             *gtime.Time `orm:"select_date"               json:"selectDate"`             // 反选时间
	PartnerWay             string      `orm:"partner_way"               json:"partnerWay"`             // 合作方式
	CompleteStatus         int         `orm:"complete_status"           json:"completeStatus"`         // 结束方式 1未结束 2正常结束 3反选失败 4达人取消
	CompleteDate           *gtime.Time `orm:"complete_date"             json:"completeDate"`           // 结束时间
}

// OrderFindAll  所有分页查询接收信息类型
type OrderFindAll struct {
	IndexPage int `v:"required#页码不能为空"`
	PageSize  int `v:"required#每页展示行数不能为空"`
	OrderFind *OrderFindByCondition
}

// OrderFindByCondition 订单列表根据条件查询的输入参数
type OrderFindByCondition struct {
	OrderId     string `orm:"order_id,primary"          json:"orderId"`     //
	TaskId      string `orm:"task_id"        json:"taskId"`                 // 任务id
	TalentId    string `orm:"talent_id"                 json:"talentId"`    // 达人id
	OrderStatus string `orm:"order_status"              json:"orderStatus"` // 订单状态
	TaskName    string `orm:"task_name"        json:"taskName"`             // 任务名称
}

// OrderDeliveryAddress 订单收获地址
type OrderDeliveryAddress struct {
	AddressId    int64  `orm:"address_id,primary" json:"addressId"`    //
	RegionCode   int    `orm:"region_code"        json:"regionCode"`   // 区域码，取info_region表中的self_code字段值
	DetailAddr   string `orm:"detail_addr"        json:"detailAddr"`   // 详细地址
	PhoneNumber  string `orm:"phone_number"       json:"phoneNumber"`  // 联系电话
	ReceiverName string `orm:"receiver_name"      json:"receiverName"` // 收货人名字
	DefaultTag   int    `orm:"default_tag"        json:"defaultTag"`   // 是否默认收货地址
	TalentId     int    `orm:"talent_id"          json:"talentId"`     // 达人id(talent_info表中的id)
}

// OrderTaskRecruitRequirements  请求查看招募要求
type OrderTaskRecruitRequirements struct {
	TrrId            int    `orm:"trr_id,primary"      json:"trrId"`            //
	TalentSkillsOn   string `orm:"talent_skills_on"    json:"talentSkillsOn"`   // 达人擅长领域要求,info_tallent_skilled_area表中的id列表，以逗号分隔
	InteractType     string `orm:"interact_type"       json:"interactType"`     // 指定互动形式的内容
	RegionCode       int    `orm:"region_code"         json:"regionCode"`       // 地域码,info_region表中的self_code值
	Gender           int    `orm:"gender"              json:"gender"`           // 限制可接任务的性别,0女 1男 2不限制
	OtherRequirement string `orm:"other_requirement"   json:"otherRequirement"` // 其他要求
	TaskBaseId       int    `orm:"task_base_id,unique" json:"taskBaseId"`       // 关联的task_base_info中的id
}

// OrderFindAddress 请求查询地址和招募信息的参数,接收orderId参数
type OrderFindAddress struct {
	TalentPostAddr string `orm:"talent_post_addr"          json:"talentPostAddr"` // 收货地址
	TaskId         int    `orm:"task_id"                   json:"taskId"`         // 任务id
	OrderId        int64  `orm:"order_id"          json:"orderId"`                //
	TaskLevelId    int    `orm:"task_level_id"             json:"taskLevelId"`    // 报名选择的招募等级id(task_recruit_talent_level表中的id)

}

// ResponseDeliveryInfo 发货信息
type ResponseDeliveryInfo struct {
	OrderDeliveryId  int         `orm:"order_delivery_id,primary" json:"orderDeliveryId"`  // 执行补充信息
	OrderId          int         `orm:"order_id"                  json:"orderId"`          // 订单id
	OrderAddressee   string      `orm:"order_addressee"           json:"orderAddressee"`   // 订单收件人
	OrderPhone       string      `orm:"order_phone"               json:"orderPhone"`       // 订单所填手机号
	OrderAddress     string      `orm:"order_address"             json:"orderAddress"`     // 订单地址
	RegionCode       string      `orm:"region_code"             json:"regionCode"`         // 订单地址
	LogisticsCompany string      `orm:"logistics_company"         json:"logisticsCompany"` // 物流公司
	TrackingNum      string      `orm:"tracking_num"         json:"trackingNum"`           // 物流单号
	CreatedAt        *gtime.Time `orm:"created_at"                json:"createdAt"`        // 创建时间(发货时间)
	ConfirmTime      *gtime.Time `orm:"confirm_time"              json:"confirmTime"`      // 确认收获时间
}

// ResponseDraftReview 初稿审核.
type ResponseDraftReview struct {
	OrderDraftId int         `orm:"order_draft_id,primary" json:"orderDraftId"` // 初稿审核id
	OrderId      int         `orm:"order_id"               json:"orderId"`      // 订单id
	OnlineLink   string      `orm:"online_link"            json:"onlineLink"`   // 在线链接
	AuditOpinion string      `orm:"audit_opinion"          json:"auditOpinion"` // 审核意见
	CreatedAt    *gtime.Time `orm:"created_at"             json:"createdAt"`    // 创建时间(发货时间)
	ConfirmTime  *gtime.Time `orm:"confirm_time"           json:"confirmTime"`  // 确认收获时间
}

// ResponseOrderArticleReview 作品审核
type ResponseOrderArticleReview struct {
	OrderArticleId int         `orm:"order_article_id,primary" json:"orderArticleId"` // 作品审核id
	OrderId        int64       `orm:"order_id"                 json:"orderId"`        // 订单id(order_info)id
	ArticleLink    string      `orm:"article_link"             json:"articleLink"`    // 作品链接
	AuditStatus    int         `orm:"audit_status"             json:"auditStatus"`    // 审核状态 1待审核 2审核通过 3审核驳回
	AuditOpinion   string      `orm:"audit_opinion"            json:"auditOpinion"`   // 作品审核意见
	CreatedAt      *gtime.Time `orm:"created_at"               json:"createdAt"`      // 创建时间(发货时间)
	ConfirmTime    *gtime.Time `orm:"confirm_time"             json:"confirmTime"`    // 确认收获时间
}

// ResponseLinkQuality 质检链接审核.
type ResponseLinkQuality struct {
	LinkQualityId int         `orm:"link_quality_id,primary" json:"linkQualityId"`  // 链接质检id
	PostLink      string      `orm:"post_link"               json:"postLink"`       // 发布链接
	PhotoLink     string      `orm:"photo_link"               json:"photoLink"`     // 发布链接
	AuditOpinion  string      `orm:"audit_opinion"             json:"auditOpinion"` // 审核意见
	CreatedAt     *gtime.Time `orm:"created_at"              json:"createdAt"`      // 创建时间(发货时间)
	ConfirmTime   *gtime.Time `orm:"confirm_time"            json:"confirmTime"`    // 确认收获时间
	OrderId       int64       `orm:"order_id"                json:"orderId"`        // 报名信息(order_info)id
}

// ResponseDataQuality 数据质检
type ResponseDataQuality struct {
	DataQualityId int         `orm:"data_quality_id,primary" json:"dataQualityId"`  // 数据质检id
	OrderId       int64       `orm:"order_id"                json:"orderId"`        // 报名信息(order_info)id
	DataLink      string      `orm:"data_link"               json:"dataLink"`       // 数据截图
	AuditOpinion  string      `orm:"audit_opinion"             json:"auditOpinion"` // 审核意见
	CreatedAt     *gtime.Time `orm:"created_at"              json:"createdAt"`      // 创建时间(发货时间)
	ConfirmTime   *gtime.Time `orm:"confirm_time"            json:"confirmTime"`    // 确认收获时间
	LikeNumber    int         `orm:"like_number"             json:"likeNumber"`     // 点赞数
	LittleEye     int         `orm:"little_eye"              json:"littleEye"`      // 小眼睛
	CommitNum     int         `orm:"commit_num"              json:"commitNum"`      // 评论数
	CollectNum    int         `orm:"collect_num"             json:"collectNum"`     // 收藏数
}

// OrderTaskBaseInfo 订单所需要的任务信息
type OrderTaskBaseInfo struct {
	TaskId         int         `orm:"task_id,primary"  json:"taskId"`         // 任务基础信息id
	TaskName       string      `orm:"task_name"        json:"taskName"`       // 任务名称
	TaskPlatform   int         `orm:"task_platform"    json:"taskPlatform"`   // 任务平台id,取third_platform_info表id
	TaskMode       int         `orm:"task_mode"        json:"taskMode"`       // 任务模式 1置换任务 2稿费任务 3折扣任务
	BusinessType   int         `orm:"business_type"    json:"businessType"`   // 业务类型 1实物 2虚拟 3线下
	ContentForm    int         `orm:"content_form"     json:"contentForm"`    // 内容形式 低4位为图片和视频类型，0001原创图片 0010指定图片 0100原创视频 1000指定视频 5~6位为文案类型 010000为原创文案 100000为指定文案 第7位为是否直播01000000为直播00000000为非直播
	OtherForm      int         `orm:"other_form"       json:"otherForm"`      // 其他形式 0不限 1仅单品 2仅合辑
	StartTime      *gtime.Time `orm:"start_time"       json:"startTime"`      // 作品开始时间
	EndTime        *gtime.Time `orm:"end_time"         json:"endTime"`        // 作品结束时间
	DeadlineTime   *gtime.Time `orm:"deadline_time"    json:"deadlineTime"`   // 任务报名截至日期
	TaskStatus     int         `orm:"task_status"      json:"taskStatus"`     // 任务状态(1创建中 2待上线 3已取消 4报名中 5报名执行中 6执行中 7已结案 8已终止)  待上线，已上线，已结案
	TaskCreateFlag uint        `orm:"task_create_flag" json:"taskCreateFlag"` // 创建任务时提交状态
	BrandId        int         `orm:"brand_id"         json:"brandId"`        // 品牌id
	ProductId      int         `orm:"product_id"       json:"productId"`      // 任务商品id
	CreatedAt      *gtime.Time `orm:"created_at"       json:"createdAt"`      // 创建时间
	OnlineTime     *gtime.Time `orm:"online_time"      json:"onlineTime"`     // 上线时间
}

// OrderProduct 订单商品所需信息.
type OrderProduct struct {
	ProductId            int         `orm:"product_id,primary"    json:"productId"`            //
	ProductName          string      `orm:"product_name"          json:"productName"`          // 商品名称
	ProductType          int         `orm:"product_type"          json:"productType"`          // 商品类型 1：实物 ，2：商品，3：线下
	ProductClassify      int         `orm:"product_classify"      json:"productClassify"`      // 商品分类id(info_product_classifyh表id)  1,美食。2，美妆日化。3，母婴。4，服装饰品。5，数码科技。6，健康养生。7，宠物用品。8，家装。9虚拟商品。10，其他
	ProductPrice         int64       `orm:"product_price"         json:"productPrice"`         // 商品价格
	ProductSpecification string      `orm:"product_specification" json:"productSpecification"` // 商品规格
	CreatedAt            *gtime.Time `orm:"created_at"            json:"createdAt"`            // 创建时间
	CreatPeople          string      `orm:"creat_people"          json:"creatPeople"`          // 创建人
	UpdatedAt            *gtime.Time `orm:"updated_at"            json:"updatedAt"`            // 更新时间
	UpdatePeople         string      `orm:"update_people"         json:"updatePeople"`         // 更新人
}

// OrderTaskRecruitTalentLevel 订单合作方式和稿费所需要的信息
type OrderTaskRecruitTalentLevel struct {
	TrtId           int   `orm:"trt_id,primary"    json:"trtId"`           //
	TaskBaseId      int   `orm:"task_base_id"      json:"taskBaseId"`      // 关联的task_base_info的id
	FansCountMin    int   `orm:"fans_count_min"    json:"fansCountMin"`    // 最小粉丝数
	FansCountMax    int   `orm:"fans_count_max"    json:"fansCountMax"`    // 最大粉丝数
	NeedTalentCount int   `orm:"need_talent_count" json:"needTalentCount"` // 任务需要的达人数量
	RewardRoyalties int64 `orm:"reward_royalties"  json:"rewardRoyalties"` // 稿费金额
}

// OrderProductPhoto 商品主图
type OrderProductPhoto struct {
	ProductPhotoId int         `orm:"product_photo_id,primary" json:"productPhotoId"` // 商品链接图主键id
	ProductId      int         `orm:"product_id"               json:"productId"`      // 商品表id
	Symbol         int         `orm:"symbol"                   json:"symbol"`         // 图片是主图还是详情图标志位 1主图 2详情图
	PhotoUrl       string      `orm:"photo_url"                json:"photoUrl"`       // 商品图片链接
	CreatedAt      *gtime.Time `orm:"created_at"               json:"createdAt"`      // 创建时间
	CreatPeople    string      `orm:"creat_people"             json:"creatPeople"`    // 创建人
	UpdatedAt      *gtime.Time `orm:"updated_at"               json:"updatedAt"`      // 更新时间
	UpdatePeople   string      `orm:"update_people"            json:"updatePeople"`   // 更新人
}

// ResponseOrderDraftFee 订单稿费明细
type ResponseOrderDraftFee struct {
	DraftFeeId            int         `orm:"draft_fee_id,primary"    json:"draftFeeId"`            // 稿费表id
	OrderId               int         `orm:"order_id"                json:"orderId"`               // 订单id
	ConfirmMoney          int         `orm:"confirm_money"           json:"confirmMoney"`          // 确认合作稿费
	RemainMoney           int         `orm:"remain_money"            json:"remainMoney"`           // 待结算金额
	ClosedMoney           int         `orm:"closed_money"            json:"closedMoney"`           // 已结算金额
	DetailMoney           int         `orm:"detail_money"            json:"detailMoney"`           // 扣款明细
	OperationalCutoffTime *gtime.Time `orm:"operational_cutoff_time" json:"operationalCutoffTime"` // 操作截止时间
	Deduction             int         `orm:"deduction"               json:"deduction"`             // 扣款金额
}

// AlterListStatus 修改订单状态所需要的
type AlterListStatus struct {
	OrderId     int    `orm:"order_id"                json:"orderId"` // 订单id
	AlterStatus bool   `json:"alterStatus"`                           // true和false。
	UserId      int    `json:"userId"`                                // 用户id
	UserName    string `json:"userName"`                              // 用户名
}

// AddDelivery 添加发货信息
type AddDelivery struct {
	OrderId          int         `orm:"order_id"                json:"orderId"`            // 订单id
	OrderAddressee   string      `orm:"order_addressee"           json:"orderAddressee"`   // 收货人
	OrderPhone       string      `orm:"order_phone"               json:"orderPhone"`       // 订单所填手机号
	OrderAddress     string      `orm:"order_address"             json:"orderAddress"`     // 订单地址
	LogisticsCompany string      `orm:"logistics_company"         json:"logisticsCompany"` // 物流公司
	TrackingNum      string      `orm:"tracking_num"              json:"trackingNum"`      // 物流单号
	DeliveryTime     *gtime.Time `orm:"delivery_time"             json:"deliveryTime"`     // 发货时间
	DeliveryStatus   int         `orm:"delivery_status"             json:"DeliveryStatus"` // 发货状态
	AlterListStatus  AlterListStatus
}

// AddDraftReview 添加初稿审核信息
type AddDraftReview struct {
	OrderId         int         `orm:"order_id"               json:"orderId"`      // 订单id
	AuditOpinion    string      `orm:"audit_opinion"          json:"auditOpinion"` // 审核意见
	ConfirmTime     *gtime.Time `orm:"confirm_time"           json:"confirmTime"`  // 初稿通过时间
	AlterListStatus AlterListStatus
}

// AddAuditReview 添加作品审核
type AddAuditReview struct {
	OrderId         int64       `orm:"order_id"               json:"orderId"`        // 报名信息(order_info)id
	AuditOpinion    string      `orm:"audit_opinion"            json:"auditOpinion"` // 作品审核意见
	ConfirmTime     *gtime.Time `orm:"confirm_time"           json:"confirmTime"`    // 作品通过时间
	AlterListStatus AlterListStatus
}

// AddDataQuality 数据质检
type AddDataQuality struct {
	OrderId         int64       `orm:"order_id"                json:"orderId"`        // 报名信息(order_info)id
	AuditOpinion    string      `orm:"audit_opinion"             json:"auditOpinion"` // 审核意见
	ConfirmTime     *gtime.Time `orm:"confirm_time"            json:"confirmTime"`    // 链接通过时间
	AlterListStatus AlterListStatus
}

// AddLinkQuality 链接质检
type AddLinkQuality struct {
	AuditOpinion    string      `orm:"audit_opinion"             json:"auditOpinion"` // 审核意见
	ConfirmTime     *gtime.Time `orm:"confirm_time"            json:"confirmTime"`    // 确认收获时间
	OrderId         int         `orm:"order_id"                json:"orderId"`        // 报名信息(order_info)id
	AlterListStatus AlterListStatus
}

// AcquiredOrderId 获取orderId
type AcquiredOrderId struct {
	OrderId     int `orm:"order_id"                json:"orderId"`       // 报名信息(order_info)id
	TaskLevelId int `orm:"task_level_id"             json:"taskLevelId"` // 报名选择的招募等级id(task_recruit_talent_level表中的id)
}

// ResponseBobocoinDeductRecord 扣款明细表
type ResponseBobocoinDeductRecord struct {
	RecordId       int64       `orm:"record_id,primary" json:"recordId"`             //
	TalentId       int         `orm:"talent_id"         json:"talentId"`             // 达人id
	BobocoinValue  int64       `orm:"bobocoin_value"    json:"bobocoinValue"`        // 冻结的卜卜币数量(真实数量 * 100)
	OrderId        int64       `orm:"order_id"          json:"orderId"`              // 订单id，如果是订单执行产生的冻结，则有值
	ProcedureStage int         `orm:"procedure_stage"   json:"procedureStage"`       // 订单的执行步骤，如果是订单产生的冻结，则有此值
	Reason         int         `orm:"reason"            json:"reason"`               // 冻结原因 1任务超期冻结 2拍单费用 3延期发放
	CreateAt       *gtime.Time `orm:"create_at"         json:"createAt"`             // 创建时间
	OperationStage string      `orm:"operation_stage"         json:"operationStage"` // 扣款步骤

}

// ResponseTaskRecruitTalentLevel 招募等级表信息
type ResponseTaskRecruitTalentLevel struct {
	TrtId           int   `orm:"trt_id,primary"    json:"trtId"`           //
	TaskBaseId      int   `orm:"task_base_id"      json:"taskBaseId"`      // 关联的task_base_info的id
	FansCountMin    int   `orm:"fans_count_min"    json:"fansCountMin"`    // 最小粉丝数
	FansCountMax    int   `orm:"fans_count_max"    json:"fansCountMax"`    // 最大粉丝数
	NeedTalentCount int   `orm:"need_talent_count" json:"needTalentCount"` // 任务需要的达人数量
	RewardRoyalties int64 `orm:"reward_royalties"  json:"rewardRoyalties"` // 稿费金额
}

// RequestBobocoinIncomeRecord 订单完成后需要在收入里面加一条信息
type RequestBobocoinIncomeRecord struct {
	RecordId       uint64      `orm:"record_id,primary" json:"recordId"`       // 记录id，主键，自增
	BobocoinValue  int64       `orm:"bobocoin_value"    json:"bobocoinValue"`  // 收入的卜卜币数量
	OrderId        int         `orm:"order_id"          json:"orderId"`        // 获得卜卜币的订单id
	RecruitLevelId int         `orm:"recruit_level_id"  json:"recruitLevelId"` // 获得卜卜币的任务的招募级别
	TalentId       int         `orm:"talent_id"         json:"talentId"`       // 达人id
	CompleteDate   *gtime.Time `orm:"complete_date"     json:"completeDate"`   // 添加时间(订单完成时间，需要和talent_draw_money_record表中的打款完成时间字段名一致，因为要以时间排序
}
