/*
 * Copyright [2022] [https://www.xiaonuo.vip]
 *
 * Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：
 *
 * 1.请不要删除和修改根目录下的LICENSE文件。
 * 2.请不要删除和修改Snowy源码头部的版权声明。
 * 3.本项目代码可免费商业使用，商业使用请保留源码和相关描述文件的项目出处，作者声明等。
 * 4.分发源码时候，请注明软件出处 https://www.xiaonuo.vip
 * 5.不可二次分发开源参与同类竞品，如有想法可联系团队xiaonuobase@qq.com商议合作。
 * 6.若您的项目无法满足以上几点，需要更多功能代码，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package vip.xiaonuo.biz.modular.consumptionrecord.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import vip.xiaonuo.common.pojo.CommonEntity;

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

/**
 * 消费记录实体
 *
 * @author fanzherong
 * @date  2025/02/06 08:56
 **/
@Getter
@Setter
@TableName("biz_consumption_record")
public class ConsumptionRecord extends CommonEntity implements TransPojo {

    /** 主键ID */
    @TableId
    @Schema(description = "主键ID")
    private String id;

    /** 用户id */
    @Schema(description = "用户id")
    private String userId;

    /** 消费方式 1：代金券消费   2：余额消费  3：代金券+余额 */
    @Schema(description = "消费方式 1：代金券消费   2：余额消费  3：代金券+余额")
    private String consumptionType;

    /** 代金券消费金额 */
    @Schema(description = "代金券金额")
    private BigDecimal voucherMoney;

    /** 账户消费金额 */
    @Schema(description = "账户金额")
    private BigDecimal accountMoney;

    /** 消费时间 */
    @Schema(description = "消费时间")
    private Date consumptionTime;

    /** 消费门店 */
    @Schema(description = "消费门店")
    private String consumptionOrg;

    /** 备注 */
    @Schema(description = "备注")
    private String consumptionRemark;

    /** 操作：1：赠送  2：扣减  3：消费 */
    @Schema(description = "操作：1：赠送  2：扣减  3：手动结算  4:扫码结算")
    @Trans(type = TransType.DICTIONARY, key = "consumption_operate")
    private String consumptionOperate;

    /**总金额*/
    @Schema(description = "总金额")
    private BigDecimal consumptionMoney;

    /**消费者姓名*/
    @TableField(exist = false)
    private String userName;
    /**消费门店*/
    @TableField(exist = false)
    private String orgName;

    /**原代金券余额*/
    @Schema(description = "原代金券余额")
    private BigDecimal voucherBalance;

    /**原账户余额*/
    @Schema(description = "原账户余额")
    private BigDecimal accountBalance;

    /**会员手机号*/
    @TableField(exist = false)
    private String phone;

    /**现账户余额*/
    private BigDecimal newAccountBalance;

    /**现代金券余额*/
    private BigDecimal newVoucherBalance;

    /**用户编码*/
    @TableField(exist = false)
    private String userCode;

    /**调整类型*/
    private String adjustType;
}
