package cn.com.ty.lift.enterprise.oa.dto;

import cn.com.ty.lift.common.model.PageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Future;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

/**
 * <p>
 *     操作证请求参数体
 * </p>
 * @author wcz
 * @since  2019/12/12
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class LiftCertificateRequest extends PageRequest {
    /**
     * 主键id
     */
    @Min(value = 1,message = "操作证ID有误")
    private Long id;
    /**
     * 维保公司id
     */
    @Min(value = 1,message = "维保公司ID有误")
    private Long mtCompanyId;
    /**
     * 操作证拥有人id
     */
    @Min(value = 1,message = "操作证拥有人ID有误")
    private Long ownerId;
    /**
     * 用户名称
     */
    @NotBlank(message = "缺少用户名")
    private String username;
    /**
     * 操作证类型 1: 维保工操作证 (12：区域经理,13：维保工),2: 其他操作证
     */
    @NotBlank(message = "缺少操作证类型")
    private String certificateType;
    /**
     * 操作证状态
     */
    @Min(value = 0, message = "缺少操作证状态")
    private Integer status;
    /**
     * 审核是否通过 true：通过，false：不通过
     */
    @NotNull(message = "请指定是否审核通过")
    private boolean pass;
    /**
     * 操作证号
     */
    @NotBlank(message = "缺少操作证号")
    private String code;
    /**
     * 发证单位
     */
    @NotBlank(message = "缺少发证单位")
    private String issuanceAgency;

    /**
     * 有效期
     */
    @NotNull(message = "缺少操作证有效期")
    @Future(message = "操作证有效期已过期")
    private LocalDate expirationDate;

    /**
     * 第一张图片路径
     */
    @NotBlank(message = "缺少操作证正反面图片")
    private String firstImgUrl;

    /**
     * 第二张图片路径
     */
    @NotBlank(message = "缺少操作证正反面图片")
    private String secondImgUrl;
}
