package com.game.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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 com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.game.common.annotation.Excel;
import com.game.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModel;
import lombok.Data;

/**
 * 充值记录对象 app_users_charge
 *
 * @author game
 * @date 2024-06-18
 */
@ApiModel(value = "app_users_charge", description = "充值记录")
@TableName(value= "app_users_charge")
@Data
public class AppUsersCharge
        {
private static final long serialVersionUID=1L;

    /** $column.columnComment */
    @ApiModelProperty(value = "$column.columnComment")
    @TableId(value = "id" , type = IdType.AUTO)
    private Long id;

    /** 添加时间 */
    @ApiModelProperty(value = "添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "添加时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "addtime")
    private Date addtime;

    /** 更新时间 */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "添加时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "update_time")
    private Date updateTime;

    /** 当前剩余金币 */
    @ApiModelProperty(value = "当前剩余金币")
    @Excel(name = "当前剩余金币")
    @TableField(value = "after_coin")
    private BigDecimal afterCoin;

    /** 直属上级代理（后台管理员） */
    @ApiModelProperty(value = "直属上级代理（后台管理员）")
    @Excel(name = "直属上级代理" , readConverterExp = "后=台管理员")
    @TableField(value = "agent_id")
    private Long agentId;

    /** 支付环境 */
    @ApiModelProperty(value = "支付环境")
    @Excel(name = "支付环境")
    @TableField(value = "ambient")
    private Long ambient;

    /** 货币数 */
    @ApiModelProperty(value = "货币数")
    @Excel(name = "货币数")
    @TableField(value = "coin")
    private BigDecimal coin;

    /** 货币类型  0：金币  1：钻石 */
    @ApiModelProperty(value = "货币类型  0：金币  1：钻石")
    @Excel(name = "货币类型  0：金币  1：钻石")
    @TableField(value = "coin_type")
    private Long coinType;

    /** 赠送钻石数 */
    @ApiModelProperty(value = "赠送钻石数")
    @Excel(name = "赠送钻石数")
    @TableField(value = "coin_give")
    private BigDecimal coinGive;

    @ApiModelProperty(value = "平台服务费")
    @TableField(value = "platform_service")
    private Double platformService;

    @ApiModelProperty(value = "平台服务费率")
    @TableField(value = "platform_service_rate")
    private Double platformServiceRate;

    /** 1是会员（星探）充值 */
    @ApiModelProperty(value = "1是会员（星探）充值")
    @Excel(name = "1是会员" , readConverterExp = "星=探")
    @TableField(value = "is_agent")
    private Long isAgent;

    /** 是否被删除 */
    @ApiModelProperty(value = "是否被删除")
    @Excel(name = "是否被删除")
    @TableField(value = "is_delete")
    private Long isDelete;

    /** 是否水军充值 0否 1是 */
    @ApiModelProperty(value = "是否水军充值 0否 1是")
    @Excel(name = "是否水军充值 0否 1是")
    @TableField(value = "is_water")
    private Long isWater;

    /** 金额 */
    @ApiModelProperty(value = "金额")
    @Excel(name = "金额")
    @TableField(value = "money")
    private BigDecimal money;

    /** 操作类型  1：充值金币 2：扣减金币 */
    @ApiModelProperty(value = "操作类型  1：充值金币 2：扣减金币")
    @Excel(name = "操作类型  1：充值金币 2：扣减金币")
    @TableField(value = "opt_type")
    private Long optType;

    /** 操作管理员用户的账号 */
    @ApiModelProperty(value = "操作管理员用户的账号")
    @Excel(name = "操作管理员用户的账号")
    @TableField(value = "opt_user")
    private String optUser;

    /** 商家订单号 */
    @ApiModelProperty(value = "商家订单号")
    @Excel(name = "商家订单号")
    @TableField(value = "orderno")
    private String orderno;

    /** 上级用户id */
    @ApiModelProperty(value = "上级用户id")
    @Excel(name = "上级用户id")
    @TableField(value = "pid")
    private Long pid;

    /** 所属区域家族id */
    @ApiModelProperty(value = "所属区域家族id")
    @Excel(name = "所属区域家族id")
    @TableField(value = "pid_level1")
    private Long pidLevel1;

    /** 所属家族id */
    @ApiModelProperty(value = "所属家族id")
    @Excel(name = "所属家族id")
    @TableField(value = "pid_level2")
    private Long pidLevel2;

    /** 所属经纪人id */
    @ApiModelProperty(value = "所属经纪人id")
    @Excel(name = "所属经纪人id")
    @TableField(value = "pid_level3")
    private Long pidLevel3;

    /** 直属上级id */
    @ApiModelProperty(value = "直属上级id")
    @Excel(name = "直属上级id")
    @TableField(value = "pid_level4")
    private Long pidLevel4;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    @TableField(value = "remarks")
    private String remarks;

    /** 充值规则ID */
    @ApiModelProperty(value = "充值规则ID")
    @Excel(name = "充值规则ID")
    @TableField(value = "rule_id")
    private Long ruleId;

    /** 状态 0:充值中 1：充值成功 2：充值失败 */
    @ApiModelProperty(value = "状态 0:充值中 1：充值成功 2：充值失败")
    @Excel(name = "状态 0:充值中 1：充值成功 2：充值失败")
    @TableField(value = "status")
    private Long status;

    /** 充值对象ID */
    @ApiModelProperty(value = "充值对象ID")
    @Excel(name = "充值对象ID")
    @TableField(value = "touid")
    private Long touid;

    /** 三方平台订单号 */
    @ApiModelProperty(value = "三方平台订单号")
    @Excel(name = "三方平台订单号")
    @TableField(value = "trade_no")
    private String tradeNo;

    /** 支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付 */
    @ApiModelProperty(value = "支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付 6: 余额兑换 7: 金币兑换")
    @Excel(name = "支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付 6: 余额兑换 7: 金币兑换")
    @TableField(value = "type")
    private Long type;

    /** 用户ID */
    @ApiModelProperty(value = "用户ID")
    @Excel(name = "用户ID")
    @TableField(value = "uid")
    private Long uid;

    @JsonIgnore
    @TableField(exist = false)
    private Double todaySum;

}