package com.zcloud.primeport.dto;

import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;

/**
* web-client
* @Author dearLin
* @Date 2026-03-19 13:59:15
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ClosedAreaPersonApplyAddCmd extends Command {
    @ApiModelProperty(value = "申请归属1股份2分公司3相关方4临时人员", name = "personBelongType", required = true)
    @NotNull(message = "申请归属1股份2分公司3相关方4临时人员不能为空")
    private Integer personBelongType;
    private String levelOneMkmjName;
    private String levelTwoMkmjName;
    @ApiModelProperty(value = "一级口门id", name = "levelOneMkmjId", required = true)
    private Long levelOneMkmjId;

    @ApiModelProperty(value = "二级口门id(封闭区域口门)", name = "levelTwoMkmjId", required = true)
    private Long levelTwoMkmjId;
    
    @ApiModelProperty(value = "封闭区域id", name = "closedAreaId", required = true)
    @NotNull(message = "封闭区域id不能为空")
    private Long closedAreaId;
    
    @ApiModelProperty(value = "封闭区域名称", name = "closedAreaName", required = true)
    @NotEmpty(message = "封闭区域名称不能为空")
    private String closedAreaName;
    
    @ApiModelProperty(value = "访问起始时间", name = "visitStartTime", required = true)
    @NotEmpty(message = "访问起始时间不能为空")
    private String visitStartTime;
    
    @ApiModelProperty(value = "访问结束时间", name = "visitEndTime", required = true)
    @NotEmpty(message = "访问结束时间不能为空")
    private String visitEndTime;
    
    @ApiModelProperty(value = "管辖单位名id", name = "jurisdictionalCorpId", required = true)
    @NotNull(message = "管辖单位名id不能为空")
    private Long jurisdictionalCorpId;
    
    @ApiModelProperty(value = "管辖单位名称", name = "jurisdictionalCorpName", required = true)
    @NotEmpty(message = "管辖单位名称不能为空")
    private String jurisdictionalCorpName;
    
    @ApiModelProperty(value = "项目id", name = "projectId", required = true)
//    @NotNull(message = "项目id不能为空")
    private Long projectId;
    
    @ApiModelProperty(value = "项目名称", name = "projectName", required = true)
//    @NotEmpty(message = "项目名称不能为空")
    private String projectName;

    @ApiModelProperty(value = "申请理由", name = "applyReason", required = true)
    @NotEmpty(message = "申请理由不能为空")
    private String applyReason;

    @ApiModelProperty(value = "随行人员", name = "entourage", required = true)
    private String entourage;
    
    @ApiModelProperty(value = "告知签字", name = "informSignId", required = true)
    @NotEmpty(message = "告知签字不能为空")
    private String informSignId;
    
    @ApiModelProperty(value = "审批人员所属企业ID", name = "auditPersonCorpId", required = true)
    @NotNull(message = "审批人员所属企业ID不能为空")
    private Long auditPersonCorpId;
    
    @ApiModelProperty(value = "审批人员所属企业名称", name = "auditPersonCorpName", required = true)
    @NotEmpty(message = "审批人员所属企业名称不能为空")
    private String auditPersonCorpName;
    
    @ApiModelProperty(value = "审批人员所属部门id", name = "auditPersonDepartmentId", required = true)
    @NotNull(message = "审批人员所属部门id不能为空")
    private Long auditPersonDepartmentId;
    
    @ApiModelProperty(value = "审批人员部门名称", name = "auditPersonDepartmentName", required = true)
    @NotEmpty(message = "审批人员部门名称不能为空")
    private String auditPersonDepartmentName;
    
    @ApiModelProperty(value = "审批人员id", name = "auditPersonUserId", required = true)
    @NotNull(message = "审批人员id不能为空")
    private Long auditPersonUserId;
    
    @ApiModelProperty(value = "审批人员姓名", name = "auditPersonUserName", required = true)
    @NotEmpty(message = "审批人员姓名不能为空")
    private String auditPersonUserName;

    // 临时访客用
    @ApiModelProperty(value = "申请人员姓名", name = "applyPersonUserName", required = true)
    private String applyPersonUserName;
    @ApiModelProperty(value = "申请人头像", name = "userFaceUrl", required = true)
    private String userFaceUrl;
    @ApiModelProperty(value = "申请人手机号", name = "userPhone", required = true)
    private String userPhone;
    @ApiModelProperty(value = "申请人身份证号", name = "userCard", required = true)
    private String userCard;

}

