package dto

import (
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_cooperation"
)

//业绩分红列表
type DividendsEstimateDividendItem struct {
	OrderGoodId               int     `json:"orderGoodId,string"`
	OrderGoodName             string  `json:"orderGoodName"`             //货品名称
	CooperationContractNumber string  `json:"cooperationContractNumber"` //共创合约编号
	CustomerName              string  `json:"customerName"`              //客户名称
	DividendsIncentivesAmount float64 `json:"dividendsIncentivesAmount"` //业绩激励分红金额
	OrderOrReturnedOrderNum   string  `json:"orderOrReturnedOrderNum"`   //分红订单号或退货单号
	OrderTime                 int64   `json:"orderTime"`                 //订单/退货单日期
	OriginalOrderNum          string  `json:"originalOrderNum"`          //来源单号,源单号,订单号
	RegionName                string  `json:"regionName"`                //区域名称
	AuthFlag                  bool    `json:"authFlag"`
}

// func ToDividendsEstimateDividendItem(param *allied_creation_cooperation.DataDividendsEstimateSearchDividend) []DividendsEstimateDividendItem {
// 	listdata := []DividendsEstimateDividendItem{}
// 	for _, v := range param.List {
// 		item := DividendsEstimateDividendItem{
// 			OrderGoodId:               v.OrderGoodId,
// 			OrderGoodName:             v.OrderGoodName,
// 			CooperationContractNumber: v.CooperationContractNumber,
// 			CustomerName:              v.CustomerName,
// 			DividendsIncentivesAmount: v.OrderAmount,
// 			OrderOrReturnedOrderNum:   v.OrderNumber,

// 			OriginalOrderNum: v.OriginalOrderNum,
// 			RegionName:       v.RegionName,
// 		}
// 		item.OrderTime = v.OrderDate.UnixNano() / 1e6
// 		listdata = append(listdata, item)
// 	}

// 	return listdata
// }

//金额激励列表
type DividendsEstimateMoneyItem struct {
	CooperationContractId     int    `json:"cooperationContractId,string"` // 共创合约ID
	CooperationContractName   string `json:"cooperationContractName"`      //合约名称
	CooperationContractNumber string `json:"cooperationContractNumber"`    //合约编码
	CooperationModeName       string `json:"cooperationModeName"`
	CreatedAt                 int64  `json:"createdAt"` //合约建立时间
	Department                struct {
		DepartmentId   int    `json:"departmentId,string"`
		DepartmentName string `json:"departmentName"`
	} `json:"department"` //发起部门
	CooperationContractSponsorName string `json:"cooperationContractSponsorName"`
	StageAndUndertaker             []struct {
		Stage       int `json:"stage"` // 分红阶段
		Undertakers []struct {
			UndertakerId int `json:"undertakerId,string"` // 承接人id
			UserInfo     struct {
				UserName  string `json:"userName"`  // 共创人员姓名
				UserPhone string `json:"userPhone"` // 用户手机号
			} `json:"userInfo"`
		} `json:"undertakers"` // 共创承接人
	} `json:"stageAndUndertaker"`
}

func ToDividendsEstimateMoneyItem(param *allied_creation_cooperation.DataDividendsEstimateSearchMoney) []DividendsEstimateMoneyItem {
	listdata := []DividendsEstimateMoneyItem{}
	for _, v := range param.Grid.List {
		item := DividendsEstimateMoneyItem{
			CooperationContractId:     v.CooperationContractId,
			CooperationContractName:   v.CooperationContractName,
			CooperationContractNumber: v.CooperationContractNumber,
			CreatedAt:                 v.CreatedAt.UnixNano() / 1e6,
			CooperationModeName:       v.CooperationModeName,
			StageAndUndertaker:        v.StageAndUndertaker,
		}
		item.Department.DepartmentId = v.Department.DepartmentId
		item.Department.DepartmentName = v.Department.DepartmentName
		item.CooperationContractSponsorName = v.CooperationContractSponsorName
		listdata = append(listdata, item)
	}
	return listdata
}

//合约承接人
type ContractUndertaker struct {
	UserId                  int    `json:"userId,string,"`
	UsersName               string `json:"userName"`
	ContractIncentivesRules []int  `json:"contractIncentivesRules"`
}

// 金额激励规则
type MoneyIncentivesRule struct {
	MoneyIncentivesStage      int //阶段
	MoneyIncentivesStageStart int //阶段开始时间
}

//DividendsEstimateItem  分红预算单列表
type DividendsEstimateItem struct {
	DividendsEstimateId          int     `json:"dividendsEstimateId,string,"`  // 承接人分红预算记录ID
	DividendsAccountStatus       int     `json:"dividendsAccountStatus"`       // 分红结算状态
	DividendsAmount              float64 `json:"dividendsAmount"`              // 分红金额
	DividendsEstimateOrderNumber string  `json:"dividendsEstimateOrderNumber"` // 承接人分红预算单号
	DividendsEstimateTime        int64   `json:"dividendsEstimateTime"`        // 分红预算时间
	DividendsParticipateType     int     `json:"dividendsParticipateType"`     // 参与分红类型,1承接人,2推荐人,3关联业务员
	DividendsType                int     `json:"dividendsType"`                // 分红类型,1订单分红,2退货冲销,3金额激励
	OrderOrReturnedOrderNum      string  `json:"orderOrReturnedOrderNum"`      // 分红订单号或退货单号
	CooperationProjectNumber     string  `json:"cooperationProjectNumber"`     // 共创项目编号,
	CooperationContractNumber    string  `json:"cooperationContractNumber"`    // 共创项目合约编号,
	DividendsIncentivesStage     int     `json:"dividendsIncentivesStage"`     //分红阶段
	IsCanceled                   bool    `json:"isCanceled"`                   // 取消状态
	DividendsUser                struct {
		UsersId    int    `json:"usersId,string,"`    // 用户ID,
		UserBaseId int    `json:"userBaseId,string,"` // 用户基本id
		UserType   int    `json:"userType"`           // 用户类型
		UsersName  string `json:"usersName"`          // 用户姓名
		Phone      string `json:"phone"`              // 用户手机号
	} `json:"dividendsUser"` // 分红用户
	Org struct {
		OrgId   int    `json:"orgId,string,"` // 组织机构ID
		OrgName string `json:"orgName"`       // 组织名称
	} `json:"org"` // 数据所属组织机构
	AuthFlag  bool   `json:"authFlag"`
	UpChainID int    `json:"upChainId"`
	BlockHash string `json:"blockChainId"`
}