package com.pusong.business.domain;

import com.pusong.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serial;

/**
 * 合同基本信息对象 ps_contract_info
 *
 * @author wls
 * @date 2024-07-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ps_contract_info")
public class PsContractInfo extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 合同id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /**
     * 合同编码
     */
    private String contractCode;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 客户id
     */
    private Long customId;

    /**
     * 签约个人时联系人姓名
     */
    private String contactPersonName;

    /**
     * 签约个人时联系人手机号
     */
    private String contactPersonPhone;

    /**
     * 签约个人时联系人身份证号
     */
    private String contactPersonIdcard;

    /**
     * 公司id
     */
    private Long companyId;

    /**
     * 合同主体
     */
    private String contractMain;

    /**
     * 合同所属销售经理
     */
    private Long customManager;

    /**
     * 合同总金额
     */
    private BigDecimal contractAmount;

    /**
     * 合同状态
     */
    private String contractStatus;

    /**
     * 签约日期
     */
    private Date applyDate;

    /**
     * 办理期限
     */
    private Long timeLimit;

    /**
     * 客户是否到达现场
     */
    private String customScene;

    /**
     * 是否代账,废弃，转移到服务公司的服务项目里
     */
    private String isProxy;
    /**
     * 是否老账新接,废弃，转移到服务公司的服务项目里
     */
    private String isOld;

    /**
     * 是否续费
     */
    private String isDue;
    /**
     * 签约备注
     */
    private String signDesc;
    /**
     * 付款方式描述
     */
    private String payModeDesc;
    /**
     * 文件系统ossId
     */
    private Long pdfId;
    /**
     *  2逻辑删除  0 默认有效
     */
    private Long delFlag;
    /**
     * 合同回传状态CommonStatusEnum
     */
    private String rollBackStatus;
    /**
     * 回传的合同文件ossid
     */
    private Long rollBackPdf;

    /**
     * 合同签章状态CommonStatusEnum
     */
    private String signStatus;
    /**
     * 服务周期开始时间
     */
    private Date startServiceDate;
    /**
     * 服务周期结束时间
     */
    private Date endServiceDate;

    /**
     * 是否作废
     */
    private String isCancel;

    /**
     * 合同完成时间
     */
    private Date finishDate;
    /**
     * 确认单
     */
    private Long confirmOssid;

    /**
     * 原合同编码（续费合同使用）
     */
    private String srcContractCode;
    /**
     * 续费日期
     */
    private Date renewalDate;
}
