package com.yd.csf.api.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GenerateExpectedFortuneDto {

    /**
     * 来源 1-销售佣金 2-非销售佣金
     */
    private Integer source;

    /**
     * 保单发佣批次ID
     */
    private String batchBizId;

    /**
     * 保单发佣业务id
     */
    private String fortuneBizId;

    /**
     * 保单号
     */
    private String policyNo;

    /**
     * 产品业务id
     */
    private String productLaunchBizId;

    /**
     * 保险公司业务id
     */
    private String insuranceCompanyBizId;

    /**
     * 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
     */
    private Integer fortunePeriod;

    /**
     * 发佣总期数
     */
    private Integer fortuneTotalPeriod;

    /**
     * 转介人 (获得积分的业务员)
     */
    private String broker;

    /**
     * 转介人业务ID (获得积分的业务员)
     */
    private String brokerBizId;

    /**
     * 所属团队
     */
    private String team;

    /**
     * 所属团队业务ID
     */
    private String teamBizId;

    /**
     * 来佣名称
     */
    private String fortuneName;

    /**
     * 发佣类型
     */
    private String fortuneType;

    /**
     * 发佣金额
     */
    private BigDecimal amount;

    /**
     * 发佣币种
     */
    private String currency;

    /**
     * 佣金发放状态 0=待出账 1=可出账 2=已出账
     */
    private String status;

    /**
     * 预计发佣日期
     */
    private LocalDate payoutDate;

    /**
     * 基本法项目配置表唯一业务ID
     */
    private String ruleItemBizId;

    /**
     * 期交保费
     */
    private BigDecimal paymentPremium;

    /**
     * 介绍费占比
     */
    private String brokerRatio;

    /**
     * 奖金来源id（类型：转介人等，如果是转介人，这里就是这个奖来自这个转介人身上的）
     */
    private String amountSourceId;

    /**
     * 奖金来源名称（类型：转介人等）
     */
    private String amountSourceName;

    /**
     * 获得积分业务员绑定的基本法列表对应计算值
     */
    private List<AlgorithmResDto> algorithmResDtoList;
}
