package com.ruoyi.cai.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

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

/**
 * 消费记录对象 cai_consume_log
 *
 * @author 77
 * @date 2023-12-24
 */
@Data
@TableName("cai_consume_log")
public class CaiConsumeLog implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 类型 1-充值 2-礼物 3-守护 4-通话
     */
    private Integer type;
    /**
     * 业务ID
     */
    private Integer sourceBusinessId;
    /**
     * 发生金额
     */
    private Long amount;
    /**
     * 主播金额
     */
    private Long anchorAmount;
    /**
     * 一级金额
     */
    private Long oneAmount;
    /**
     * 工会金额
     */
    private Long unionAmount;
    /**
     * 平台金额
     */
    private Long platformAmount;
    /**
     * 消费方用户
     */
    private Long sourceUserId;
    /**
     * 消费方用户
     */
    private String sourceUsercode;
    /**
     * 消费方用户
     */
    private String sourcePhone;
    /**
     * 接收方用户
     */
    private Long targetUserId;
    /**
     * 接收方用户
     */
    private String targetUsercode;
    /**
     * 接收方用户
     */
    private String targetPhone;
    /**
     * 接收方的费率
     */
    private BigDecimal targetRate;
    /**
     * 一级分销方
     */
    private Long oneUserId;
    /**
     * 一级分销方
     */
    private String oneUsercode;
    /**
     * 一级分销方
     */
    private String onePhone;
    /**
     * 一级分销方抽成比例
     */
    private BigDecimal oneRate;
    /**
     * 是否有效
     */
    private Boolean oneJoin;
    /**
     * 是否为工会管理员 0=否 1=是
     */
    private Integer oneIsUnion;
    /**
     * 工会提成
     */
    private Long unionUserId;
    /**
     * 工会提成
     */
    private String unionUsercode;
    /**
     * 工会提成
     */
    private String unionPhone;
    private Boolean unionJoin;
    /**
     * 工会提成抽成比例
     */
    private BigDecimal unionRate;
    /**
     * 状态  0-待计算分销 1-已计算分销
     */
    private Boolean calculateStatus;
    /**
     * 状态  -1-无须分销 0-待分销 1-已分销
     */
    private Integer status;
    /**
     * 状态  0-否 1-是
     */
    private Boolean admin;
    /**
     * 管理员ID
     */
    private Long adminId;
    /**
     * 名称
     */
    private String adminName;
    /**
     * 分销人ID
     */
    private Long opId;
    /**
     * 分销人名称
     */
    private String opName;
    /**
     * 分销时间
     */
    private LocalDateTime opCreate;


    private LocalDateTime createTime;

    public void init(User fromUser, User toUser){
        this.setSourceUserId(fromUser.getId());
        this.setSourcePhone(fromUser.getMobile());
        this.setSourceUsercode(fromUser.getUsercode());
        this.setTargetUserId(toUser.getId());
        this.setTargetUsercode(toUser.getUsercode());
        this.setTargetPhone(toUser.getMobile());
    }

}
