package com.ssyf.task.websocket;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.time.LocalDateTime;

/**
 * 直播间 WS 消息记录表
 * 对应数据库表: r_robot_ws_message
 */
@Data
@Accessors(chain = true)
@TableName("r_robot_ws_message")
public class RRobotWsMessage implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    private String roomId;          // 直播间ID
    private String roomName;        // 直播间名称 (冗余快照)
    private String anchorName;      // 主播名称 (冗余快照)
    
    private String msgType;         // 消息类型 (toast_tip 等)
    private String content;         // 消息内容 (JSON中的 msg 字段)
    private String rawData;         // 原始完整JSON (可选，用于排查)
    
    private String sourceRole;     // 来源角色：anchor(主播), user(用户), robot(机器人)
    private String sourceUserId;    // 来源用户ID (用于去重和识别)

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime receiveTime; // 接收时间
    private Long timestamp;         // 毫秒时间戳 (用于排序)
}