using System.Text.Json.Serialization; namespace Spacebar.Interop.Replication.Abstractions; public class ContentlessReplicationMessage { [JsonPropertyName("channel_id")] public string? ChannelId { get; set; } [JsonPropertyName("guild_id")] public string? GuildId { get; set; } [JsonPropertyName("user_id")] public string? UserId { get; set; } [JsonPropertyName("session_id")] public string? SessionId { get; set; } [JsonPropertyName("created_at")] public DateTime? CreatedAt { get; set; } [JsonPropertyName("event")] public string Event { get; set; } = null!; [JsonPropertyName("origin")] public string? Origin { get; set; } [JsonPropertyName("reconnect_delay")] public int? ReconnectDelay { get; set; } } public class ReplicationMessage : ContentlessReplicationMessage { [JsonPropertyName("data")] public TPayload Payload { get; set; } = default!; }