package com.jeeplus.test.workContract.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import lombok.Data;

import java.util.Date;

@Data
@TableName("work_contract_info")
public class WorkContractInfo {

    /**
     * 实体主键
     */
    @TableId
    private String id;

    /**
     * 创建日期
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createDate;

    /**
     * 创建人
     */
    @Query(tableColumn = "a.create_by")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新日期
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 逻辑删除标记
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer delFlag;

    /**
     * 客户id
     */
    private String clientId;

    /**
     * 客户名称
     */
    @Query(tableColumn = "a.client_name")
    private String clientName;

    /**
     * 合同编号
     */
    private String no;

    /**
     * 合同名称
     */
    @Query(tableColumn = "a.name")
    private String name;

    /**
     * 签订日期
     */
    @Query(tableColumn = "a.contract_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date contractDate;

    /**
     * 合同生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 合同终止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date closingDate;

    /**
     * 合同类型
     */
    private String contractType;

    /**
     * 合同金额类别
     */
    private String contractAmountType;

    /**
     * 合同金额
     */
    @Query(tableColumn = "a.contract_amount")
    private String contractAmount;

    /**
     * 对方合同编号
     */
    private String contractOpposite;

    /**
     * 收费标准
     */
    private String contractFee;

    private String fees;

    /**
     * 描述
     */
    private String describes;

    /**
     * 合同特别条款
     */
    private String contractSpecial;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 归档人
     */
    private String filedBy;

    /**
     * 归档日期
     */
    private String filedDate;

    /**
     * 案卷号
     */
    private String filedNo;

    /**
     * 确认案卷号
     */
    private String confirmFiledNo;

    /**
     * 说明
     */
    private String filedRemarks;

    /**
     * 流程id
     */
    private String procInsId;

    private String processDefinitionId;

    /**
     * 状态
     */
    @Query
    private String status;

    /**
     * 归档状态
     */
    @Query(tableColumn = "d.filed_type")
    private String filedType;

    /**
     * 借用状态
     */
    private String borrowType;

    @TableField(exist = false)
    private String[] contractDates;

    @TableField(exist = false)
    private String[] contractAmounts;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private String taskFiledId;

    @TableField(exist = false)
    private String taskBorrowId;

    @TableField(exist = false)
    private String createId;

    @TableField(exist = false)
    private String contractFileId;
}
