package dto

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

//MoneyIncentivesItem 金额激励分红列表
type MoneyIncentivesItem struct {
}

//业绩分红列表
type DividendsEstimateDividendItem struct {
	OrderGoodId               int     `json:"orderGoodId,string"`
	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"`                //区域名称
}

func ToDividendsEstimateDividendItem(param *allied_creation_cooperation.DataDividendsEstimateSearchDividend) []DividendsEstimateDividendItem {
	var listdata []DividendsEstimateDividendItem
	for _, v := range param.List {
		item := DividendsEstimateDividendItem{
			OrderGoodId:               v.OrderGoodId,
			CooperationContractNumber: v.CooperationContractNumber,
			CustomerName:              v.CustomerName,
			DividendsIncentivesAmount: v.OrderAmount,
			OrderOrReturnedOrderNum:   v.OrderNumber,
			OrderTime:                 v.OrderDate.UnixNano() / 1e6,
			OriginalOrderNum:          v.OriginalOrderNum,
			RegionName:                v.RegionName,
		}
		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"`
}

func ToDividendsEstimateMoneyItem(param *allied_creation_cooperation.DataDividendsEstimateSearchMoney) []DividendsEstimateMoneyItem {
	var 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.CooperationContractName,
		}
		item.Department.DepartmentId = v.Department.DepartmentId
		item.Department.DepartmentName = v.Department.DepartmentName
		item.CooperationContractSponsorName = v.CooperationContractName
		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 //阶段开始时间
}