using MessagePack; using System.Text.Json.Serialization; using SVSim.EmulatedEntrypoint.Models.Dtos.Common; namespace SVSim.EmulatedEntrypoint.Models.Dtos.Guild; /// Response for POST /guild/join_request_list (leader/sub-leader view). [MessagePackObject] public class GuildJoinRequestListResponse { [JsonPropertyName("list"), Key("list")] public List Users { get; set; } = new(); } /// /// JoinRequest entry — UserInfoBase fields flat-spread + is_official_mark_displayed + request_time. /// Matches guild-join_request_list.md JoinRequest interface. /// [MessagePackObject] public class GuildJoinRequestEntryDto { [JsonPropertyName("viewer_id"), Key("viewer_id"), JsonConverter(typeof(StringifiedLongConverter))] public long ViewerId { get; set; } [JsonPropertyName("name"), Key("name")] public string Name { get; set; } = ""; [JsonPropertyName("emblem_id"), Key("emblem_id"), JsonConverter(typeof(StringifiedLongConverter))] public long EmblemId { get; set; } [JsonPropertyName("country_code"), Key("country_code")] public string CountryCode { get; set; } = ""; [JsonPropertyName("rank"), Key("rank"), JsonConverter(typeof(StringifiedIntConverter))] public int Rank { get; set; } [JsonPropertyName("degree_id"), Key("degree_id"), JsonConverter(typeof(StringifiedIntConverter))] public int DegreeId { get; set; } [JsonPropertyName("is_friend"), Key("is_friend")] public int? IsFriend { get; set; } [JsonPropertyName("is_friend_apply"), Key("is_friend_apply")] public int? IsFriendApply { get; set; } [JsonPropertyName("is_official_mark_displayed"), Key("is_official_mark_displayed")] public int IsOfficialMarkDisplayed { get; set; } /// Unix seconds when the request was submitted. Don't send millisecond timestamps. [JsonPropertyName("request_time"), Key("request_time")] public long RequestTime { get; set; } }