package com.ltgk.crew.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ltgk.common.annotation.Excel;
import lombok.Data;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 船民导入视图
 *
 * @author songzh
 */
@Data
public class DsBoatCrewVO implements Serializable {

    private static final long serialVersionUID = 1L;

//    @Excel(name = "行政区域编号", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
//    @NotNull(message = "行政区域编号不可为空！")
//    private String areaCode;

    @Excel(name = "行政区域", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
    @NotNull(message = "行政区域不可为空！")
    private String areaName;

    @Excel(name = "船员姓名", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
    @NotNull(message = "船员姓名不可为空！")
    private String crewName;

    @Excel(name = "船员姓名拼音", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String crewNamePy;

    @Excel(name = "身份证号", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
    @NotNull(message = "身份证号不可为空！")
    private String idCardNo;

    @Excel(name = "性别", width = 25, height = 18, readConverterExp = "1=男,2=女")
    private String sex;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "出生日期", dateFormat = "yyyy-MM-dd", width = 25, height = 18, type = Excel.Type.EXPORT)
    private Date birthday;

    @Excel(name = "民族", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String nation;

    @Excel(name = "年龄", width = 25, height = 18, type = Excel.Type.EXPORT)
    private Integer age;

    @Excel(name = "文化程度", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String education;

    @Excel(name = "联系方式", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
    @NotBlank(message = "联系电话不可为空！")
    private String phone;

    @Excel(name = "户籍所在地", width = 25, height = 18)
    private String residence;

    @Excel(name = "户籍省份", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String residenceProvince;

    @Excel(name = "户籍城市", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String residenceCity;

    @Excel(name = "户籍区县", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String residenceDistrict;

    @Excel(name = "现住址", width = 25, height = 18)
    private String address;

    @Excel(name = "船上职务", width = 25, height = 18, headerColor = IndexedColors.RED, prompt = "必填项", required = true)
    @NotBlank(message = "船上职务不可为空！")
    private String boatDutyName;

    @Excel(name = "适用船舶", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String applyBoat;

    @Excel(name = "当前服务船舶", width = 25, height = 18)
    private String boatName;

    @Excel(name = "类别", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String categoryName;

    @Excel(name = "签发机关", width = 25, height = 18, type = Excel.Type.EXPORT)
    private String certificateAuthorityName;

    @Excel(name = "曾服务船舶", width = 25, height = 18)
    private String onceBoat;

    @Excel(name = "紧急联系人", width = 25, height = 18)
    private String urgentMan;

    @Excel(name = "紧急联系电话", width = 25, height = 18)
    private String urgentPhone;

    @Excel(name = "证书编号", width = 25, height = 18)
    private String certificateCode;

    @Excel(name = "证书职务", width = 25, height = 18)
    private String certificatePost;

    @Excel(name = "证书等级", width = 25, height = 18)
    private String certificateLevel;

    @Excel(name = "发证机关", width = 25, height = 18)
    private String certificateAuthority;

    @Excel(name = "签发官员", width = 25, height = 18)
    private String certificatePeople;

    @Excel(name = "签发日期", dateFormat = "yyyy-MM-dd", width = 25, height = 18)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date certificateIssuedDate;

    @Excel(name = "无效日期", dateFormat = "yyyy-MM-dd", width = 25, height = 18)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date certificateExpiredDate;

    @Excel(name = "证书状态", width = 25, height = 18)
    private String certificateStatus;

    @Excel(name = "备注", width = 25, height = 18)
    private String remarks;
}
