package com.sqx.modules.app.entity;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@AllArgsConstructor
@TableName("user_money_details")
@ApiModel("钱包详情")
public class UserMoneyDetails implements Serializable {
    /**
     * 钱包详情id
     */
    @ApiModelProperty("钱包详情id")
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 用户id
     */
    @TableField("user_id")
    @ApiModelProperty("用户id")
    private Long userId;

    /**
     * 渠道用户id
     */
    @ApiModelProperty("渠道用户id")
    @TableField("sys_user_id")
    private Long sysUserId;

    /**
     * 对应用户id
     */
    @TableField("by_user_id")
    @ApiModelProperty("对应用户id")
    private Long byUserId;
    /**
     * 标题
     */
    @ApiModelProperty("标题")
    private String title;
    /**
     * 1注册  2首次购买  3购买 4提现
     */
    @ApiModelProperty("1充值钱包明细 2提现钱包明细")
    private Integer classify;
    /**
     * 类别（1充值2支出）
     */
    @ApiModelProperty("类别（1充值2支出）")
    private Integer type;
    /**
     * 状态 1待支付 2已到账 3取消
     */
    @ApiModelProperty("状态 1待支付 2已到账 3取消")
    private Integer state;
    /**
     * 金豆
     */
    @ApiModelProperty("金豆")
    private BigDecimal money;
    /**
     * 内容
     */
    @ApiModelProperty("内容")
    private String content;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty("创建时间")
    private String createTime;

    public UserMoneyDetails() {
    }

    /**
     *
     * @param userId    用户Id tb_user的id
     * @param sysUserId 系统用户Id tb_sys_user的id
     * @param byUserId  对应用户Id
     * @param title 标题
     * @param classify 1注册  2首次购买  3购买 4提现 5现金大转盘 6 分享 7 分享达标
     * @param type  类别（1充值2支出）
     * @param state 状态 1待支付 2已到账 3取消
     * @param money 金额
     * @param content 内容描述
     */
    public UserMoneyDetails(Long userId, Long sysUserId, Long byUserId, String title, Integer classify, Integer type, Integer state, BigDecimal money, String content) {
        this.userId = userId;
        this.sysUserId = sysUserId;
        this.byUserId = byUserId;
        this.title = title;
        this.classify = classify;
        this.type = type;
        this.state = state;
        this.money = money;
        this.content = content;
        this.createTime = DateUtil.now();
    }
}
