blob: ae7830cdaccb2808fdaa3067f58744321a0ab993 (
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
|
using System.Diagnostics.CodeAnalysis;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
namespace Spacebar.Models.Gateway;
public class ChannelStatusesRequest {
[JsonRequired]
[JsonPropertyName("guild_id")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public JsonValue GuildIdRawValue { get; set; } = null!;
[JsonIgnore]
public long? GuildId {
get => GuildIdRawValue.GetValueKind() == JsonValueKind.String ? GuildIdRawValue.GetValue<long>() : null;
[MemberNotNull] set => GuildIdRawValue = JsonValue.Create(value!);
}
[JsonIgnore]
public List<long>? GuildIds {
get => GuildIdRawValue.GetValueKind() == JsonValueKind.Array ? GuildIdRawValue.AsArray().Deserialize<List<long>>() : null;
[MemberNotNull] set => GuildIdRawValue = JsonValue.Create(value!)!;
}
}
public class ChannelInfoRequest : ChannelStatusesRequest {
[JsonPropertyName("fields")]
public required List<string> Fields { get; set; }
}
public class ChannelStatus {
[JsonPropertyName("id")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long ChannelId { get; set; }
[JsonPropertyName("status")]
public string Status { get; set; }
}
public class ChannelStatusesResponse {
[JsonPropertyName("guild_id")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long GuildId { get; set; }
[JsonPropertyName("channels")]
public List<ChannelStatus> Channels { get; set; }
}
public class ChannelInfo {
[JsonPropertyName("id")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public required long ChannelId { get; set; }
[JsonPropertyName("status")]
public string? Status { get; set; }
[JsonPropertyName("voice_start_time")]
public DateTimeOffset? VoiceStartTime { get; set; }
}
public class ChannelInfoResponse {
[JsonPropertyName("guild_id")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public long GuildId { get; set; }
[JsonPropertyName("channels")]
public List<ChannelInfo> Channels { get; set; }
}
|