summary refs log tree commit diff
path: root/extra/admin-api/Models/Spacebar.Models.Generic
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-05-08 22:20:41 +0200
committerRory& <root@rory.gay>2026-05-08 22:20:41 +0200
commita39a44319647772552bc587f096cd1a7ab3c8c5e (patch)
tree86cb2c379ae55ba5baa082ec0d68c00bd35e65c9 /extra/admin-api/Models/Spacebar.Models.Generic
parentCompliance: add user_id and user_settings to login response (diff)
downloadserver-ts-a39a44319647772552bc587f096cd1a7ab3c8c5e.tar.xz
Update CS models
Diffstat (limited to 'extra/admin-api/Models/Spacebar.Models.Generic')
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Channel.cs4
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Emoji.cs35
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Guild.cs133
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Role.cs62
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Sticker.cs38
5 files changed, 272 insertions, 0 deletions
diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Channel.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Channel.cs

index 857d2e78..01a91c64 100644 --- a/extra/admin-api/Models/Spacebar.Models.Generic/Channel.cs +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Channel.cs
@@ -2,6 +2,10 @@ using System.Text.Json.Serialization; namespace Spacebar.Models.Generic; +public class Channel { + +} + public class ChannelPermissionOverwrite { [JsonPropertyName("id")] public string Id { get; set; } diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Emoji.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Emoji.cs new file mode 100644
index 00000000..c47d2a78 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Emoji.cs
@@ -0,0 +1,35 @@ +using System.Text.Json.Serialization; + +namespace Spacebar.Models.Generic; + +public class Emoji { + [JsonPropertyName("id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long Id { get; set; } + + [JsonPropertyName("animated")] + public bool Animated { get; set; } + + [JsonPropertyName("available")] + public bool Available { get; set; } + + [JsonPropertyName("groups")] + public object? Groups { get; set; } // TODO: what is this? + + [JsonPropertyName("guild_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long GuildId { get; set; } + + [JsonPropertyName("managed")] + public bool Managed { get; set; } + + [JsonPropertyName("name")] + public required string Name { get; set; } + + [JsonPropertyName("require_colons")] + public bool RequireColons { get; set; } + + [JsonPropertyName("roles")] + public List<object?> Roles { get; set; } // TODO: what type was this again? + + [JsonPropertyName("user_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long UserId { get; set; } +} \ No newline at end of file diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Guild.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Guild.cs new file mode 100644
index 00000000..239fee5d --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Guild.cs
@@ -0,0 +1,133 @@ +using System.Diagnostics; +using System.Text.Json.Serialization; + +namespace Spacebar.Models.Generic; + +[DebuggerDisplay("{Id} ({Name})")] +public class Guild { + [JsonPropertyName("id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long Id { get; set; } + + [JsonPropertyName("afk_channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long? AfkChannelId { get; set; } + + [JsonPropertyName("afk_timeout")] + public int AfkTimeout { get; set; } + + [JsonPropertyName("banner")] + public string? Banner { get; set; } + + [JsonPropertyName("channels")] + public List<Channel> Channels { get; set; } + + [JsonPropertyName("default_message_notifications")] + public int DefaultMessageNotifications { get; set; } // TODO enum + + [JsonPropertyName("description")] + public string? Description { get; set; } + + [JsonPropertyName("discovery_splash")] + public string? DiscoverySplash { get; set; } + + [JsonPropertyName("emojis")] + public List<Emoji> Emojis { get; set; } + + [JsonPropertyName("explicit_content_filter")] + public int ExplicitContentFilter { get; set; } + + [JsonPropertyName("features")] + public List<string> Features { get; set; } + + [JsonPropertyName("guild_scheduled_events")] + public List<object> GuildScheduledEvents { get; set; } // TODO: implement + + [JsonPropertyName("icon")] + public string? Icon { get; set; } + + [JsonPropertyName("joined_at")] + public DateTimeOffset JoinedAt { get; set; } + + [JsonPropertyName("large")] + public bool Large { get; set; } + + [JsonPropertyName("max_members")] + public int MaxMembers { get; set; } + + [JsonPropertyName("max_presences")] + public int MaxPresences { get; set; } + + [JsonPropertyName("max_video_channel_users")] + public int MaxVideoChannelUsers { get; set; } + + [JsonPropertyName("member_count")] + public int MemberCount { get; set; } + + [JsonPropertyName("mfa_level")] + public int MfaLevel { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("nsfw_level")] + public int NsfwLevel { get; set; } + + [JsonPropertyName("owner_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long OwnerId { get; set; } + + [JsonPropertyName("preferred_locale")] + public string PreferredLocale { get; set; } + + [JsonPropertyName("premium_progress_bar_enabled")] + public bool? PremiumProgressBarEnabled { get; set; } + + [JsonPropertyName("premium_subscription_count")] + public int PremiumSubscriptionCount { get; set; } + + [JsonPropertyName("premium_tier")] + public int PremiumTier { get; set; } + + [JsonPropertyName("presences")] + public List<Presence> Presences { get; set; } // TODO: correct type? + + [JsonPropertyName("public_updates_channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? PublicUpdatesChannelId { get; set; } + + [JsonPropertyName("region")] + public string Region { get; set; } + + [JsonPropertyName("roles")] + public List<Role> Roles { get; set; } + + [JsonPropertyName("rules_channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? RulesChannelId { get; set; } + + [JsonPropertyName("splash")] + public string? Splash { get; set; } + + [JsonPropertyName("stickers")] + public List<Sticker> Stickers { get; set; } + + [JsonPropertyName("system_channel_flags")] + public int SystemChannelFlags { get; set; } //TODO enum + + [JsonPropertyName("system_channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? SystemChannelId { get; set; } + + [JsonPropertyName("threads")] + public List<Channel> Threads { get; set; } + + [JsonPropertyName("verification_level")] + public int VerificationLevel { get; set; } + + [JsonPropertyName("voice_states")] + public List<object> VoiceStates { get; set; } // TODO: models + + [JsonPropertyName("welcome_screen")] + public object WelcomeScreen { get; set; } // TODO: models + + [JsonPropertyName("widget_channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? WidgetChannelId { get; set; } + + [JsonPropertyName("widget_enabled")] + public bool WidgetEnabled { get; set; } +} \ No newline at end of file diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Role.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Role.cs new file mode 100644
index 00000000..6c49f85e --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Role.cs
@@ -0,0 +1,62 @@ +using System.Text.Json.Serialization; +using Spacebar.Models.Generic.Constants; + +namespace Spacebar.Models.Generic; + +public class Role { + [JsonPropertyName("id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long Id { get; set; } + + [JsonPropertyName("color"), Obsolete("See Colors instead")] + public int Color { get; set; } + + [JsonPropertyName("colors")] + public RoleColors Colors { get; set; } + + [JsonPropertyName("flags")] + public int Flags { get; set; } + + [JsonPropertyName("guild_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long GuildId { get; set; } + + [JsonPropertyName("hoist")] + public bool Hoist { get; set; } + + [JsonPropertyName("icon")] + public string Icon { get; set; } + + [JsonPropertyName("managed")] + public bool Managed { get; set; } + + [JsonPropertyName("mentionable")] + public bool Mentionable { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("permissions"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required ulong RawPermissions { get; set; } + + [JsonIgnore] + public Permissions Permissions { + get => (Permissions)RawPermissions; + set => RawPermissions = (ulong)value; + } + + [JsonPropertyName("position")] + public int Position { get; set; } + + [JsonPropertyName("unicode_emoji")] + public string UnicodeEmoji { get; set; } + + public class RoleColors { + [JsonPropertyName("primary_color")] + public required int PrimaryColor { get; set; } + + [JsonPropertyName("secondary_color")] + public int? SecondaryColor { get; set; } + + [JsonPropertyName("tertiary_color")] + public int? TertiaryColor { get; set; } + } +} \ No newline at end of file diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Sticker.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Sticker.cs new file mode 100644
index 00000000..28bf4feb --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Sticker.cs
@@ -0,0 +1,38 @@ +using System.Text.Json.Serialization; + +namespace Spacebar.Models.Generic; + +public class Sticker { + [JsonPropertyName("id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long Id { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("description")] + public string Description { get; set; } + + [JsonPropertyName("tags")] + public string Tags { get; set; } + + [JsonPropertyName("available")] + public bool Available { get; set; } + + [JsonPropertyName("type")] + public StickerType Type { get; set; } + + [JsonPropertyName("format_type")] + public StickerFormatType FormatType { get; set; } +} + +public enum StickerType { + Standard = 1, + Guild = 2 +} + +public enum StickerFormatType { + Png = 1, + Apng = 2, + Lottie = 3, + Gif = 4 +} \ No newline at end of file