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"`                //区域名称
}

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,
			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 {
	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 //阶段开始时间
}

//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"` // 数据所属组织机构
}