summary refs log tree commit diff
path: root/extra/admin-api/Models/Spacebar.Models.Generic/Guild.cs
blob: 239fee5df3a4384bf5084da6ca7b64f6179d025b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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; }
}