/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.transport.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 船舶管理实体类
 *
 * @author Chill
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_ship")
@Schema(description = "船舶管理")
public class TransportShip extends TenantEntity {

	@Serial
	private static final long serialVersionUID = 1L;

	@Schema(description = "船舶名")
	private String shipName;

	@Schema(description = "船舶识别号")
	private String shipIdentifierNo;

	@Schema(description = "所属组织")
	private String organizationName;

	@Schema(description = "安放龙骨日期")
	private LocalDate keelLayingDate;

	@Schema(description = "建造完工日期")
	private LocalDate buildCompletionDate;

	@Schema(description = "总长")
	private BigDecimal totalLength;

	@Schema(description = "船宽")
	private BigDecimal shipWidth;

	@Schema(description = "型深")
	private BigDecimal moldedDepth;

	@Schema(description = "最大船高")
	private BigDecimal maxShipHeight;

	@Schema(description = "空载吃水")
	private BigDecimal lightDraft;

	@Schema(description = "满载吃水")
	private BigDecimal fullLoadDraft;

	@Schema(description = "航区")
	private String navigationArea;

	@Schema(description = "所有权登记号码")
	private String ownershipRegistrationNo;

	@Schema(description = "初次登记号码")
	private String initialRegistrationNo;

	@Schema(description = "船舶所有人")
	private String shipOwner;

	@Schema(description = "取得所有权日期")
	private LocalDate ownershipAcquisitionDate;

	@Schema(description = "船检登记号")
	private String shipInspectionNo;

	@Schema(description = "船舶类型")
	private String shipType;

	@Schema(description = "总吨")
	private BigDecimal grossTonnage;

	@Schema(description = "净吨")
	private BigDecimal netTonnage;

	@Schema(description = "船舶所有权证书图片")
	private String ownershipCertImage;

	@Schema(description = "内河船舶安全与环保证书图片")
	private String safetyCertImage;

	@Schema(description = "国籍证有效期自")
	private LocalDate nationalityCertStartDate;

	@Schema(description = "国籍证有效期至")
	private LocalDate nationalityCertEndDate;

	@Schema(description = "国籍证长期有效")
	private Integer nationalityCertLongTerm;

	@Schema(description = "国籍证图片")
	private String nationalityCertImage;

	@Schema(description = "最低安全配员证书有效期自")
	private LocalDate safeManningCertStartDate;

	@Schema(description = "最低安全配员证书有效期至")
	private LocalDate safeManningCertEndDate;

	@Schema(description = "最低安全配员证书长期有效")
	private Integer safeManningCertLongTerm;

	@Schema(description = "最低安全配员证书图片")
	private String safeManningCertImage;

	@Schema(description = "营业运输证编号")
	private String businessTransportCertNo;

	@Schema(description = "营业运输证发证日期")
	private LocalDate businessTransportCertIssueDate;

	@Schema(description = "营业运输证有效期至")
	private LocalDate businessTransportCertEndDate;

	@Schema(description = "营业运输证长期有效")
	private Integer businessTransportCertLongTerm;

	@Schema(description = "营业运输证图片")
	private String businessTransportCertImage;

	@Schema(description = "起租日期")
	private LocalDate leaseStartDate;

	@Schema(description = "承租有效期至")
	private LocalDate leaseEndDate;

	@Schema(description = "承租长期有效")
	private Integer leaseLongTerm;

	@Schema(description = "承租合同图片")
	private String leaseContractImage;

	@Schema(description = "船舶承租人")
	private String shipLessee;

	@Schema(description = "船舶经营人")
	private String shipOperator;

	@Schema(description = "备注")
	private String remark;

}
