package cn.iocoder.yudao.module.crm.controller.admin.salesperformancesettlement.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 销售业绩结算记录新增/修改 Request VO")
@Data
public class SalesPerformanceSettlementSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23686")
    private Long id;

    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27486")
    @NotNull(message = "用户id不能为空")
    private Long userId;

    @Schema(description = "销售业绩目标申请ID", example = "14373")
    private Long salesPerformanceId;

    @Schema(description = "年", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "年不能为空")
    private String year;

    @Schema(description = "月", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "月不能为空")
    private String month;

    @Schema(description = "实际回款额")
    private BigDecimal actualPayment;

    @Schema(description = "渠道回款额")
    private BigDecimal channelPayment;

    @Schema(description = "实际销售额")
    private Integer actualSale;

    @Schema(description = "渠道销售额")
    private Integer channelSale;

    @Schema(description = "评分")
    private BigDecimal score;

    @Schema(description = "销售任务%")
    private BigDecimal saleTask;

    @Schema(description = "回款任务%")
    private BigDecimal paymentTask;

    @Schema(description = "评分任务%")
    private BigDecimal scoreTask;

    @Schema(description = "总分")
    private BigDecimal totalScore;

    @Schema(description = "核发比例")
    private BigDecimal proportionOfIssuance;

    @Schema(description = "是否确认 0否 1是")
    private Integer confirmFlag;

    @Schema(description = "是否可以确认 0否 1是")
    private Integer canConfirmFlag;

    @Schema(description = "评分状态 0待评分 1已评分")
    private Integer scoreStatus;

    @Schema(description = "结算状态 0待结算 1已结算（待评分） 2已结算")
    private Integer settlementStatus;
}
