package com.sckw.mongo.model;

import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zk
 * @desc MongoDB-物流订单信息
 * @date 2023/7/8
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Document(collection = "sckw_logistics_order")
public class SckwLogisticsOrder {

    /**
     * 主键
     */
    @Id
    private Long _id;

    /**
     * 物流订单ID
     */
    private Long lOrderId;

    /**
     * 物流订单编号
     */
    private String lOrderNo;

    /**
     * 分包上级物流订单id
     */
    private Long lOrderPid;

    /**
     * 交易订单id（kwo_trade_order）
     */
    private Long tOrderId;

    /**
     * 交易订单编号（kwo_trade_order）
     */
    private String tOrderNo;

    /**
     * 结算周期(周结、月结、季结)
     */
    private Long settlementCycle;

    /**
     * 运价
     */
    private BigDecimal price;

    /**
     * 运价方式(元/吨、元/车）
     */
    private Long priceType;

    /**
     * 已委托量
     */
    private BigDecimal amount;

    /**
     * 单位（吨、方、箱、件）
     */
    private String unit;

    /**
     * 合理损耗
     */
    private BigDecimal loss;

    /**
     * 合理损耗单位(‰/kG)
     */
    private String lossUnit;

    /**
     * 商品价值（扣亏货值）
     */
    private BigDecimal goodsPrice;

    /**
     * 商品价值（扣亏货值）单位
     */
    private String goodsPriceUnit;

    /**
     * 卸货日期
     */
    private Date unloadTime;

    /**
     * 装货日期
     */
    private Date loadTime;

    /**
     * 分包量
     */
    private BigDecimal subcontractAmount;

    /**
     * 已委托量
     */
    private BigDecimal entrustAmount;

    /**
     * 卸货量
     */
    private BigDecimal unloadAmount;

    /**
     * 装货量
     */
    private BigDecimal loadAmount;

    /**
     * 忽略剩余量
     */
    private BigDecimal ignoreAmount;

    /**
     * 亏吨量
     */
    private BigDecimal deficitAmount;

    /**
     * 亏吨扣款
     */
    private BigDecimal deficitPrice;

    /**
     * 付款方式(预付款、线下支付、第三方支付）
     */
    private Long payment;

    /**
     * 发票税率（%）
     */
    private BigDecimal taxRate;

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

    /**
     * 用户状态（0正常、1已锁）
     */
    private String status = "0";

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

    /**
     * 企业名称
     */
    private String firmName;

    /**
     * 商品主键
     */
    private Integer goodsId;

    /**
     * 商品编号
     */
    private String goodsCode;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品类型
     */
    private String goodsType;

    /**
     * 商品行业
     */
    private Long goodsIndustry;

    /**
     * 商品尺寸大小
     */
    private String goodsSpec;

    /**
     * 合同主键
     */
    private Integer contractId;

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

    /**
     * 合同mc
     */
    private String contractName;

    /**
     * 合同签约方式
     */
    private String contractSigningWay;

    /**
     * 托运企业主键ID
     */
    private Long checkEntId;

    /**
     * 托运企业名称
     */
    private String checkFirmName;

    /**
     * 托运企业联系人
     */
    private String checkContacts;

    /**
     * 托运企业联系电话
     */
    private String checkPhone;

    /**
     * 承运企业主键ID
     */
    private Long carrierEntId;

    /**
     * 承运企业名称
     */
    private String carrierFirmName;

    /**
     * 承运企业联系人
     */
    private String carrierContacts;

    /**
     * 承运企业联系电话
     */
    private String carrierPhone;

    /**
     * 装货地址类型
     */
    private Long loadType;

    /**
     * 装货联系人姓名
     */
    private String loadContacts;

    /**
     * 装货联系电话
     */
    private String loadPhone;

    /**
     * 装货所在地区
     */
    private Integer loadCityCode;

    /**
     * 装货所属区域名称
     */
    private String loadCityName;

    /**
     * 装货详细地址
     */
    private String loadDetailAddress;

    /**
     * 装货纬度
     */
    private String loadLat;

    /**
     * 装货纬度
     */
    private String loadLng;

    /**
     * 卸货地址类型
     */
    private Long unloadType;

    /**
     * 卸货联系人姓名
     */
    private String unloadContacts;

    /**
     * 卸货联系电话
     */
    private String unloadPhone;

    /**
     * 卸货所在地区
     */
    private Integer unloadCityCode;

    /**
     * 卸货所属区域名称
     */
    private String unloadCityName;

    /**
     * 卸货详细地址
     */
    private String unloadDetailAddress;

    /**
     * 卸货纬度
     */
    private String unloadLat;

    /**
     * 卸货纬度
     */
    private String unloadLng;

    /**
     * 创建人主键id
     */
    private Long createBy;

    /**
     * 创建人姓名
     */
    private String createByName;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人主键id
     */
    private Long updateBy;

    /**
     * 更新人姓名
     */
    private String updateByName;

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

    /**
     * 是否删除（0未删除，1删除）
     */
    @TableLogic("0")
    private String delFlag = "0";

    /**
     * 关联的承运订单号
     */
    private String wOrderNo;

    /**
     * 分配的承运量
     */
    private Long carryingCapacity;

    /**
     * 计费方式
     */
    private String billingMode;
}
