summary refs log tree commit diff
path: root/extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs')
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs
new file mode 100644

index 00000000..ba48649f --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Webhook.cs
@@ -0,0 +1,48 @@ +using System.Text.Json.Nodes; +using System.Text.Json.Serialization; + +namespace Spacebar.Models.Generic; + +public class Webhook { + [JsonPropertyName("id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public required long Id { get; set; } + + [JsonPropertyName("type")] + public WebhookType WebhookType { get; set; } + + [JsonPropertyName("guild_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? GuildId { get; set; } + + [JsonPropertyName("channel_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? ChannelId { get; set; } + + [JsonPropertyName("user")] + public PartialUser? User { get; set; } + + [JsonPropertyName("name")] + public string? Name { get; set; } + + [JsonPropertyName("avatar")] + public string? AvatarData { get; set; } + + [JsonPropertyName("token")] + public string? Token { get; set; } + + [JsonPropertyName("application_id"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + public long? ApplicationId { get; set; } + + [JsonPropertyName("source_guild")] + public JsonObject? SourceGuild { get; set; } // TODO type + + [JsonPropertyName("source_channel")] + public JsonObject? SourceChannel { get; set; } // TODO type + + [JsonPropertyName("url")] + public string? Url { get; set; } +} + +public enum WebhookType : byte { + Incomming = 1, + ChannelFollower = 2, + Application = 3 +} \ No newline at end of file