using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
///
/// gathering_notification on /mypage/refresh — slim "matching established?" notification flag for
/// gathering events. Single field carrying either an empty string (no match) or the localized
/// "matching established" message (active match).
///
/// **Distinct from **, which is what /mypage/index emits under the
/// gathering_info key — that DTO carries the viewer's full event participation state
/// (has_invite / is_entry). They share a topic ("gathering events") but solve different problems
/// and live at different wire keys; don't conflate them.
///
/// Consumed unconditionally at MyPageRefreshTask.cs:31:
/// jsonData["data"]["gathering_notification"]["matching_established_message"].ToString().
///
[MessagePackObject]
public class GatheringNotification
{
/// Empty string when no match — correct for fresh viewers and idle states. Prod sends "".
[JsonPropertyName("matching_established_message")]
[Key("matching_established_message")]
public string MatchingEstablishedMessage { get; set; } = string.Empty;
}