package com.casic.missiles.dto.business.outsource;

import com.casic.missiles.annotation.DictCodeField;
import com.casic.missiles.constants.MeterDictCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

/**
 * @Description: 分包方资格审批列表请求实体
 * @Author: wangpeng
 * @Date: 2023/3/24 9:24
 */
@Data
@ApiModel
public class OutsourcerApprovalListRequest {
    /**
     * 审批状态类型，对应ApprovalStatusEnum
     */
    @NotEmpty(message = "审批状态类型不能为空")
    @DictCodeField(message = "审批状态类型不合法", cacheName = MeterDictCode.APPROVAL_STATUS)
    @ApiModelProperty(value = "审批状态类型code", dataType = "String")
    private String approvalStatus;

    /**
     * 表单id
     */
    @NotBlank(message = "表单id不能为空")
    @ApiModelProperty(value = "表单id（流程定义对应的表单id，等价于业务id）", dataType = "String")
    private String formId;

    /**
     * 分包方编号
     */
    @ApiModelProperty(value = "分包方编号", dataType = "String")
    private String outsourcerNo;

    /**
     * 分包方公司名字
     */
    @ApiModelProperty(value = "分包方公司名字", dataType = "String")
    private String outsourcerName;

    /**
     * 业务规模-字典
     */
    @DictCodeField(message = "业务规模不合法", cacheName = MeterDictCode.BUSINESS_SCALE)
    @ApiModelProperty(value = "业务规模-字典code", dataType = "String")
    private String businessSize;

    /**
     * 履约评级-字典
     */
    @DictCodeField(message = "履约评级不合法", cacheName = MeterDictCode.GRADE)
    @ApiModelProperty(value = "履约评级-字典code", dataType = "String")
    private String grade;

    /**
     * 整体评价-字典
     */
    @DictCodeField(message = "整体评价不合法", cacheName = MeterDictCode.EVALUATION)
    @ApiModelProperty(value = "整体评价-字典code", dataType = "String")
    private String evaluation;

    @ApiModelProperty(hidden = true)
    private Long createUserId;

}
