package com.sckw.contract.model.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 交易合同（采购合同/销售合同）
 * @TableName kwc_contract_trade
 */
@TableName(value ="kwc_contract_trade")
@Data
public class KwcContractTrade implements Serializable {
    /**
     * 主键
     */
    @TableId
    private Long id;

    /**
     * 企业id
     */
    private Long entId;

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

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

    /**
     * 签约方式（1线上签约、2线下签约）
     */
    private Integer signingWay;

    /**
     * 交易方式(1预付款、2货到付款）
     */
    private Integer trading;

    /**
     * 开始日期
     */
    private Date startTime;

    /**
     * 结束日期
     */
    private Date endTime;

    /**
     * 数量
     */
    private BigDecimal amount;

    /**
     * 履行量
     */
    private BigDecimal performedAmount;

    /**
     * 签署文件
     */
    private String signingUrl;

    /**
     * 已签署文件
     */
    private String signedUrl;

    /**
     * 签约编号
     */
    private String signingNo;

    /**
     * 合同关联id
     */
    private Long contractPid;

    /**
     * 备注
     */
    private String remark;

    /**
     * 签约状态(签约中、已签约、已完结（结算时间已完成）、已解约、签约失败)
     */
    private Integer status;

    /**
     * 
     */
    private Long createBy;

    /**
     * 
     */
    private Date createTime;

    /**
     * 
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除（0未删除，1删除）
     */
    private Integer delFlag;

    /**
     * 业务id
     */
    private String businessId;

    /**
     * 结算方式 1-普通结算 2-预付制结算
     */
    @TableField("settlement")
    private Integer settlement;

    /**
     * 托运方式
     */
    @TableField("consignment")
    private Integer consignment;
    /**
     * 卸货方式
     */
    @TableField("unload_way")
    private Integer unloadWay;
    /**
     * 计量方式
     */
    @TableField("measurement_way")
    private Integer measurementWay;
    /**
     * 销售人员id
     */
   @TableField("salesman_id")
    private Long salesmanId;
    /**
     * 销售联系电话
     */
    @TableField("salesman_phone")
    private String salesmanPhone;
    /**
     * 签约时间
     */
    @TableField("sign_time")
    private Date signTime;

    /**
     * 派车方式
     */
    @TableField("dispatch_way")
    private Integer dispatchWay;

}