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/28 11:21
 */
@Data
@ApiModel
public class OutsourceProjectApprovalListRequest {
    @NotEmpty(message = "审批状态类型不能为空")
    @DictCodeField(message = "审批状态类型不合法", cacheName = MeterDictCode.APPROVAL_STATUS)
    @ApiModelProperty(value = "审批状态类型code", dataType = "String")
    private String approvalStatus;

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

    @ApiModelProperty(value = "分包项目编号", dataType = "String")
    private String projectNo;

    @ApiModelProperty(value = "分包项目名称", dataType = "String")
    private String projectName;

    @ApiModelProperty(value = "申请人名字", dataType = "String")
    private String applicantName;

    @ApiModelProperty(value = "分包方名称", dataType = "String")
    private String outsourcerName;

    @ApiModelProperty(value = "申请开始时间（项目申请审批列表请求参数）", dataType = "String")
    private String applicantStartTime;

    @ApiModelProperty(value = "申请结束时间（项目申请审批列表请求参数）", dataType = "String")
    private String applicantEndTime;

    @ApiModelProperty(value = "验收开始时间（项目验收审批列表请求参数）", dataType = "String")
    private String checkStartTime;

    @ApiModelProperty(value = "验收结束时间（项目验收审批列表请求参数）", dataType = "String")
    private String checkEndTime;

    @ApiModelProperty(value = "申请人/验收人", dataType = "String")
    private Long createUserId;

    //标识是申请or验收，代码中设置
    @ApiModelProperty(hidden = true)
    private Integer typeFlag;
    //代码中过渡申请人使用
    @ApiModelProperty(hidden = true)
    private Long applicantId;
    //代码中过渡验收人使用
    @ApiModelProperty(hidden = true)
    private Long checkerId;
}
