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.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * web-client
 *
 * @Author dearLin
 * @Date 2026-03-20 10:07:13
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ClosedTmpApplyAddCmd extends Command {
    // 人或者车
    @ApiModelProperty(value = "临时申请类型PERSON_APPLY，CAR_APPLY不能为空", name = "tmpApplyType", required = true)
    @NotNull(message = "临时申请类型 PERSON_APPLY，CAR_APPLY 不能为空")
    private String tmpApplyType;

    @ApiModelProperty(value = "临时口门类型人=》 ONE_LEVEL_PERSON_APPLY 一级，TWO_LEVEL_PERSON_APPLY 二级不能为空,临时口门类型车 ONE_LEVEL_CAR_APPLY一级，TWO_LEVEL_CAR_APPLY二级", name = "tmpMkmjType", required = true)
    @NotNull(message = "临时口门类型LEVEL_ONE 一级，LEVEL_TOW 二级不能为空")
    private String tmpMkmjType;

    // 审批通用
    @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;
    @ApiModelProperty(value = "申请理由", name = "applyReason", required = true)
    @NotEmpty(message = "申请理由不能为空")
    private String applyReason;
    @ApiModelProperty(value = "访问起始时间", name = "visitStartTime", required = true)
    @NotNull(message = "访问起始时间不能为空")
    private String visitStartTime;

    @ApiModelProperty(value = "访问结束时间", name = "visitEndTime", required = true)
    @NotNull(message = "访问结束时间不能为空")
    private String visitEndTime;

    @ApiModelProperty(value = "所属港区", name = "hgAuthArea", required = true)
    @NotEmpty(message = "所属港区不能为空")
    private String hgAuthArea;
    @ApiModelProperty(value = "所属港区名称", name = "hgAuthAreaName", required = true)
    @NotEmpty(message = "所属港区名称不能为空")
    private String hgAuthAreaName;


    @ApiModelProperty(value = "一级口门id", name = "levelOneMkmjId", required = true)
    private Long levelOneMkmjId;
    @ApiModelProperty(value = "一级口门名称", name = "levelOneMkmjName", required = true)
    @NotEmpty(message = "一级口门名称不能为空")
    private String levelOneMkmjName;

    @ApiModelProperty(value = "告知签字", name = "informSignId", required = true)
    @NotNull(message = "告知签字不能为空")
    private String informSignId;
    // 临时人申请
    @ApiModelProperty(value = "区域管辖单位名id", name = "jurisdictionalCorpId", required = true)
    private Long jurisdictionalCorpId;
    @ApiModelProperty(value = "区域管辖单位名称", name = "jurisdictionalCorpName", required = true)
    private String jurisdictionalCorpName;
    @ApiModelProperty(value = "封闭区域id", name = "closedAreaId", required = true)
    private Long closedAreaId;
    @ApiModelProperty(value = "封闭区域名称", name = "closedAreaName", required = true)
    private String closedAreaName;
    @ApiModelProperty(value = "二级口门id(封闭区域口门)", name = "levelTwoMkmjId", required = true)
    private Long levelTwoMkmjId;
    @ApiModelProperty(value = "二级口门id(封闭区域口门)", name = "levelTwoMkmjName", required = true)
    private String levelTwoMkmjName;

    // 临时车
    @ApiModelProperty(value = "车牌类型数据字典", name = "licenceType", required = true)
    private String licenceType;
    @ApiModelProperty(value = "车牌类型名称0-白牌  1- 蓝牌   2-黄牌  3-绿牌   4-黑牌", name = "licenceTypeName", required = true)
    private String licenceTypeName;
    @ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
    private String licenceNo;
    @ApiModelProperty(value = "车辆类型", name = "vehicleType", required = true)
    private String vehicleType;
    @ApiModelProperty(value = "车辆类型-名字", name = "vehicleTypeName", required = true)
    private String vehicleTypeName;
    @ApiModelProperty(value = "行驶证照片", name = "drivingLicenseId", required = true)
    private String drivingLicenseId;
    @ApiModelProperty(value = "车辆照片", name = "attachmentId", required = true)
    private String attachmentId;

    @ApiModelProperty(value = "驾驶人ID", name = "drivingUserId", required = true)
    private String drivingUserId;
    @ApiModelProperty(value = "驾驶人名称", name = "drivingUserName", required = true)
    private String drivingUserName;


}

