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

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.RefundStatusEnum;
import com.yc.ship.module.trade.enums.VoucherStatusEnum;
import lombok.*;

import java.math.BigDecimal;

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

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 退款批次ID
     */
    private Long refundId;
    /**
     * 退票明细ID
     */
    private Long refundDetailId;
    /**
     * 订单明细ID
     */
    private Long tradeDetailId;
    /**
     * 订单明细基础ID
     */
    private Long tradeDetailBaseId;
    /**
     * 退款金额
     */
    private BigDecimal refundAmount;
    /**
     * 退款前使用状态
     * {@link VoucherStatusEnum}
     */
    private Integer useStatus;
    /**
     * 退票状态
     * {@link RefundStatusEnum}
     */
    private Integer refundStatus;
    /**
     * 平台供应商退款ID
     */
    private Long platSupplierRefundId;
    /**
     * 平台供应商下单ID
     */
    private Long platSupplierOrderId;
    /**
     * 供应商券码
     */
    private String supplierVoucherCode;

}