package com.ltgk.crew.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ltgk.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 船员劳动合同对象 ds_crew_laborcontract
 *
 * @author Qi ChengBin
 * @date 2024-12-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ds_crew_laborcontract")
@ApiModel(value = "船员劳动合同对象", description = "船员劳动合同表")
public class DsCrewLaborcontract extends Model<DsCrewLaborcontract> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @Excel(name = "船员id")
    @ApiModelProperty(value = "船员id")
    @TableField(value = "crew_id")
    private String crewId;

    @Excel(name = "船员姓名")
    @ApiModelProperty(value = "船员姓名")
    @TableField(value = "crew_name", condition = SqlCondition.LIKE)
    private String crewName;

    @Excel(name = "中介公司id")
    @ApiModelProperty(value = "中介公司id")
    @TableField(value = "agency_id")
    private String agencyId;

    @Excel(name = "1企业；2个人")
    @ApiModelProperty(value = "1企业；2个人")
    @TableField(value = "contract_type")
    private String contractType;

    @Excel(name = "合同文件")
    @ApiModelProperty(value = "合同文件")
    @TableField(value = "contract_file")
    private String contractFile;

    @ApiModelProperty(value = "合同文件名称")
    @TableField(value = "contract_file_name")
    private String contractFileName;

    @Excel(name = "担任职务")
    @ApiModelProperty(value = "担任职务")
    @TableField(value = "post", condition = SqlCondition.LIKE)
    private String post;

    @Excel(name = "就业渔船号2")
    @ApiModelProperty(value = "就业渔船号2")
    @TableField(value = "boat_name2")
    private String boatName2;

    @Excel(name = "就业渔船号1")
    @ApiModelProperty(value = "就业渔船号1")
    @TableField(value = "boat_name1")
    private String boatName1;

    @Excel(name = "渔船经营人")
    @ApiModelProperty(value = "渔船经营人")
    @TableField(value = "boat_operator", condition = SqlCondition.LIKE)
    private String boatOperator;

    @Excel(name = "类型；固定期限、无固定期限、以完成一定工作为期限")
    @ApiModelProperty(value = "类型；固定期限、无固定期限、以完成一定工作为期限")
    @TableField(value = "type", condition = SqlCondition.LIKE)
    private String type;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "合同开始时间")
    @TableField(value = "begin_time")
    private Date beginTime;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "合同结束时间")
    @TableField(value = "end_time")
    private Date endTime;

    @Excel(name = "作废时间")
    @ApiModelProperty(value = "作废时间")
    @TableField(value = "cancel_time")
    private String cancelTime;

    @Excel(name = "状态；0 - 未开始，1 - 正常， 2 - 解绑")
    @ApiModelProperty(value = "状态；0 - 未开始，1 - 正常， 2 - 解绑/作废， 3 -- 终止")
    @TableField(value = "status")
    private Integer status;

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

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

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_at")
    private Date createAt;

    @ApiModelProperty(value = "修改者")
    @TableField(value = "update_by")
    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间")
    @TableField(value = "update_at")
    private Date updateAt;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "生效时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "生效时间")
    @TableField(value = "effective_time")
    private Date effectiveTime;

    @ApiModelProperty(value = "行政区域编码")
    @TableField(value = "area_code")
    private String areaCode;

    @ApiModelProperty(value = "行政区域名称")
    @TableField(value = "area_name")
    private String areaName;
}
