package com.ssyf.task.websocket;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;

/**
 * WS 协议消息实体
 * 用于接收服务器下发的消息或发送给服务器的消息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WsPayload {
    private String scene;
    private String type;
    private String token;
    private String client_id;
    private String room_number;
    
    // 泛型数据部分，根据 type 不同而变化，这里用 Object 或专用内部类
    private Object data; 
    
    // 辅助判断方法
    public boolean isTokenReq() { return "token".equals(type); }
    public boolean isAuthSuccess() { return "success".equals(type); }
    public boolean isAuthFail() { return "fail_token".equals(type); }
    public boolean isClientId() { return "client_id".equals(type); }
    public boolean isToastTip() { return "toast_tip".equals(type); }
}