package com.ltgk.boat.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: wan kun
 * @Description: 国籍所有权登记信息
 * @Date: 2024/12/24 15:22
 * @Version: 1.0
 */
@Data
@TableName("ds_boat_nationality")
public class DsBoatNationality {
    @ApiModelProperty(value = "国籍所有权登记信息唯一标识")
    @JsonProperty("id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;
    @ApiModelProperty("渔船信息唯一标识")
    @JsonProperty("boatId")
    @TableField(value = "boat_id")
    private String boatId;
    @ApiModelProperty("所属地区代码")
    @JsonProperty("areaCode")
    @TableField(value = "area_code")
    private String areaCode;
    @ApiModelProperty("所属地区名称")
    @JsonProperty("areaName")
    @TableField(value = "area_name")
    private String areaName;
    @ApiModelProperty("渔业船舶所有权登记证书编号")
    @JsonProperty("ownershipCode")
    @TableField(value = "ownership_code")
    private String ownershipCode;
    @ApiModelProperty("渔业船舶国籍证书编号")
    @JsonProperty("nationalityCode")
    @TableField(value = "nationality_code")
    private String nationalityCode;
    @ApiModelProperty("渔业船舶登记证书有效期")
    @JsonProperty("certificateValidity")
    @TableField(value = "certificate_validity")
    private String certificateValidity;
    @ApiModelProperty("船籍港")
    @JsonProperty("homePort")
    @TableField(value = "home_port")
    private String homePort;
    @ApiModelProperty("船籍港英文")
    @JsonProperty("homePortEn")
    @TableField(value = "home_port_en")
    private String homePortEn;
    @ApiModelProperty("所有权国籍登记审批机关")
    @JsonProperty("approvalAuthority")
    @TableField(value = "approval_authority")
    private String approvalAuthority;
    @ApiModelProperty("所有权国籍登记审批机关意见")
    @JsonProperty("approvalAuthorityOpinion")
    @TableField(value = "approval_authority_opinion")
    private String approvalAuthorityOpinion;
    @ApiModelProperty("所有权国籍登记审批人")
    @JsonProperty("approvalPerson")
    @TableField(value = "approval_person")
    private String approvalPerson;
    @ApiModelProperty("所有权国籍登记审批时间")
    @JsonProperty("approvalDate")
    @TableField(value = "approval_date")
    private String approvalDate;
    @ApiModelProperty("所有权国籍登记申请书编号")
    @JsonProperty("applyCode")
    @TableField(value = "apply_code")
    private String applyCode;
    @ApiModelProperty("所有权国籍登记申请日期")
    @JsonProperty("applyDate")
    @TableField(value = "apply_date")
    private String applyDate;
    @ApiModelProperty("所有权股份")
    @JsonProperty("ownerShare")
    @TableField(value = "owner_share")
    private String ownerShare;
    @ApiModelProperty("渔业船舶临时国籍证书编号")
    @JsonProperty("temporaryNationalityCode")
    @TableField(value = "temporary_nationality_code")
    private String temporaryNationalityCode;
    @ApiModelProperty("渔业船舶在建所有权证书编号")
    @JsonProperty("buildHolderCode")
    @TableField(value = "build_holder_code")
    private String buildHolderCode;
    @ApiModelProperty("持证人名称")
    @JsonProperty("certificateHolderName")
    @TableField(value = "certificate_holder_name")
    private String certificateHolderName;
    @ApiModelProperty("持证人名称英文")
    @JsonProperty("certificateHolderNameEn")
    @TableField(value = "certificate_holder_name_en")
    private String certificateHolderNameEn;
    @ApiModelProperty("持证人地址")
    @JsonProperty("certificateHolderAddr")
    @TableField(value = "certificate_holder_addr")
    private String certificateHolderAddr;
    @ApiModelProperty("持证人地址英文")
    @JsonProperty("certificateHolderAddrEn")
    @TableField(value = "certificate_holder_addr_en")
    private String certificateHolderAddrEn;
    @ApiModelProperty("持证人证件号码")
    @JsonProperty("certificateHolderIdcard")
    @TableField(value = "certificate_holder_idcard")
    private String certificateHolderIdcard;
    @ApiModelProperty("持证人电话")
    @JsonProperty("certificateHolderPhone")
    @TableField(value = "certificate_holder_phone")
    private String certificateHolderPhone;
    @ApiModelProperty("渔业船舶国籍证书有效期")
    @JsonProperty("nationalityCertificateValidity")
    @TableField(value = "nationality_certificate_validity")
    private String nationalityCertificateValidity;
    @ApiModelProperty("共有人信息")
    @JsonProperty("coOwnerInfo")
    @TableField(value = "co_owner_info")
    private String coOwnerInfo;
    @ApiModelProperty("船舶经营方")
    @JsonProperty("operate")
    @TableField(value = "operate")
    private String operate;
    @ApiModelProperty("船舶经营方英文")
    @JsonProperty("operateEn")
    @TableField(value = "operate_en")
    private String operateEn;
    @ApiModelProperty("船旗国")
    @JsonProperty("flagState")
    @TableField(value = "flag_state")
    private String flagState;
    @ApiModelProperty("船旗国英文")
    @JsonProperty("flagStateEn")
    @TableField(value = "flag_state_en")
    private String flagStateEn;
    @ApiModelProperty("船舶经营方地址")
    @JsonProperty("operateAddr")
    @TableField(value = "operate_addr")
    private String operateAddr;
    @ApiModelProperty("船舶经营方地址英文")
    @JsonProperty("operateAddrEn")
    @TableField(value = "operate_addr_en")
    private String operateAddrEn;
    @ApiModelProperty("渔船编码")
    @JsonProperty("boatCode")
    @TableField(value = "boat_code")
    private String boatCode;
    @ApiModelProperty("船名")
    @JsonProperty("boatName")
    @TableField(value = "boat_name")
    private String boatName;
    @ApiModelProperty("船名英文")
    @JsonProperty("boatNameEn")
    @TableField(value = "boat_name_en")
    private String boatNameEn;
    @ApiModelProperty("船长")
    @JsonProperty("length")
    @TableField(value = "length")
    private BigDecimal length;
    @ApiModelProperty("型宽")
    @JsonProperty("width")
    @TableField(value = "width")
    private BigDecimal width;
    @ApiModelProperty("型深")
    @JsonProperty("height")
    @TableField(value = "height")
    private BigDecimal height;
    @ApiModelProperty("总吨位")
    @JsonProperty("tonnage")
    @TableField(value = "tonnage")
    private BigDecimal tonnage;
    @ApiModelProperty("净吨位")
    @JsonProperty("netTonnage")
    @TableField(value = "net_tonnage")
    private BigDecimal netTonnage;
    @ApiModelProperty("主机总功率")
    @JsonProperty("mainPower")
    @TableField(value = "main_power")
    private BigDecimal mainPower;
    @ApiModelProperty("主机型号一")
    @JsonProperty("mainTypeOne")
    @TableField(value = "main_type_one")
    private String mainTypeOne;
    @ApiModelProperty("主机型号二")
    @JsonProperty("mainTypeTwo")
    @TableField(value = "main_type_two")
    private String mainTypeTwo;
    @ApiModelProperty("主机型号三")
    @JsonProperty("mainTypeThree")
    @TableField(value = "main_type_three")
    private String mainTypeThree;
    @ApiModelProperty("主机功率一")
    @JsonProperty("mainPowerOne")
    @TableField(value = "main_power_one")
    private BigDecimal mainPowerOne;
    @ApiModelProperty("主机功率二")
    @JsonProperty("mainPowerTwo")
    @TableField(value = "main_power_two")
    private BigDecimal mainPowerTwo;
    @ApiModelProperty("主机功率三")
    @JsonProperty("mainPowerThree")
    @TableField(value = "main_power_three")
    private BigDecimal mainPowerThree;
    @ApiModelProperty("船体材质")
    @JsonProperty("boatMaterial")
    @TableField(value = "boat_material")
    private String boatMaterial;
    @ApiModelProperty("船体材质英文")
    @JsonProperty("boatMaterialEn")
    @TableField(value = "boat_material_en")
    private String boatMaterialEn;
    @ApiModelProperty("建造完工日期")
    @JsonProperty(value = "buildDate")
    @TableField(value = "build_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date buildDate;
    @ApiModelProperty("主机数量")
    @JsonProperty("hostNum")
    @TableField(value = "host_num")
    private BigDecimal hostNum;
    @ApiModelProperty("船舶呼号识别码")
    @JsonProperty("boatCallCode")
    @TableField(value = "boat_call_code")
    private String boatCallCode;
    @ApiModelProperty("子船船名")
    @JsonProperty("sonName")
    @TableField(value = "son_name")
    private String sonName;
    @ApiModelProperty("子船数量")
    @JsonProperty("sonNum")
    @TableField(value = "son_num")
    private BigDecimal sonNum;
    @ApiModelProperty("子船总功率")
    @JsonProperty("sonPower")
    @TableField(value = "son_power")
    private BigDecimal sonPower;
    @ApiModelProperty("船舶所有人名称")
    @JsonProperty("holderName")
    @TableField(value = "holder_name")
    private String holderName;
    @ApiModelProperty("船舶所有人名称英文")
    @JsonProperty("holderNameEn")
    @TableField(value = "holder_name_en")
    private String holderNameEn;
    @ApiModelProperty("船舶所有人地址")
    @JsonProperty("holderAddress")
    @TableField(value = "holder_address")
    private String holderAddress;
    @ApiModelProperty("船舶所有人地址英文")
    @JsonProperty("holderAddressEn")
    @TableField(value = "holder_address_en")
    private String holderAddressEn;
    @ApiModelProperty("船舶所有人电话")
    @JsonProperty("holderPhone")
    @TableField(value = "holder_phone")
    private String holderPhone;
    @ApiModelProperty("船舶类型")
    @JsonProperty("boatType")
    @TableField(value = "boat_type")
    private String boatType;
    @ApiModelProperty("船舶类型英文")
    @JsonProperty("boatTypeEn")
    @TableField(value = "boat_type_en")
    private String boatTypeEn;
    @ApiModelProperty("主机机号一")
    @JsonProperty("mainMachineNumOne")
    @TableField(value = "main_machine_num_one")
    private String mainMachineNumOne;
    @ApiModelProperty("主机机号二")
    @JsonProperty("mainMachineNumTwo")
    @TableField(value = "main_machine_num_two")
    private String mainMachineNumTwo;
    @ApiModelProperty("主机机号三")
    @JsonProperty("mainMachineNumThree")
    @TableField(value = "main_machine_num_three")
    private String mainMachineNumThree;
    @ApiModelProperty("船网工具指标批准书编号")
    @JsonProperty("networkApprovalNum")
    @TableField(value = "network_approval_num")
    private String networkApprovalNum;
    @ApiModelProperty("双控功率")
    @JsonProperty("dualControlPower")
    @TableField(value = "dual_control_power")
    private BigDecimal dualControlPower;
    @ApiModelProperty("核准船长")
    @JsonProperty("approvalLength")
    @TableField(value = "approval_length")
    private String approvalLength;
    @ApiModelProperty("核准总吨")
    @JsonProperty("approvalTonnage")
    @TableField(value = "approval_tonnage")
    private String approvalTonnage;
    @ApiModelProperty("船舶照片")
    @JsonProperty("boatImage")
    @TableField(value = "boat_image", updateStrategy = FieldStrategy.IGNORED)
    private String boatImage;
    @ApiModelProperty("船舶所有人照片")
    @JsonProperty("boatHolderImage")
    @TableField(value = "boat_holder_image", updateStrategy = FieldStrategy.IGNORED)
    private String boatHolderImage;
    @ApiModelProperty("本次发放证书类型")
    @JsonProperty("certificateType")
    @TableField(value = "certificate_type")
    private String certificateType;
    @ApiModelProperty("操作说明")
    @JsonProperty("remark")
    @TableField(value = "remark")
    private String remark;
    @ApiModelProperty("删除标记")
    @JsonProperty("delFlag")
    @TableField(value = "del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建人")
    @JsonProperty("createBy")
    @TableField(value = "create_by")
    private String createBy;
    @ApiModelProperty("创建时间")
    @JsonProperty("createAt")
    @TableField(value = "create_at")
    private Date createAt;
    @ApiModelProperty("更新时间")
    @JsonProperty("updateAt")
    @TableField(value = "update_at")
    private Date updateAt;
    @ApiModelProperty("更新人")
    @JsonProperty("updateBy")
    @TableField(value = "update_by")
    private String updateBy;

}
