using MessagePack;
using System.Text.Json.Serialization;
using SVSim.EmulatedEntrypoint.Models.Dtos.Common.Guild;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.GuildChat;
/// Response for POST /guild_chat/messages.
[MessagePackObject]
public class GuildChatMessagesResponse
{
/// Card ids currently disabled for maintenance — client refreshes its global list.
[JsonPropertyName("maintenance_card_list"), Key("maintenance_card_list"),
JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public List MaintenanceCardList { get; set; } = new();
/// Users referenced by messages in this batch — deduplicated catalog.
[JsonPropertyName("users"), Key("users"),
JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public List Users { get; set; } = new();
/// Messages ordered oldest-to-newest.
[JsonPropertyName("chat_message"), Key("chat_message"),
JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public List ChatMessage { get; set; } = new();
/// Server-driven polling interval in seconds. Client uses this for the next poll.
[JsonPropertyName("wait_interval"), Key("wait_interval"),
JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public int WaitInterval { get; set; }
}