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

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

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

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 销售业绩结算记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SalesPerformanceSettlementPageReqVO extends PageParam {

    @Schema(description = "用户id", example = "27486")
    private Long userId;

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

    @Schema(description = "年")
    private String year;

    @Schema(description = "月")
    private String month;

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

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

    @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;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "27486")
    private String nickname;

    @Schema(description = "用户ids", example = "27486")
    private List<Long> userIds;

}
