package com.yc.ship.module.trade.dal.dataobject.order;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import com.yc.ship.module.trade.enums.VoucherStatusEnum;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单明细基础 DO
 *
 * @author 管理员
 */
@TableName("trade_detail_base")
@KeySequence("trade_detail_base_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TradeDetailBaseDO extends TenantBaseDO {

    /**
     * 主键
     */
    @TableId(type= IdType.INPUT)
    private Long id;
    /**
     * 订单ID
     */
    private Long orderId;
    /**
     * 明细ID
     */
    private Long detailId;
    /**
     * 基础产品Id
     */
    private Long productBaseId;
    /**
     * 基础产品名称
     */
    private String productBaseName;
    /**
     * 基础产品类型 0自建子票 1平台产品
     */
    private Integer productBaseType;
    /**
     * 产品资源ID
     */
    private Long productResourceId;
    /**
     * 资源名称
     */
    private String productResourceName;
    /**
     * 供应商产品编码
     */
    private String supplierProductId;
    /**
     * 供应商ID
     */
    private Long supplierId;
    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 是否系统直连
     */
    private Integer isSystemDirect;
    /**
     * 使用日期
     */
    private LocalDateTime useDate;
    /**
     * 使用状态
     * 关联 {@link VoucherStatusEnum}
     */
    private Integer useStatus;
    /**
     * 核验状态
     */
    private Integer checkStatus;
    /**
     * 核销时间
     */
    private LocalDateTime verifyTime;
    /**
     * 价格
     */
    private BigDecimal price;
    /**
     * 原始销售价格
     */
    private BigDecimal originalPrice;
    /**
     * 已使用次数
     */
    private Integer usageCount;
    /**
     * 定制游手动输入金额
     */
    private BigDecimal costPrice;
    /**
     * 资源价格
     */
    private BigDecimal productResourcePrice;
    /**
     * 项目ID
     */
    private Long projectId;
    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 项目编码
     */
    private String projectCode;
    /**
     * 规格ID
     */
    private Long specificationId;
    /**
     * 规格名称
     */
    private String specificationName;
    /**
     * 规格类型
     */
    private String specType;
    /**
     * 供应商券码
     */
    private String supplierVoucherCode;
    /**
     * 平台供应商下单ID
     */
    private Long platSupplierOrderId;
    /**
     * 开始点位
     */
    private Long startPoint;
    /**
     * 结束点位
     */
    private Long endPoint;

}