package com.ssyf.module.robot.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 机器人消费记录表视图对象
 * @TableName r_robot_consumption_record
 */
@Data
@Accessors(chain = true)
public class RRobotConsumptionRecordVo implements Serializable {
    
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 消费记录唯一标识（UUID）
     */
    private String uuid;
    private String robotGroupUuid;

    private String robotGroupName;

    /**
     * 机器人账号唯一标识（关联机器人账号表uuid）
     */
    private String robotUuid;

    /**
     * 机器人登录账号（关联机器人账号表account）
     */
    private String robotAccount;
    /**
     * 机器人昵称
     */
    private String robotNickName;


    /**
     * 消费金额
     */
    private Double consumptionAmount;

    /**
     * 礼物名称
     */
    private String giftName;

    /**
     * 礼物ID
     */
    private String giftId;

    /**
     * 礼物图标
     */
    private String giftIcon;

    /**
     * 礼物单价
     */
    private Double giftUnitPrice;

    /**
     * 礼物数量
     */
    private Integer giftQuantity;

    /**
     * 礼物总价
     */
    private Double giftTotalPrice;

    /**
     * 主播ID
     */
    private String anchorId;

    /**
     * 主播名称
     */
    private String anchorName;

    /**
     * 主播头像
     */
    private String anchorAvatar;

    /**
     * 直播间ID
     */
    private String roomId;

    /**
     * 直播间名称
     */
    private String roomName;

    /**
     * 消费时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime consumptionTime;

    /**
     * 消费方式（如：微信支付、支付宝等）
     */
    private String consumptionMethod;

    /**
     * 消费信息（消费内容描述）
     */
    private String consumptionInfo;

    /**
     * 来源备注
     */
    private String notes;

    /**
     * 来源ID（关联对应来源业务的主键）
     */
    private String sourceId;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 创建人姓名
     */
    private String creator;

    /**
     * 创建人编码
     */
    private String creatorUuid;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
}