package com.zhongshu.card.server.core.domain.mqtt;

import com.google.gson.JsonObject;
import com.zhongshu.card.client.type.ArtemisType;
import com.zhongshu.card.server.core.domain.base.SuperMain;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.checkerframework.common.aliasing.qual.NonLeaked;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * artemis 接收到的发送的消息
 *
 * @author TRX
 * @date 2024/6/25
 */
@Data
@Document
@AllArgsConstructor
@NoArgsConstructor
@NonLeaked
public class ArtemisMessage extends SuperMain {

    @Schema(description = "用户userId")
    private String userId;

    @Schema(description = "用户名称")
    private String userName;

    @Schema(description = "消息类型：接收 发送")
    private ArtemisType artemisType;

    @Schema(description = "消息ID")
    private String messageId;

    @Schema(description = "消息的topIc")
    private String topIc;

    @Schema(description = "关联设备ID")
    private String deviceId;

    @Schema(description = "关联设备名称")
    private String deviceName;

    @Schema(description = "消息类型")
    private JsonObject jsonObject;

    @Schema(description = "时间")
    private String timeStr;

    @Schema(description = "是否已响应")
    private Boolean isResponse = Boolean.FALSE;

    @Schema(description = "响应时间")
    private Long responseTime;

    @Schema(description = "响应时间Str")
    private String responseTimeStr;
}
