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;
import java.time.LocalDateTime;

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

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 退票批次ID
     */
    private Long refundId;
    /**
     * 交易明细ID
     */
    private Long tradeDetailId;
    /**
     * 退款金额
     */
    private BigDecimal refundAmount;
    /**
     * 退款前券码状态
     * {@link VoucherStatusEnum}
     */
    private Integer voucherStatus;
    /**
     * 退票状态
     * {@link RefundStatusEnum}
     */
    private Integer refundStatus;
    /**
     * 退款时间
     */
    private LocalDateTime refundTime;
    /**
     * 原始金额
     */
    private BigDecimal originAmount;
    /**
     * 实际手续费
     */
    private BigDecimal fee;
    /**
     * 原手续费
     */
    private BigDecimal originFee;

}