package com.red.circle.mq.business.model.event.user;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import jakarta.validation.constraints.NotBlank;
import java.io.Serial;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author pengliang on 2023/12/12
 */
@Data
public class UserHeartbeatEvent implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 请求跟踪id.
   */
  private String reqTrackId;

  /**
   * 上传用户.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long userId;

  /**
   * 平台.
   */
  private SysOriginPlatformEnum sysOrigin;

  /**
   * 状态（VOICE_LIVE：语音直播、ONLINE：在线）.
   *
   * @eo.required
   */
  @NotBlank(message = "status required")
  private String status;

  /**
   * 是否定时调用(true 是，false 否).
   */
  private Boolean task;

  /**
   * 房间会话ID.
   */
  private String sessionId;

  /**
   * 是否在麦克风上true:在, false 不在.
   */
  private Boolean upMick;

  /**
   * 刷新麦克风(重试).
   */
  private Boolean retryRefreshMick;

}
