package com.ltgk.crew.domain.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 新增进港船员报备信息数据传输对象
 *
 * @author Qi ChengBin
 * @date 2024-12-07
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "新增进港船员报备信息数据传输对象", description = "新增进港船员报备信息数据传输对象")
public class AddDsCrewEnterCheckReq {

    @ApiModelProperty(value = "进港船员报备信息主键")
    private String id;

    @ApiModelProperty(value = "进港信息id")
    @NotNull(message = "进港信息id不能为空")
    private String enterPortId;

    @ApiModelProperty(value = "港口ID")
    private String portId;

    @ApiModelProperty(value = "港口名称")
    private String portName;

    @ApiModelProperty(value = "船员ID")
    @TableField(value = "crew_id")
    private String crewId;

    @ApiModelProperty(value = "船员姓名")
    private String crewName;

    @ApiModelProperty(value = "身份证号")

    private String idCard;

    @ApiModelProperty(value = "联系电话")
    private String tel;

    @ApiModelProperty(value = "证书编号")
    private String certificateNumber;

    @ApiModelProperty(value = "职位")
    private String position;

    @ApiModelProperty(value = "家庭住址")
    private String address;

    @ApiModelProperty(value = "0-未审核，1-通过，2-拒绝")
    private Integer status;

    @ApiModelProperty(value = "拒绝原因")
    private String reason;

    @ApiModelProperty(value = "身份证图片")
    private String idCardPic;

    @ApiModelProperty(value = "创建者")
    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private Date createAt;

    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "更新时间")
    private Date updateAt;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "行政区域编码")
    @NotNull(message = "行政区域编码不能为空")
    private String areaCode;

    @ApiModelProperty(value = "行政区域名称")
    @NotNull(message = "行政区域名称不能为空")
    private String areaName;

    @ApiModelProperty(value = "船员进港检查url")
    private String checkUrl;

    @ApiModelProperty(value = "渔船绑定船员信息")
    private AddDsCrewCheckAndBindBoatReq dsBoatBindCrew;
}
