summary refs log tree commit diff
path: root/extra/admin-api/Models/Spacebar.Models.Db
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Models/Spacebar.Models.Db')
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Contexts/SpacebarDbContext.cs699
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Application.cs125
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ApplicationCommand.cs66
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Attachment.cs43
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/AuditLog.cs41
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/AutomodRule.cs52
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/BackupCode.cs31
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Badge.cs24
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Ban.cs42
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Category.cs27
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Channel.cs136
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ClientRelease.cs33
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/CloudAttachment.cs59
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Config.cs18
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectedAccount.cs61
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectionConfig.cs18
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/EmbedCache.cs21
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Emoji.cs50
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Guild.cs199
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/InstanceBan.cs47
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Invite.cs70
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Member.cs79
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Message.cs149
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Migration.cs21
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Note.cs33
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/RateLimit.cs27
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ReadState.cs45
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Recipient.cs32
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Relationship.cs36
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Role.cs66
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/SecurityKey.cs34
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/SecuritySetting.cs33
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Session.cs56
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Sticker.cs61
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/StickerPack.cs37
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Stream.cs35
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/StreamSession.cs38
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Team.cs34
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/TeamMember.cs38
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Template.cs54
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/User.cs234
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/UserSetting.cs117
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/UserSettingsProto.cs25
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/ValidRegistrationToken.cs21
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/VoiceState.cs66
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Models/Webhook.cs72
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/Spacebar.Models.Db.csproj14
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Db/deps.json362
48 files changed, 3681 insertions, 0 deletions
diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Contexts/SpacebarDbContext.cs b/extra/admin-api/Models/Spacebar.Models.Db/Contexts/SpacebarDbContext.cs
new file mode 100644

index 00000000..716079d0 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Contexts/SpacebarDbContext.cs
@@ -0,0 +1,699 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; +using Spacebar.Models.Db.Models; +using Stream = Spacebar.Models.Db.Models.Stream; + +namespace Spacebar.Models.Db.Contexts; + +public partial class SpacebarDbContext : DbContext +{ + public SpacebarDbContext(DbContextOptions<SpacebarDbContext> options) + : base(options) + { + } + + public virtual DbSet<Application> Applications { get; set; } + + public virtual DbSet<ApplicationCommand> ApplicationCommands { get; set; } + + public virtual DbSet<Attachment> Attachments { get; set; } + + public virtual DbSet<AuditLog> AuditLogs { get; set; } + + public virtual DbSet<AutomodRule> AutomodRules { get; set; } + + public virtual DbSet<BackupCode> BackupCodes { get; set; } + + public virtual DbSet<Badge> Badges { get; set; } + + public virtual DbSet<Ban> Bans { get; set; } + + public virtual DbSet<Category> Categories { get; set; } + + public virtual DbSet<Channel> Channels { get; set; } + + public virtual DbSet<ClientRelease> ClientReleases { get; set; } + + public virtual DbSet<CloudAttachment> CloudAttachments { get; set; } + + public virtual DbSet<Config> Configs { get; set; } + + public virtual DbSet<ConnectedAccount> ConnectedAccounts { get; set; } + + public virtual DbSet<ConnectionConfig> ConnectionConfigs { get; set; } + + public virtual DbSet<EmbedCache> EmbedCaches { get; set; } + + public virtual DbSet<Emoji> Emojis { get; set; } + + public virtual DbSet<Guild> Guilds { get; set; } + + public virtual DbSet<InstanceBan> InstanceBans { get; set; } + + public virtual DbSet<Invite> Invites { get; set; } + + public virtual DbSet<Member> Members { get; set; } + + public virtual DbSet<Message> Messages { get; set; } + + public virtual DbSet<Migration> Migrations { get; set; } + + public virtual DbSet<Note> Notes { get; set; } + + public virtual DbSet<RateLimit> RateLimits { get; set; } + + public virtual DbSet<ReadState> ReadStates { get; set; } + + public virtual DbSet<Recipient> Recipients { get; set; } + + public virtual DbSet<Relationship> Relationships { get; set; } + + public virtual DbSet<Role> Roles { get; set; } + + public virtual DbSet<SecurityKey> SecurityKeys { get; set; } + + public virtual DbSet<SecuritySetting> SecuritySettings { get; set; } + + public virtual DbSet<Session> Sessions { get; set; } + + public virtual DbSet<Sticker> Stickers { get; set; } + + public virtual DbSet<StickerPack> StickerPacks { get; set; } + + public virtual DbSet<Stream> Streams { get; set; } + + public virtual DbSet<StreamSession> StreamSessions { get; set; } + + public virtual DbSet<Team> Teams { get; set; } + + public virtual DbSet<TeamMember> TeamMembers { get; set; } + + public virtual DbSet<Template> Templates { get; set; } + + public virtual DbSet<User> Users { get; set; } + + public virtual DbSet<UserSetting> UserSettings { get; set; } + + public virtual DbSet<UserSettingsProto> UserSettingsProtos { get; set; } + + public virtual DbSet<ValidRegistrationToken> ValidRegistrationTokens { get; set; } + + public virtual DbSet<VoiceState> VoiceStates { get; set; } + + public virtual DbSet<Webhook> Webhooks { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity<Application>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_938c0a27255637bde919591888f"); + + entity.HasOne(d => d.BotUser).WithOne(p => p.ApplicationBotUser) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_2ce5a55796fe4c2f77ece57a647"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Applications).HasConstraintName("FK_e5bf78cdbbe9ba91062d74c5aba"); + + entity.HasOne(d => d.Owner).WithMany(p => p.ApplicationOwners) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_e57508958bf92b9d9d25231b5e8"); + + entity.HasOne(d => d.Team).WithMany(p => p.Applications) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_a36ed02953077f408d0f3ebc424"); + }); + + modelBuilder.Entity<ApplicationCommand>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_0f73c2f025989c407947e1f75fe"); + + entity.Property(e => e.DmPermission).HasDefaultValue(true); + entity.Property(e => e.Options).HasDefaultValueSql("'[]'::text"); + entity.Property(e => e.Type).HasDefaultValue(1); + entity.Property(e => e.Version).HasDefaultValueSql("'0'::character varying"); + }); + + modelBuilder.Entity<Attachment>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_5e1f050bcff31e3084a1d662412"); + + entity.HasOne(d => d.Message).WithMany(p => p.Attachments) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_623e10eec51ada466c5038979e3"); + }); + + modelBuilder.Entity<AuditLog>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_1bb179d048bbc581caa3b013439"); + + entity.HasOne(d => d.Target).WithMany(p => p.AuditLogTargets).HasConstraintName("FK_3cd01cd3ae7aab010310d96ac8e"); + + entity.HasOne(d => d.User).WithMany(p => p.AuditLogUsers).HasConstraintName("FK_bd2726fd31b35443f2245b93ba0"); + }); + + modelBuilder.Entity<AutomodRule>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_99789ae863507f5aed9e58d7866"); + + entity.HasOne(d => d.Creator).WithMany(p => p.AutomodRules) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_12d3d60b961393d310429c062b7"); + }); + + modelBuilder.Entity<BackupCode>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_34ab957382dbc57e8fb53f1638f"); + + entity.HasOne(d => d.User).WithMany(p => p.BackupCodes) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_70066ea80d2f4b871beda32633b"); + }); + + modelBuilder.Entity<Badge>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_8a651318b8de577e8e217676466"); + }); + + modelBuilder.Entity<Ban>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_a4d6f261bffa4615c62d756566a"); + + entity.HasOne(d => d.Executor).WithMany(p => p.BanExecutors).HasConstraintName("FK_07ad88c86d1f290d46748410d58"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Bans) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_9d3ab7dd180ebdd245cdb66ecad"); + + entity.HasOne(d => d.User).WithMany(p => p.BanUsers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_5999e8e449f80a236ff72023559"); + }); + + modelBuilder.Entity<Category>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_24dbc6126a28ff948da33e97d3b"); + + entity.Property(e => e.Id).ValueGeneratedNever(); + }); + + modelBuilder.Entity<Channel>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_bc603823f3f741359c2339389f9"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Channels) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_c253dafe5f3a03ec00cd8fb4581"); + + entity.HasOne(d => d.Owner).WithMany(p => p.Channels).HasConstraintName("FK_3873ed438575cce703ecff4fc7b"); + + entity.HasOne(d => d.Parent).WithMany(p => p.InverseParent).HasConstraintName("FK_3274522d14af40540b1a883fc80"); + }); + + modelBuilder.Entity<ClientRelease>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_4c4ea258342d2d6ba1be0a71a43"); + }); + + modelBuilder.Entity<CloudAttachment>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_5794827a3ee7c9318612dcb70c8"); + + entity.HasOne(d => d.Channel).WithMany(p => p.CloudAttachments) + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_998d5fe91008ba5b09e1322104c"); + + entity.HasOne(d => d.User).WithMany(p => p.CloudAttachments) + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_8bf8cc8767e48cb482ff644fce6"); + }); + + modelBuilder.Entity<Config>(entity => + { + entity.HasKey(e => e.Key).HasName("PK_26489c99ddbb4c91631ef5cc791"); + }); + + modelBuilder.Entity<ConnectedAccount>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_70416f1da0be645bb31da01c774"); + + entity.HasOne(d => d.User).WithMany(p => p.ConnectedAccounts) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_f47244225a6a1eac04a3463dd90"); + }); + + modelBuilder.Entity<ConnectionConfig>(entity => + { + entity.HasKey(e => e.Key).HasName("PK_bc0554f736ad71dde346549488a"); + }); + + modelBuilder.Entity<EmbedCache>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_0abb7581d4efc5a8b1361389c5e"); + }); + + modelBuilder.Entity<Emoji>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_9adb96a675f555c6169bad7ba62"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Emojis).HasConstraintName("FK_4b988e0db89d94cebcf07f598cc"); + + entity.HasOne(d => d.User).WithMany(p => p.Emojis).HasConstraintName("FK_fa7ddd5f9a214e28ce596548421"); + }); + + modelBuilder.Entity<Guild>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_e7e7f2a51bd6d96a9ac2aa560f9"); + + entity.HasOne(d => d.AfkChannel).WithMany(p => p.GuildAfkChannels).HasConstraintName("FK_f591a66b8019d87b0fe6c12dad6"); + + entity.HasOne(d => d.Owner).WithMany(p => p.Guilds).HasConstraintName("FK_fc1a451727e3643ca572a3bb394"); + + entity.HasOne(d => d.PublicUpdatesChannel).WithMany(p => p.GuildPublicUpdatesChannels).HasConstraintName("FK_8d450b016dc8bec35f36729e4b0"); + + entity.HasOne(d => d.RulesChannel).WithMany(p => p.GuildRulesChannels).HasConstraintName("FK_95828668aa333460582e0ca6396"); + + entity.HasOne(d => d.SystemChannel).WithMany(p => p.GuildSystemChannels).HasConstraintName("FK_cfc3d3ad260f8121c95b31a1fce"); + + entity.HasOne(d => d.Template).WithMany(p => p.Guilds).HasConstraintName("FK_e2a2f873a64a5cf62526de42325"); + + entity.HasOne(d => d.WidgetChannel).WithMany(p => p.GuildWidgetChannels).HasConstraintName("FK_9d1d665379eefde7876a17afa99"); + }); + + modelBuilder.Entity<InstanceBan>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_3aa6e80a6d325601054892b1340"); + + entity.Property(e => e.CreatedAt).HasDefaultValueSql("now()"); + + entity.HasOne(d => d.OriginInstanceBan).WithOne(p => p.InverseOriginInstanceBan) + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_0b02d18d0d830f160c921192a30"); + }); + + modelBuilder.Entity<Invite>(entity => + { + entity.HasKey(e => e.Code).HasName("PK_33fd8a248db1cd832baa8aa25bf"); + + entity.HasOne(d => d.Channel).WithMany(p => p.Invites) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_6a15b051fe5050aa00a4b9ff0f6"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Invites) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_3f4939aa1461e8af57fea3fb05d"); + + entity.HasOne(d => d.Inviter).WithMany(p => p.InviteInviters) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_15c35422032e0b22b4ada95f48f"); + + entity.HasOne(d => d.TargetUser).WithMany(p => p.InviteTargetUsers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_11a0d394f8fc649c19ce5f16b59"); + }); + + modelBuilder.Entity<Member>(entity => + { + entity.HasKey(e => e.Index).HasName("PK_b4a6b8c2478e5df990909c6cf6a"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Members).HasConstraintName("FK_16aceddd5b89825b8ed6029ad1c"); + + entity.HasOne(d => d.IdNavigation).WithMany(p => p.Members).HasConstraintName("FK_28b53062261b996d9c99fa12404"); + + entity.HasMany(d => d.Roles).WithMany(p => p.Indices) + .UsingEntity<Dictionary<string, object>>( + "MemberRole", + r => r.HasOne<Role>().WithMany() + .HasForeignKey("RoleId") + .HasConstraintName("FK_e9080e7a7997a0170026d5139c1"), + l => l.HasOne<Member>().WithMany() + .HasForeignKey("Index") + .HasConstraintName("FK_5d7ddc8a5f9c167f548625e772e"), + j => + { + j.HasKey("Index", "RoleId").HasName("PK_951c1d72a0fd1da8760b4a1fd66"); + j.ToTable("member_roles"); + j.HasIndex(new[] { "Index" }, "IDX_5d7ddc8a5f9c167f548625e772"); + j.HasIndex(new[] { "RoleId" }, "IDX_e9080e7a7997a0170026d5139c"); + j.IndexerProperty<int>("Index").HasColumnName("index"); + j.IndexerProperty<string>("RoleId") + .HasColumnType("character varying") + .HasColumnName("role_id"); + }); + }); + + modelBuilder.Entity<Message>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_18325f38ae6de43878487eff986"); + + entity.Property(e => e.MessageSnapshots).HasDefaultValueSql("'[]'::text"); + entity.Property(e => e.Timestamp).HasDefaultValueSql("now()"); + + entity.HasOne(d => d.Application).WithMany(p => p.Messages).HasConstraintName("FK_5d3ec1cb962de6488637fd779d6"); + + entity.HasOne(d => d.Author).WithMany(p => p.MessageAuthors) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_05535bc695e9f7ee104616459d3"); + + entity.HasOne(d => d.Channel).WithMany(p => p.Messages) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_86b9109b155eb70c0a2ca3b4b6d"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Messages) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_b193588441b085352a4c0109423"); + + entity.HasOne(d => d.Member).WithMany(p => p.MessageMembers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_b0525304f2262b7014245351c76"); + + entity.HasOne(d => d.MessageReferenceNavigation).WithMany(p => p.InverseMessageReferenceNavigation) + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_61a92bb65b302a76d9c1fcd3174"); + + entity.HasOne(d => d.Webhook).WithMany(p => p.Messages).HasConstraintName("FK_f83c04bcf1df4e5c0e7a52ed348"); + + entity.HasMany(d => d.Channels).WithMany(p => p.MessagesNavigation) + .UsingEntity<Dictionary<string, object>>( + "MessageChannelMention", + r => r.HasOne<Channel>().WithMany() + .HasForeignKey("ChannelsId") + .HasConstraintName("FK_bdb8c09e1464cabf62105bf4b9d"), + l => l.HasOne<Message>().WithMany() + .HasForeignKey("MessagesId") + .HasConstraintName("FK_2a27102ecd1d81b4582a4360921"), + j => + { + j.HasKey("MessagesId", "ChannelsId").HasName("PK_85cb45351497cd9d06a79ced65e"); + j.ToTable("message_channel_mentions"); + j.HasIndex(new[] { "MessagesId" }, "IDX_2a27102ecd1d81b4582a436092"); + j.HasIndex(new[] { "ChannelsId" }, "IDX_bdb8c09e1464cabf62105bf4b9"); + j.IndexerProperty<string>("MessagesId") + .HasColumnType("character varying") + .HasColumnName("messagesId"); + j.IndexerProperty<string>("ChannelsId") + .HasColumnType("character varying") + .HasColumnName("channelsId"); + }); + + entity.HasMany(d => d.Roles).WithMany(p => p.Messages) + .UsingEntity<Dictionary<string, object>>( + "MessageRoleMention", + r => r.HasOne<Role>().WithMany() + .HasForeignKey("RolesId") + .HasConstraintName("FK_29d63eb1a458200851bc37d074b"), + l => l.HasOne<Message>().WithMany() + .HasForeignKey("MessagesId") + .HasConstraintName("FK_a8242cf535337a490b0feaea0b4"), + j => + { + j.HasKey("MessagesId", "RolesId").HasName("PK_74dba92cc300452a6e14b83ed44"); + j.ToTable("message_role_mentions"); + j.HasIndex(new[] { "RolesId" }, "IDX_29d63eb1a458200851bc37d074"); + j.HasIndex(new[] { "MessagesId" }, "IDX_a8242cf535337a490b0feaea0b"); + j.IndexerProperty<string>("MessagesId") + .HasColumnType("character varying") + .HasColumnName("messagesId"); + j.IndexerProperty<string>("RolesId") + .HasColumnType("character varying") + .HasColumnName("rolesId"); + }); + + entity.HasMany(d => d.Stickers).WithMany(p => p.Messages) + .UsingEntity<Dictionary<string, object>>( + "MessageSticker", + r => r.HasOne<Sticker>().WithMany() + .HasForeignKey("StickersId") + .HasConstraintName("FK_e22a70819d07659c7a71c112a1f"), + l => l.HasOne<Message>().WithMany() + .HasForeignKey("MessagesId") + .HasConstraintName("FK_40bb6f23e7cc133292e92829d28"), + j => + { + j.HasKey("MessagesId", "StickersId").HasName("PK_ed820c4093d0b8cd1d2bcf66087"); + j.ToTable("message_stickers"); + j.HasIndex(new[] { "MessagesId" }, "IDX_40bb6f23e7cc133292e92829d2"); + j.HasIndex(new[] { "StickersId" }, "IDX_e22a70819d07659c7a71c112a1"); + j.IndexerProperty<string>("MessagesId") + .HasColumnType("character varying") + .HasColumnName("messagesId"); + j.IndexerProperty<string>("StickersId") + .HasColumnType("character varying") + .HasColumnName("stickersId"); + }); + + entity.HasMany(d => d.Users).WithMany(p => p.Messages) + .UsingEntity<Dictionary<string, object>>( + "MessageUserMention", + r => r.HasOne<User>().WithMany() + .HasForeignKey("UsersId") + .HasConstraintName("FK_b831eb18ceebd28976239b1e2f8"), + l => l.HasOne<Message>().WithMany() + .HasForeignKey("MessagesId") + .HasConstraintName("FK_a343387fc560ef378760681c236"), + j => + { + j.HasKey("MessagesId", "UsersId").HasName("PK_9b9b6e245ad47a48dbd7605d4fb"); + j.ToTable("message_user_mentions"); + j.HasIndex(new[] { "MessagesId" }, "IDX_a343387fc560ef378760681c23"); + j.HasIndex(new[] { "UsersId" }, "IDX_b831eb18ceebd28976239b1e2f"); + j.IndexerProperty<string>("MessagesId") + .HasColumnType("character varying") + .HasColumnName("messagesId"); + j.IndexerProperty<string>("UsersId") + .HasColumnType("character varying") + .HasColumnName("usersId"); + }); + }); + + modelBuilder.Entity<Migration>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_8c82d7f526340ab734260ea46be"); + }); + + modelBuilder.Entity<Note>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_af6206538ea96c4e77e9f400c3d"); + + entity.HasOne(d => d.Owner).WithMany(p => p.NoteOwners) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_f9e103f8ae67cb1787063597925"); + + entity.HasOne(d => d.Target).WithMany(p => p.NoteTargets) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_23e08e5b4481711d573e1abecdc"); + }); + + modelBuilder.Entity<RateLimit>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_3b4449f1f5fc167d921ee619f65"); + }); + + modelBuilder.Entity<ReadState>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_e6956a804978f01b713b1ed58e2"); + + entity.HasOne(d => d.Channel).WithMany(p => p.ReadStates).HasConstraintName("FK_40da2fca4e0eaf7a23b5bfc5d34"); + + entity.HasOne(d => d.User).WithMany(p => p.ReadStates).HasConstraintName("FK_195f92e4dd1254a4e348c043763"); + }); + + modelBuilder.Entity<Recipient>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_de8fc5a9c364568f294798fe1e9"); + + entity.HasOne(d => d.Channel).WithMany(p => p.Recipients).HasConstraintName("FK_2f18ee1ba667f233ae86c0ea60e"); + + entity.HasOne(d => d.User).WithMany(p => p.Recipients).HasConstraintName("FK_6157e8b6ba4e6e3089616481fe2"); + }); + + modelBuilder.Entity<Relationship>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_ba20e2f5cf487408e08e4dcecaf"); + + entity.HasOne(d => d.From).WithMany(p => p.RelationshipFroms).HasConstraintName("FK_9af4194bab1250b1c584ae4f1d7"); + + entity.HasOne(d => d.To).WithMany(p => p.RelationshipTos).HasConstraintName("FK_9c7f6b98a9843b76dce1b0c878b"); + }); + + modelBuilder.Entity<Role>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_c1433d71a4838793a49dcad46ab"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Roles).HasConstraintName("FK_c32c1ab1c4dc7dcb0278c4b1b8b"); + }); + + modelBuilder.Entity<SecurityKey>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_6e95cdd91779e7cca06d1fff89c"); + + entity.HasOne(d => d.User).WithMany(p => p.SecurityKeys) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_24c97d0771cafedce6d7163eaad"); + }); + + modelBuilder.Entity<SecuritySetting>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_4aec436cf81177ae97a1bcec3c7"); + }); + + modelBuilder.Entity<Session>(entity => + { + entity.HasKey(e => e.SessionId).HasName("PK_9340188c93349808f10d1db74a8"); + + entity.Property(e => e.Activities).HasDefaultValueSql("'[]'::text"); + entity.Property(e => e.CreatedAt).HasDefaultValueSql("now()"); + + entity.HasOne(d => d.User).WithMany(p => p.Sessions).HasConstraintName("FK_085d540d9f418cfbdc7bd55bb19"); + }); + + modelBuilder.Entity<Sticker>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_e1dafa4063a5532645cc2810374"); + + entity.HasOne(d => d.Guild).WithMany(p => p.Stickers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_193d551d852aca5347ef5c9f205"); + + entity.HasOne(d => d.Pack).WithMany(p => p.Stickers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_e7cfa5cefa6661b3fb8fda8ce69"); + + entity.HasOne(d => d.User).WithMany(p => p.Stickers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_8f4ee73f2bb2325ff980502e158"); + }); + + modelBuilder.Entity<StickerPack>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_a27381efea0f876f5d3233af655"); + + entity.HasOne(d => d.CoverStickerId1Navigation).WithMany(p => p.StickerPacks).HasConstraintName("FK_448fafba4355ee1c837bbc865f1"); + }); + + modelBuilder.Entity<Stream>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_40440b6f569ebc02bc71c25c499"); + + entity.HasOne(d => d.Channel).WithMany(p => p.Streams).HasConstraintName("FK_5101f0cded27ff0aae78fc4eed7"); + + entity.HasOne(d => d.Owner).WithMany(p => p.Streams).HasConstraintName("FK_1b566f9b54d1cda271da53ac82f"); + }); + + modelBuilder.Entity<StreamSession>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_49bdc3f66394c12478f8371c546"); + + entity.HasOne(d => d.Stream).WithMany(p => p.StreamSessions).HasConstraintName("FK_8b5a028a34dae9ee54af37c9c32"); + + entity.HasOne(d => d.User).WithMany(p => p.StreamSessions).HasConstraintName("FK_13ae5c29aff4d0890c54179511a"); + }); + + modelBuilder.Entity<Team>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_7e5523774a38b08a6236d322403"); + + entity.HasOne(d => d.OwnerUser).WithMany(p => p.Teams).HasConstraintName("FK_13f00abf7cb6096c43ecaf8c108"); + }); + + modelBuilder.Entity<TeamMember>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_ca3eae89dcf20c9fd95bf7460aa"); + + entity.HasOne(d => d.Team).WithMany(p => p.TeamMembers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_fdad7d5768277e60c40e01cdcea"); + + entity.HasOne(d => d.User).WithMany(p => p.TeamMembers) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_c2bf4967c8c2a6b845dadfbf3d4"); + }); + + modelBuilder.Entity<Template>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_515948649ce0bbbe391de702ae5"); + + entity.HasOne(d => d.Creator).WithMany(p => p.Templates).HasConstraintName("FK_d7374b7f8f5fbfdececa4fb62e1"); + + entity.HasOne(d => d.SourceGuild).WithMany(p => p.Templates) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_445d00eaaea0e60a017a5ed0c11"); + }); + + modelBuilder.Entity<User>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_a3ffb1c0c8416b9fc6f907b7433"); + + entity.HasOne(d => d.SettingsIndexNavigation).WithOne(p => p.User).HasConstraintName("FK_0c14beb78d8c5ccba66072adbc7"); + }); + + modelBuilder.Entity<UserSetting>(entity => + { + entity.HasKey(e => e.Index).HasName("PK_e81f8bb92802737337d35c00981"); + }); + + modelBuilder.Entity<UserSettingsProto>(entity => + { + entity.HasKey(e => e.UserId).HasName("PK_8ff3d1961a48b693810c9f99853"); + + entity.HasOne(d => d.User).WithOne(p => p.UserSettingsProto) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_8ff3d1961a48b693810c9f99853"); + }); + + modelBuilder.Entity<ValidRegistrationToken>(entity => + { + entity.HasKey(e => e.Token).HasName("PK_e0f5c8e3fcefe3134a092c50485"); + }); + + modelBuilder.Entity<VoiceState>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_ada09a50c134fad1369b510e3ce"); + + entity.HasOne(d => d.Channel).WithMany(p => p.VoiceStates) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_9f8d389866b40b6657edd026dd4"); + + entity.HasOne(d => d.Guild).WithMany(p => p.VoiceStates) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_03779ef216d4b0358470d9cb748"); + + entity.HasOne(d => d.User).WithMany(p => p.VoiceStates) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_5fe1d5f931a67e85039c640001b"); + }); + + modelBuilder.Entity<Webhook>(entity => + { + entity.HasKey(e => e.Id).HasName("PK_9e8795cfc899ab7bdaa831e8527"); + + entity.HasOne(d => d.Application).WithMany(p => p.Webhooks) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_c3e5305461931763b56aa905f1c"); + + entity.HasOne(d => d.Channel).WithMany(p => p.WebhookChannels) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_df528cf77e82f8032230e7e37d8"); + + entity.HasOne(d => d.Guild).WithMany(p => p.WebhookGuilds) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_487a7af59d189f744fe394368fc"); + + entity.HasOne(d => d.SourceChannel).WithMany(p => p.WebhookSourceChannels) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_4495b7032a33c6b8b605d030398"); + + entity.HasOne(d => d.SourceGuild).WithMany(p => p.WebhookSourceGuilds) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_3a285f4f49c40e0706d3018bc9f"); + + entity.HasOne(d => d.User).WithMany(p => p.Webhooks) + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_0d523f6f997c86e052c49b1455f"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Application.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Application.cs new file mode 100644
index 00000000..bb9661d0 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Application.cs
@@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("applications")] +[Index("BotUserId", Name = "REL_2ce5a55796fe4c2f77ece57a64", IsUnique = true)] +public partial class Application +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("icon", TypeName = "character varying")] + public string? Icon { get; set; } + + [Column("description", TypeName = "character varying")] + public string? Description { get; set; } + + [Column("summary", TypeName = "character varying")] + public string? Summary { get; set; } + + [Column("type")] + public string? Type { get; set; } + + [Column("hook")] + public bool Hook { get; set; } + + [Column("bot_public")] + public bool BotPublic { get; set; } + + [Column("bot_require_code_grant")] + public bool BotRequireCodeGrant { get; set; } + + [Column("verify_key", TypeName = "character varying")] + public string VerifyKey { get; set; } = null!; + + [Column("flags")] + public int Flags { get; set; } + + [Column("redirect_uris")] + public string? RedirectUris { get; set; } + + [Column("rpc_application_state")] + public int? RpcApplicationState { get; set; } + + [Column("store_application_state")] + public int? StoreApplicationState { get; set; } + + [Column("verification_state")] + public int? VerificationState { get; set; } + + [Column("interactions_endpoint_url", TypeName = "character varying")] + public string? InteractionsEndpointUrl { get; set; } + + [Column("integration_public")] + public bool? IntegrationPublic { get; set; } + + [Column("integration_require_code_grant")] + public bool? IntegrationRequireCodeGrant { get; set; } + + [Column("discoverability_state")] + public int? DiscoverabilityState { get; set; } + + [Column("discovery_eligibility_flags")] + public int? DiscoveryEligibilityFlags { get; set; } + + [Column("tags")] + public string? Tags { get; set; } + + [Column("cover_image", TypeName = "character varying")] + public string? CoverImage { get; set; } + + [Column("install_params")] + public string? InstallParams { get; set; } + + [Column("terms_of_service_url", TypeName = "character varying")] + public string? TermsOfServiceUrl { get; set; } + + [Column("privacy_policy_url", TypeName = "character varying")] + public string? PrivacyPolicyUrl { get; set; } + + [Column("owner_id", TypeName = "character varying")] + public string? OwnerId { get; set; } + + [Column("bot_user_id", TypeName = "character varying")] + public string? BotUserId { get; set; } + + [Column("team_id", TypeName = "character varying")] + public string? TeamId { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("custom_install_url", TypeName = "character varying")] + public string? CustomInstallUrl { get; set; } + + [ForeignKey("BotUserId")] + [InverseProperty("ApplicationBotUser")] + public virtual User? BotUser { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Applications")] + public virtual Guild? Guild { get; set; } + + [InverseProperty("Application")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); + + [ForeignKey("OwnerId")] + [InverseProperty("ApplicationOwners")] + public virtual User? Owner { get; set; } + + [ForeignKey("TeamId")] + [InverseProperty("Applications")] + public virtual Team? Team { get; set; } + + [InverseProperty("Application")] + public virtual ICollection<Webhook> Webhooks { get; set; } = new List<Webhook>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ApplicationCommand.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ApplicationCommand.cs new file mode 100644
index 00000000..bad2fd9e --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ApplicationCommand.cs
@@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("application_commands")] +public partial class ApplicationCommand +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("type")] + public int Type { get; set; } + + [Column("application_id", TypeName = "character varying")] + public string ApplicationId { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("name_localizations")] + public string? NameLocalizations { get; set; } + + [Column("description", TypeName = "character varying")] + public string Description { get; set; } = null!; + + [Column("description_localizations")] + public string? DescriptionLocalizations { get; set; } + + [Column("options")] + public string Options { get; set; } = null!; + + [Column("default_member_permissions", TypeName = "character varying")] + public string? DefaultMemberPermissions { get; set; } + + [Column("dm_permission")] + public bool DmPermission { get; set; } + + [Column("permissions")] + public string? Permissions { get; set; } + + [Column("nsfw")] + public bool Nsfw { get; set; } + + [Column("integration_types")] + public string? IntegrationTypes { get; set; } + + [Column("global_popularity_rank")] + public int GlobalPopularityRank { get; set; } + + [Column("contexts")] + public string? Contexts { get; set; } + + [Column("version", TypeName = "character varying")] + public string Version { get; set; } = null!; + + [Column("handler")] + public int Handler { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Attachment.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Attachment.cs new file mode 100644
index 00000000..7cff9482 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Attachment.cs
@@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("attachments")] +public partial class Attachment +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("filename", TypeName = "character varying")] + public string Filename { get; set; } = null!; + + [Column("size")] + public int Size { get; set; } + + [Column("url", TypeName = "character varying")] + public string Url { get; set; } = null!; + + [Column("proxy_url", TypeName = "character varying")] + public string ProxyUrl { get; set; } = null!; + + [Column("height")] + public int? Height { get; set; } + + [Column("width")] + public int? Width { get; set; } + + [Column("content_type", TypeName = "character varying")] + public string? ContentType { get; set; } + + [Column("message_id", TypeName = "character varying")] + public string? MessageId { get; set; } + + [ForeignKey("MessageId")] + [InverseProperty("Attachments")] + public virtual Message? Message { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/AuditLog.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/AuditLog.cs new file mode 100644
index 00000000..68bcf589 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/AuditLog.cs
@@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("audit_logs")] +public partial class AuditLog +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("action_type")] + public int ActionType { get; set; } + + [Column("options")] + public string? Options { get; set; } + + [Column("changes")] + public string Changes { get; set; } = null!; + + [Column("reason", TypeName = "character varying")] + public string? Reason { get; set; } + + [Column("target_id", TypeName = "character varying")] + public string? TargetId { get; set; } + + [ForeignKey("TargetId")] + [InverseProperty("AuditLogTargets")] + public virtual User? Target { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("AuditLogUsers")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/AutomodRule.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/AutomodRule.cs new file mode 100644
index 00000000..e0da822b --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/AutomodRule.cs
@@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("automod_rules")] +public partial class AutomodRule +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("enabled")] + public bool Enabled { get; set; } + + [Column("event_type")] + public int EventType { get; set; } + + [Column("exempt_channels")] + public string ExemptChannels { get; set; } = null!; + + [Column("exempt_roles")] + public string ExemptRoles { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string GuildId { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("position")] + public int Position { get; set; } + + [Column("trigger_type")] + public int TriggerType { get; set; } + + [Column("trigger_metadata")] + public string? TriggerMetadata { get; set; } + + [Column("actions")] + public string Actions { get; set; } = null!; + + [Column("creator_id", TypeName = "character varying")] + public string? CreatorId { get; set; } + + [ForeignKey("CreatorId")] + [InverseProperty("AutomodRules")] + public virtual User? Creator { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/BackupCode.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/BackupCode.cs new file mode 100644
index 00000000..57933360 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/BackupCode.cs
@@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("backup_codes")] +public partial class BackupCode +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("code", TypeName = "character varying")] + public string Code { get; set; } = null!; + + [Column("consumed")] + public bool Consumed { get; set; } + + [Column("expired")] + public bool Expired { get; set; } + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("BackupCodes")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Badge.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Badge.cs new file mode 100644
index 00000000..e92ddd45 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Badge.cs
@@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("badges")] +public partial class Badge +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("description", TypeName = "character varying")] + public string Description { get; set; } = null!; + + [Column("icon", TypeName = "character varying")] + public string Icon { get; set; } = null!; + + [Column("link", TypeName = "character varying")] + public string? Link { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Ban.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Ban.cs new file mode 100644
index 00000000..634dad13 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Ban.cs
@@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("bans")] +public partial class Ban +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("executor_id", TypeName = "character varying")] + public string? ExecutorId { get; set; } + + [Column("ip", TypeName = "character varying")] + public string? Ip { get; set; } + + [Column("reason", TypeName = "character varying")] + public string? Reason { get; set; } + + [ForeignKey("ExecutorId")] + [InverseProperty("BanExecutors")] + public virtual User? Executor { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Bans")] + public virtual Guild? Guild { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("BanUsers")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Category.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Category.cs new file mode 100644
index 00000000..accd6c20 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Category.cs
@@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("categories")] +public partial class Category +{ + [Key] + [Column("id")] + public int Id { get; set; } + + [Column("name", TypeName = "character varying")] + public string? Name { get; set; } + + [Column("localizations")] + public string Localizations { get; set; } = null!; + + [Column("is_primary")] + public bool? IsPrimary { get; set; } + + [Column("icon", TypeName = "character varying")] + public string? Icon { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Channel.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Channel.cs new file mode 100644
index 00000000..057a9a32 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Channel.cs
@@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("channels")] +public partial class Channel +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("name", TypeName = "character varying")] + public string? Name { get; set; } + + [Column("icon")] + public string? Icon { get; set; } + + [Column("type")] + public int Type { get; set; } + + [Column("last_message_id", TypeName = "character varying")] + public string? LastMessageId { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("parent_id", TypeName = "character varying")] + public string? ParentId { get; set; } + + [Column("owner_id", TypeName = "character varying")] + public string? OwnerId { get; set; } + + [Column("last_pin_timestamp")] + public int? LastPinTimestamp { get; set; } + + [Column("default_auto_archive_duration")] + public int? DefaultAutoArchiveDuration { get; set; } + + [Column("permission_overwrites")] + public string? PermissionOverwrites { get; set; } + + [Column("video_quality_mode")] + public int? VideoQualityMode { get; set; } + + [Column("bitrate")] + public int? Bitrate { get; set; } + + [Column("user_limit")] + public int? UserLimit { get; set; } + + [Column("nsfw")] + public bool Nsfw { get; set; } + + [Column("rate_limit_per_user")] + public int? RateLimitPerUser { get; set; } + + [Column("topic", TypeName = "character varying")] + public string? Topic { get; set; } + + [Column("retention_policy_id", TypeName = "character varying")] + public string? RetentionPolicyId { get; set; } + + [Column("flags")] + public int Flags { get; set; } + + [Column("default_thread_rate_limit_per_user")] + public int? DefaultThreadRateLimitPerUser { get; set; } + + [InverseProperty("Channel")] + public virtual ICollection<CloudAttachment> CloudAttachments { get; set; } = new List<CloudAttachment>(); + + [ForeignKey("GuildId")] + [InverseProperty("Channels")] + public virtual Guild? Guild { get; set; } + + [InverseProperty("AfkChannel")] + public virtual ICollection<Guild> GuildAfkChannels { get; set; } = new List<Guild>(); + + [InverseProperty("PublicUpdatesChannel")] + public virtual ICollection<Guild> GuildPublicUpdatesChannels { get; set; } = new List<Guild>(); + + [InverseProperty("RulesChannel")] + public virtual ICollection<Guild> GuildRulesChannels { get; set; } = new List<Guild>(); + + [InverseProperty("SystemChannel")] + public virtual ICollection<Guild> GuildSystemChannels { get; set; } = new List<Guild>(); + + [InverseProperty("WidgetChannel")] + public virtual ICollection<Guild> GuildWidgetChannels { get; set; } = new List<Guild>(); + + [InverseProperty("Parent")] + public virtual ICollection<Channel> InverseParent { get; set; } = new List<Channel>(); + + [InverseProperty("Channel")] + public virtual ICollection<Invite> Invites { get; set; } = new List<Invite>(); + + [InverseProperty("Channel")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); + + [ForeignKey("OwnerId")] + [InverseProperty("Channels")] + public virtual User? Owner { get; set; } + + [ForeignKey("ParentId")] + [InverseProperty("InverseParent")] + public virtual Channel? Parent { get; set; } + + [InverseProperty("Channel")] + public virtual ICollection<ReadState> ReadStates { get; set; } = new List<ReadState>(); + + [InverseProperty("Channel")] + public virtual ICollection<Recipient> Recipients { get; set; } = new List<Recipient>(); + + [InverseProperty("Channel")] + public virtual ICollection<Stream> Streams { get; set; } = new List<Stream>(); + + [InverseProperty("Channel")] + public virtual ICollection<VoiceState> VoiceStates { get; set; } = new List<VoiceState>(); + + [InverseProperty("Channel")] + public virtual ICollection<Webhook> WebhookChannels { get; set; } = new List<Webhook>(); + + [InverseProperty("SourceChannel")] + public virtual ICollection<Webhook> WebhookSourceChannels { get; set; } = new List<Webhook>(); + + [ForeignKey("ChannelsId")] + [InverseProperty("Channels")] + public virtual ICollection<Message> MessagesNavigation { get; set; } = new List<Message>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ClientRelease.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ClientRelease.cs new file mode 100644
index 00000000..ad4befb9 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ClientRelease.cs
@@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("client_release")] +public partial class ClientRelease +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("pub_date", TypeName = "timestamp without time zone")] + public DateTime PubDate { get; set; } + + [Column("url", TypeName = "character varying")] + public string Url { get; set; } = null!; + + [Column("platform", TypeName = "character varying")] + public string Platform { get; set; } = null!; + + [Column("enabled")] + public bool Enabled { get; set; } + + [Column("notes", TypeName = "character varying")] + public string? Notes { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/CloudAttachment.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/CloudAttachment.cs new file mode 100644
index 00000000..3b780604 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/CloudAttachment.cs
@@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("cloud_attachments")] +public partial class CloudAttachment +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("upload_filename", TypeName = "character varying")] + public string UploadFilename { get; set; } = null!; + + [Column("user_attachment_id", TypeName = "character varying")] + public string? UserAttachmentId { get; set; } + + [Column("user_filename", TypeName = "character varying")] + public string UserFilename { get; set; } = null!; + + [Column("user_file_size")] + public int? UserFileSize { get; set; } + + [Column("user_original_content_type", TypeName = "character varying")] + public string? UserOriginalContentType { get; set; } + + [Column("user_is_clip")] + public bool? UserIsClip { get; set; } + + [Column("size")] + public int? Size { get; set; } + + [Column("height")] + public int? Height { get; set; } + + [Column("width")] + public int? Width { get; set; } + + [Column("content_type", TypeName = "character varying")] + public string? ContentType { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("CloudAttachments")] + public virtual Channel? Channel { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("CloudAttachments")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Config.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Config.cs new file mode 100644
index 00000000..31016c6a --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Config.cs
@@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("config")] +public partial class Config +{ + [Key] + [Column("key", TypeName = "character varying")] + public string Key { get; set; } = null!; + + [Column("value")] + public string? Value { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectedAccount.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectedAccount.cs new file mode 100644
index 00000000..977797b7 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectedAccount.cs
@@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("connected_accounts")] +public partial class ConnectedAccount +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("external_id", TypeName = "character varying")] + public string ExternalId { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("friend_sync")] + public bool FriendSync { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("revoked")] + public bool Revoked { get; set; } + + [Column("show_activity")] + public int ShowActivity { get; set; } + + [Column("type", TypeName = "character varying")] + public string Type { get; set; } = null!; + + [Column("verified")] + public bool Verified { get; set; } + + [Column("visibility")] + public int Visibility { get; set; } + + [Column("integrations")] + public string Integrations { get; set; } = null!; + + [Column("metadata")] + public string? Metadata { get; set; } + + [Column("metadata_visibility")] + public int MetadataVisibility { get; set; } + + [Column("two_way_link")] + public bool TwoWayLink { get; set; } + + [Column("token_data")] + public string? TokenData { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("ConnectedAccounts")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectionConfig.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectionConfig.cs new file mode 100644
index 00000000..0bbd0dd9 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ConnectionConfig.cs
@@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("connection_config")] +public partial class ConnectionConfig +{ + [Key] + [Column("key", TypeName = "character varying")] + public string Key { get; set; } = null!; + + [Column("value")] + public string? Value { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/EmbedCache.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/EmbedCache.cs new file mode 100644
index 00000000..3ae84bc1 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/EmbedCache.cs
@@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("embed_cache")] +public partial class EmbedCache +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("url", TypeName = "character varying")] + public string Url { get; set; } = null!; + + [Column("embed")] + public string Embed { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Emoji.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Emoji.cs new file mode 100644
index 00000000..faa52249 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Emoji.cs
@@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("emojis")] +public partial class Emoji +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("animated")] + public bool Animated { get; set; } + + [Column("available")] + public bool Available { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string GuildId { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("managed")] + public bool Managed { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("require_colons")] + public bool RequireColons { get; set; } + + [Column("roles")] + public string Roles { get; set; } = null!; + + [Column("groups")] + public string? Groups { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Emojis")] + public virtual Guild Guild { get; set; } = null!; + + [ForeignKey("UserId")] + [InverseProperty("Emojis")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Guild.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Guild.cs new file mode 100644
index 00000000..f4729ae1 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Guild.cs
@@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("guilds")] +public partial class Guild +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("afk_channel_id", TypeName = "character varying")] + public string? AfkChannelId { get; set; } + + [Column("afk_timeout")] + public int? AfkTimeout { get; set; } + + [Column("banner", TypeName = "character varying")] + public string? Banner { get; set; } + + [Column("default_message_notifications")] + public int? DefaultMessageNotifications { get; set; } + + [Column("description", TypeName = "character varying")] + public string? Description { get; set; } + + [Column("discovery_splash", TypeName = "character varying")] + public string? DiscoverySplash { get; set; } + + [Column("explicit_content_filter")] + public int? ExplicitContentFilter { get; set; } + + [Column("features")] + public string Features { get; set; } = null!; + + [Column("primary_category_id", TypeName = "character varying")] + public string? PrimaryCategoryId { get; set; } + + [Column("icon", TypeName = "character varying")] + public string? Icon { get; set; } + + [Column("large")] + public bool Large { get; set; } + + [Column("max_members")] + public int? MaxMembers { get; set; } + + [Column("max_presences")] + public int? MaxPresences { get; set; } + + [Column("max_video_channel_users")] + public int? MaxVideoChannelUsers { get; set; } + + [Column("member_count")] + public int? MemberCount { get; set; } + + [Column("presence_count")] + public int? PresenceCount { get; set; } + + [Column("template_id", TypeName = "character varying")] + public string? TemplateId { get; set; } + + [Column("mfa_level")] + public int? MfaLevel { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("owner_id", TypeName = "character varying")] + public string? OwnerId { get; set; } + + [Column("preferred_locale", TypeName = "character varying")] + public string? PreferredLocale { get; set; } + + [Column("premium_subscription_count")] + public int? PremiumSubscriptionCount { get; set; } + + [Column("premium_tier")] + public int PremiumTier { get; set; } + + [Column("public_updates_channel_id", TypeName = "character varying")] + public string? PublicUpdatesChannelId { get; set; } + + [Column("rules_channel_id", TypeName = "character varying")] + public string? RulesChannelId { get; set; } + + [Column("region", TypeName = "character varying")] + public string? Region { get; set; } + + [Column("splash", TypeName = "character varying")] + public string? Splash { get; set; } + + [Column("system_channel_id", TypeName = "character varying")] + public string? SystemChannelId { get; set; } + + [Column("system_channel_flags")] + public int? SystemChannelFlags { get; set; } + + [Column("unavailable")] + public bool Unavailable { get; set; } + + [Column("verification_level")] + public int? VerificationLevel { get; set; } + + [Column("welcome_screen")] + public string WelcomeScreen { get; set; } = null!; + + [Column("widget_channel_id", TypeName = "character varying")] + public string? WidgetChannelId { get; set; } + + [Column("widget_enabled")] + public bool WidgetEnabled { get; set; } + + [Column("nsfw_level")] + public int? NsfwLevel { get; set; } + + [Column("nsfw")] + public bool Nsfw { get; set; } + + [Column("parent", TypeName = "character varying")] + public string? Parent { get; set; } + + [Column("premium_progress_bar_enabled")] + public bool? PremiumProgressBarEnabled { get; set; } + + [Column("channel_ordering")] + public string ChannelOrdering { get; set; } = null!; + + [ForeignKey("AfkChannelId")] + [InverseProperty("GuildAfkChannels")] + public virtual Channel? AfkChannel { get; set; } + + [InverseProperty("Guild")] + public virtual ICollection<Application> Applications { get; set; } = new List<Application>(); + + [InverseProperty("Guild")] + public virtual ICollection<Ban> Bans { get; set; } = new List<Ban>(); + + [InverseProperty("Guild")] + public virtual ICollection<Channel> Channels { get; set; } = new List<Channel>(); + + [InverseProperty("Guild")] + public virtual ICollection<Emoji> Emojis { get; set; } = new List<Emoji>(); + + [InverseProperty("Guild")] + public virtual ICollection<Invite> Invites { get; set; } = new List<Invite>(); + + [InverseProperty("Guild")] + public virtual ICollection<Member> Members { get; set; } = new List<Member>(); + + [InverseProperty("Guild")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); + + [ForeignKey("OwnerId")] + [InverseProperty("Guilds")] + public virtual User? Owner { get; set; } + + [ForeignKey("PublicUpdatesChannelId")] + [InverseProperty("GuildPublicUpdatesChannels")] + public virtual Channel? PublicUpdatesChannel { get; set; } + + [InverseProperty("Guild")] + public virtual ICollection<Role> Roles { get; set; } = new List<Role>(); + + [ForeignKey("RulesChannelId")] + [InverseProperty("GuildRulesChannels")] + public virtual Channel? RulesChannel { get; set; } + + [InverseProperty("Guild")] + public virtual ICollection<Sticker> Stickers { get; set; } = new List<Sticker>(); + + [ForeignKey("SystemChannelId")] + [InverseProperty("GuildSystemChannels")] + public virtual Channel? SystemChannel { get; set; } + + [ForeignKey("TemplateId")] + [InverseProperty("Guilds")] + public virtual Template? Template { get; set; } + + [InverseProperty("SourceGuild")] + public virtual ICollection<Template> Templates { get; set; } = new List<Template>(); + + [InverseProperty("Guild")] + public virtual ICollection<VoiceState> VoiceStates { get; set; } = new List<VoiceState>(); + + [InverseProperty("Guild")] + public virtual ICollection<Webhook> WebhookGuilds { get; set; } = new List<Webhook>(); + + [InverseProperty("SourceGuild")] + public virtual ICollection<Webhook> WebhookSourceGuilds { get; set; } = new List<Webhook>(); + + [ForeignKey("WidgetChannelId")] + [InverseProperty("GuildWidgetChannels")] + public virtual Channel? WidgetChannel { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/InstanceBan.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/InstanceBan.cs new file mode 100644
index 00000000..48ff0e77 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/InstanceBan.cs
@@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("instance_bans")] +[Index("OriginInstanceBanId", Name = "REL_0b02d18d0d830f160c921192a3", IsUnique = true)] +public partial class InstanceBan +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("reason", TypeName = "character varying")] + public string Reason { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("fingerprint", TypeName = "character varying")] + public string? Fingerprint { get; set; } + + [Column("ip_address", TypeName = "character varying")] + public string? IpAddress { get; set; } + + [Column("is_from_other_instance_ban")] + public bool IsFromOtherInstanceBan { get; set; } + + [Column("origin_instance_ban_id", TypeName = "character varying")] + public string? OriginInstanceBanId { get; set; } + + [Column("is_allowlisted")] + public bool IsAllowlisted { get; set; } + + [InverseProperty("OriginInstanceBan")] + public virtual InstanceBan? InverseOriginInstanceBan { get; set; } + + [ForeignKey("OriginInstanceBanId")] + [InverseProperty("InverseOriginInstanceBan")] + public virtual InstanceBan? OriginInstanceBan { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Invite.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Invite.cs new file mode 100644
index 00000000..b53a397c --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Invite.cs
@@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("invites")] +public partial class Invite +{ + [Key] + [Column("code", TypeName = "character varying")] + public string Code { get; set; } = null!; + + [Column("temporary")] + public bool Temporary { get; set; } + + [Column("uses")] + public int Uses { get; set; } + + [Column("max_uses")] + public int MaxUses { get; set; } + + [Column("max_age")] + public int MaxAge { get; set; } + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("expires_at", TypeName = "timestamp without time zone")] + public DateTime? ExpiresAt { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("inviter_id", TypeName = "character varying")] + public string? InviterId { get; set; } + + [Column("target_user_id", TypeName = "character varying")] + public string? TargetUserId { get; set; } + + [Column("target_user_type")] + public int? TargetUserType { get; set; } + + [Column("vanity_url")] + public bool? VanityUrl { get; set; } + + [Column("flags")] + public int Flags { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("Invites")] + public virtual Channel? Channel { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Invites")] + public virtual Guild? Guild { get; set; } + + [ForeignKey("InviterId")] + [InverseProperty("InviteInviters")] + public virtual User? Inviter { get; set; } + + [ForeignKey("TargetUserId")] + [InverseProperty("InviteTargetUsers")] + public virtual User? TargetUser { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Member.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Member.cs new file mode 100644
index 00000000..dfa24f31 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Member.cs
@@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("members")] +[Index("Id", "GuildId", Name = "IDX_bb2bf9386ac443afbbbf9f12d3", IsUnique = true)] +public partial class Member +{ + [Key] + [Column("index")] + public int Index { get; set; } + + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string GuildId { get; set; } = null!; + + [Column("nick", TypeName = "character varying")] + public string? Nick { get; set; } + + [Column("joined_at", TypeName = "timestamp without time zone")] + public DateTime JoinedAt { get; set; } + + [Column("premium_since")] + public long? PremiumSince { get; set; } + + [Column("deaf")] + public bool Deaf { get; set; } + + [Column("mute")] + public bool Mute { get; set; } + + [Column("pending")] + public bool Pending { get; set; } + + [Column("settings")] + public string Settings { get; set; } = null!; + + [Column("last_message_id", TypeName = "character varying")] + public string? LastMessageId { get; set; } + + [Column("joined_by", TypeName = "character varying")] + public string? JoinedBy { get; set; } + + [Column("avatar", TypeName = "character varying")] + public string? Avatar { get; set; } + + [Column("banner", TypeName = "character varying")] + public string? Banner { get; set; } + + [Column("bio", TypeName = "character varying")] + public string Bio { get; set; } = null!; + + [Column("theme_colors")] + public string? ThemeColors { get; set; } + + [Column("pronouns", TypeName = "character varying")] + public string? Pronouns { get; set; } + + [Column("communication_disabled_until", TypeName = "timestamp without time zone")] + public DateTime? CommunicationDisabledUntil { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Members")] + public virtual Guild Guild { get; set; } = null!; + + [ForeignKey("Id")] + [InverseProperty("Members")] + public virtual User IdNavigation { get; set; } = null!; + + [ForeignKey("Index")] + [InverseProperty("Indices")] + public virtual ICollection<Role> Roles { get; set; } = new List<Role>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Message.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Message.cs new file mode 100644
index 00000000..ca0abd78 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Message.cs
@@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("messages")] +[Index("AuthorId", Name = "IDX_05535bc695e9f7ee104616459d")] +[Index("ChannelId", "Id", Name = "IDX_3ed7a60fb7dbe04e1ba9332a8b", IsUnique = true)] +[Index("ChannelId", Name = "IDX_86b9109b155eb70c0a2ca3b4b6")] +public partial class Message +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("author_id", TypeName = "character varying")] + public string? AuthorId { get; set; } + + [Column("member_id", TypeName = "character varying")] + public string? MemberId { get; set; } + + [Column("webhook_id", TypeName = "character varying")] + public string? WebhookId { get; set; } + + [Column("application_id", TypeName = "character varying")] + public string? ApplicationId { get; set; } + + [Column("content", TypeName = "character varying")] + public string? Content { get; set; } + + [Column("timestamp", TypeName = "timestamp without time zone")] + public DateTime Timestamp { get; set; } + + [Column("edited_timestamp", TypeName = "timestamp without time zone")] + public DateTime? EditedTimestamp { get; set; } + + [Column("tts")] + public bool? Tts { get; set; } + + [Column("mention_everyone")] + public bool? MentionEveryone { get; set; } + + [Column("embeds")] + public string Embeds { get; set; } = null!; + + [Column("reactions")] + public string Reactions { get; set; } = null!; + + [Column("nonce")] + public string? Nonce { get; set; } + + [Column("type")] + public int Type { get; set; } + + [Column("activity")] + public string? Activity { get; set; } + + [Column("message_reference")] + public string? MessageReference { get; set; } + + [Column("interaction")] + public string? Interaction { get; set; } + + [Column("components")] + public string? Components { get; set; } + + [Column("message_reference_id", TypeName = "character varying")] + public string? MessageReferenceId { get; set; } + + [Column("flags")] + public int Flags { get; set; } + + [Column("poll")] + public string? Poll { get; set; } + + [Column("username", TypeName = "character varying")] + public string? Username { get; set; } + + [Column("avatar", TypeName = "character varying")] + public string? Avatar { get; set; } + + [Column("pinned_at", TypeName = "timestamp without time zone")] + public DateTime? PinnedAt { get; set; } + + [Column("interaction_metadata")] + public string? InteractionMetadata { get; set; } + + [Column("message_snapshots")] + public string MessageSnapshots { get; set; } = null!; + + [ForeignKey("ApplicationId")] + [InverseProperty("Messages")] + public virtual Application? Application { get; set; } + + [InverseProperty("Message")] + public virtual ICollection<Attachment> Attachments { get; set; } = new List<Attachment>(); + + [ForeignKey("AuthorId")] + [InverseProperty("MessageAuthors")] + public virtual User? Author { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("Messages")] + public virtual Channel? Channel { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Messages")] + public virtual Guild? Guild { get; set; } + + [InverseProperty("MessageReferenceNavigation")] + public virtual ICollection<Message> InverseMessageReferenceNavigation { get; set; } = new List<Message>(); + + [ForeignKey("MemberId")] + [InverseProperty("MessageMembers")] + public virtual User? Member { get; set; } + + [ForeignKey("MessageReferenceId")] + [InverseProperty("InverseMessageReferenceNavigation")] + public virtual Message? MessageReferenceNavigation { get; set; } + + [ForeignKey("WebhookId")] + [InverseProperty("Messages")] + public virtual Webhook? Webhook { get; set; } + + [ForeignKey("MessagesId")] + [InverseProperty("MessagesNavigation")] + public virtual ICollection<Channel> Channels { get; set; } = new List<Channel>(); + + [ForeignKey("MessagesId")] + [InverseProperty("Messages")] + public virtual ICollection<Role> Roles { get; set; } = new List<Role>(); + + [ForeignKey("MessagesId")] + [InverseProperty("Messages")] + public virtual ICollection<Sticker> Stickers { get; set; } = new List<Sticker>(); + + [ForeignKey("MessagesId")] + [InverseProperty("Messages")] + public virtual ICollection<User> Users { get; set; } = new List<User>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Migration.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Migration.cs new file mode 100644
index 00000000..d5748e51 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Migration.cs
@@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("migrations")] +public partial class Migration +{ + [Key] + [Column("id")] + public int Id { get; set; } + + [Column("timestamp")] + public long Timestamp { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Note.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Note.cs new file mode 100644
index 00000000..38b230f9 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Note.cs
@@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("notes")] +[Index("OwnerId", "TargetId", Name = "UQ_74e6689b9568cc965b8bfc9150b", IsUnique = true)] +public partial class Note +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("content", TypeName = "character varying")] + public string Content { get; set; } = null!; + + [Column("owner_id", TypeName = "character varying")] + public string? OwnerId { get; set; } + + [Column("target_id", TypeName = "character varying")] + public string? TargetId { get; set; } + + [ForeignKey("OwnerId")] + [InverseProperty("NoteOwners")] + public virtual User? Owner { get; set; } + + [ForeignKey("TargetId")] + [InverseProperty("NoteTargets")] + public virtual User? Target { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/RateLimit.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/RateLimit.cs new file mode 100644
index 00000000..9748832d --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/RateLimit.cs
@@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("rate_limits")] +public partial class RateLimit +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("executor_id", TypeName = "character varying")] + public string ExecutorId { get; set; } = null!; + + [Column("hits")] + public int Hits { get; set; } + + [Column("blocked")] + public bool Blocked { get; set; } + + [Column("expires_at", TypeName = "timestamp without time zone")] + public DateTime ExpiresAt { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ReadState.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ReadState.cs new file mode 100644
index 00000000..43bc0ac7 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ReadState.cs
@@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("read_states")] +[Index("ChannelId", "UserId", Name = "IDX_0abf8b443321bd3cf7f81ee17a", IsUnique = true)] +public partial class ReadState +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("channel_id", TypeName = "character varying")] + public string ChannelId { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string UserId { get; set; } = null!; + + [Column("last_message_id", TypeName = "character varying")] + public string? LastMessageId { get; set; } + + [Column("public_ack", TypeName = "character varying")] + public string? PublicAck { get; set; } + + [Column("notifications_cursor", TypeName = "character varying")] + public string? NotificationsCursor { get; set; } + + [Column("last_pin_timestamp", TypeName = "timestamp without time zone")] + public DateTime? LastPinTimestamp { get; set; } + + [Column("mention_count")] + public int? MentionCount { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("ReadStates")] + public virtual Channel Channel { get; set; } = null!; + + [ForeignKey("UserId")] + [InverseProperty("ReadStates")] + public virtual User User { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Recipient.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Recipient.cs new file mode 100644
index 00000000..50fa20ca --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Recipient.cs
@@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("recipients")] +public partial class Recipient +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("channel_id", TypeName = "character varying")] + public string ChannelId { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string UserId { get; set; } = null!; + + [Column("closed")] + public bool Closed { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("Recipients")] + public virtual Channel Channel { get; set; } = null!; + + [ForeignKey("UserId")] + [InverseProperty("Recipients")] + public virtual User User { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Relationship.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Relationship.cs new file mode 100644
index 00000000..799c9ae6 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Relationship.cs
@@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("relationships")] +[Index("FromId", "ToId", Name = "IDX_a0b2ff0a598df0b0d055934a17", IsUnique = true)] +public partial class Relationship +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("from_id", TypeName = "character varying")] + public string FromId { get; set; } = null!; + + [Column("to_id", TypeName = "character varying")] + public string ToId { get; set; } = null!; + + [Column("nickname", TypeName = "character varying")] + public string? Nickname { get; set; } + + [Column("type")] + public int Type { get; set; } + + [ForeignKey("FromId")] + [InverseProperty("RelationshipFroms")] + public virtual User From { get; set; } = null!; + + [ForeignKey("ToId")] + [InverseProperty("RelationshipTos")] + public virtual User To { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Role.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Role.cs new file mode 100644
index 00000000..a57875c0 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Role.cs
@@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("roles")] +public partial class Role +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string GuildId { get; set; } = null!; + + [Column("color")] + public int Color { get; set; } + + [Column("hoist")] + public bool Hoist { get; set; } + + [Column("managed")] + public bool Managed { get; set; } + + [Column("mentionable")] + public bool Mentionable { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("permissions", TypeName = "character varying")] + public string Permissions { get; set; } = null!; + + [Column("position")] + public int Position { get; set; } + + [Column("icon", TypeName = "character varying")] + public string? Icon { get; set; } + + [Column("unicode_emoji", TypeName = "character varying")] + public string? UnicodeEmoji { get; set; } + + [Column("tags")] + public string? Tags { get; set; } + + [Column("flags")] + public int Flags { get; set; } + + [Column("colors")] + public string Colors { get; set; } = null!; + + [ForeignKey("GuildId")] + [InverseProperty("Roles")] + public virtual Guild Guild { get; set; } = null!; + + [ForeignKey("RoleId")] + [InverseProperty("Roles")] + public virtual ICollection<Member> Indices { get; set; } = new List<Member>(); + + [ForeignKey("RolesId")] + [InverseProperty("Roles")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/SecurityKey.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/SecurityKey.cs new file mode 100644
index 00000000..a7a962e3 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/SecurityKey.cs
@@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("security_keys")] +public partial class SecurityKey +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("key_id", TypeName = "character varying")] + public string KeyId { get; set; } = null!; + + [Column("public_key", TypeName = "character varying")] + public string PublicKey { get; set; } = null!; + + [Column("counter")] + public int Counter { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [ForeignKey("UserId")] + [InverseProperty("SecurityKeys")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/SecuritySetting.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/SecuritySetting.cs new file mode 100644
index 00000000..cb52206a --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/SecuritySetting.cs
@@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("security_settings")] +public partial class SecuritySetting +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("encryption_permission_mask")] + public int EncryptionPermissionMask { get; set; } + + [Column("allowed_algorithms")] + public string AllowedAlgorithms { get; set; } = null!; + + [Column("current_algorithm", TypeName = "character varying")] + public string CurrentAlgorithm { get; set; } = null!; + + [Column("used_since_message", TypeName = "character varying")] + public string? UsedSinceMessage { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Session.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Session.cs new file mode 100644
index 00000000..31c559d9 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Session.cs
@@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("sessions")] +[Index("UserId", Name = "IDX_085d540d9f418cfbdc7bd55bb1")] +public partial class Session +{ + [Column("user_id", TypeName = "character varying")] + public string UserId { get; set; } = null!; + + [Key] + [Column("session_id", TypeName = "character varying")] + public string SessionId { get; set; } = null!; + + [Column("activities")] + public string Activities { get; set; } = null!; + + [Column("client_info")] + public string ClientInfo { get; set; } = null!; + + [Column("status", TypeName = "character varying")] + public string Status { get; set; } = null!; + + [Column("client_status")] + public string ClientStatus { get; set; } = null!; + + [Column("is_admin_session")] + public bool IsAdminSession { get; set; } + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("last_seen", TypeName = "timestamp without time zone")] + public DateTime? LastSeen { get; set; } + + [Column("last_seen_ip", TypeName = "character varying")] + public string? LastSeenIp { get; set; } + + [Column("last_seen_location", TypeName = "character varying")] + public string? LastSeenLocation { get; set; } + + [Column("last_seen_location_info")] + public string? LastSeenLocationInfo { get; set; } + + [Column("session_nickname", TypeName = "character varying")] + public string? SessionNickname { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("Sessions")] + public virtual User User { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Sticker.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Sticker.cs new file mode 100644
index 00000000..048d3a01 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Sticker.cs
@@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("stickers")] +public partial class Sticker +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("description", TypeName = "character varying")] + public string? Description { get; set; } + + [Column("available")] + public bool? Available { get; set; } + + [Column("tags", TypeName = "character varying")] + public string? Tags { get; set; } + + [Column("pack_id", TypeName = "character varying")] + public string? PackId { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("type")] + public int Type { get; set; } + + [Column("format_type")] + public int FormatType { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("Stickers")] + public virtual Guild? Guild { get; set; } + + [ForeignKey("PackId")] + [InverseProperty("Stickers")] + public virtual StickerPack? Pack { get; set; } + + [InverseProperty("CoverStickerId1Navigation")] + public virtual ICollection<StickerPack> StickerPacks { get; set; } = new List<StickerPack>(); + + [ForeignKey("UserId")] + [InverseProperty("Stickers")] + public virtual User? User { get; set; } + + [ForeignKey("StickersId")] + [InverseProperty("Stickers")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/StickerPack.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/StickerPack.cs new file mode 100644
index 00000000..96369f8a --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/StickerPack.cs
@@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("sticker_packs")] +public partial class StickerPack +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("description", TypeName = "character varying")] + public string? Description { get; set; } + + [Column("banner_asset_id", TypeName = "character varying")] + public string? BannerAssetId { get; set; } + + [Column("cover_sticker_id", TypeName = "character varying")] + public string? CoverStickerId { get; set; } + + [Column("coverStickerId", TypeName = "character varying")] + public string? CoverStickerId1 { get; set; } + + [ForeignKey("CoverStickerId1")] + [InverseProperty("StickerPacks")] + public virtual Sticker? CoverStickerId1Navigation { get; set; } + + [InverseProperty("Pack")] + public virtual ICollection<Sticker> Stickers { get; set; } = new List<Sticker>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Stream.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Stream.cs new file mode 100644
index 00000000..db1b2cb8 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Stream.cs
@@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("streams")] +public partial class Stream +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("owner_id", TypeName = "character varying")] + public string OwnerId { get; set; } = null!; + + [Column("channel_id", TypeName = "character varying")] + public string ChannelId { get; set; } = null!; + + [Column("endpoint", TypeName = "character varying")] + public string Endpoint { get; set; } = null!; + + [ForeignKey("ChannelId")] + [InverseProperty("Streams")] + public virtual Channel Channel { get; set; } = null!; + + [ForeignKey("OwnerId")] + [InverseProperty("Streams")] + public virtual User Owner { get; set; } = null!; + + [InverseProperty("Stream")] + public virtual ICollection<StreamSession> StreamSessions { get; set; } = new List<StreamSession>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/StreamSession.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/StreamSession.cs new file mode 100644
index 00000000..cbc64dc6 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/StreamSession.cs
@@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("stream_sessions")] +public partial class StreamSession +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("stream_id", TypeName = "character varying")] + public string StreamId { get; set; } = null!; + + [Column("user_id", TypeName = "character varying")] + public string UserId { get; set; } = null!; + + [Column("token", TypeName = "character varying")] + public string? Token { get; set; } + + [Column("session_id", TypeName = "character varying")] + public string SessionId { get; set; } = null!; + + [Column("used")] + public bool Used { get; set; } + + [ForeignKey("StreamId")] + [InverseProperty("StreamSessions")] + public virtual Stream Stream { get; set; } = null!; + + [ForeignKey("UserId")] + [InverseProperty("StreamSessions")] + public virtual User User { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Team.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Team.cs new file mode 100644
index 00000000..3443ad3b --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Team.cs
@@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("teams")] +public partial class Team +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("icon", TypeName = "character varying")] + public string? Icon { get; set; } + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("owner_user_id", TypeName = "character varying")] + public string? OwnerUserId { get; set; } + + [InverseProperty("Team")] + public virtual ICollection<Application> Applications { get; set; } = new List<Application>(); + + [ForeignKey("OwnerUserId")] + [InverseProperty("Teams")] + public virtual User? OwnerUser { get; set; } + + [InverseProperty("Team")] + public virtual ICollection<TeamMember> TeamMembers { get; set; } = new List<TeamMember>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/TeamMember.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/TeamMember.cs new file mode 100644
index 00000000..106ddee9 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/TeamMember.cs
@@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("team_members")] +public partial class TeamMember +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("membership_state")] + public int MembershipState { get; set; } + + [Column("permissions")] + public string Permissions { get; set; } = null!; + + [Column("team_id", TypeName = "character varying")] + public string? TeamId { get; set; } + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("role", TypeName = "character varying")] + public string Role { get; set; } = null!; + + [ForeignKey("TeamId")] + [InverseProperty("TeamMembers")] + public virtual Team? Team { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("TeamMembers")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Template.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Template.cs new file mode 100644
index 00000000..4c65ed93 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Template.cs
@@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("templates")] +[Index("Code", Name = "UQ_be38737bf339baf63b1daeffb55", IsUnique = true)] +public partial class Template +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("code", TypeName = "character varying")] + public string Code { get; set; } = null!; + + [Column("name", TypeName = "character varying")] + public string Name { get; set; } = null!; + + [Column("description", TypeName = "character varying")] + public string? Description { get; set; } + + [Column("usage_count")] + public int? UsageCount { get; set; } + + [Column("creator_id", TypeName = "character varying")] + public string? CreatorId { get; set; } + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("updated_at", TypeName = "timestamp without time zone")] + public DateTime UpdatedAt { get; set; } + + [Column("source_guild_id", TypeName = "character varying")] + public string? SourceGuildId { get; set; } + + [Column("serialized_source_guild")] + public string SerializedSourceGuild { get; set; } = null!; + + [ForeignKey("CreatorId")] + [InverseProperty("Templates")] + public virtual User? Creator { get; set; } + + [InverseProperty("Template")] + public virtual ICollection<Guild> Guilds { get; set; } = new List<Guild>(); + + [ForeignKey("SourceGuildId")] + [InverseProperty("Templates")] + public virtual Guild? SourceGuild { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/User.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/User.cs new file mode 100644
index 00000000..242402b2 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/User.cs
@@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("users")] +[Index("SettingsIndex", Name = "REL_0c14beb78d8c5ccba66072adbc", IsUnique = true)] +public partial class User +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("username", TypeName = "character varying")] + public string Username { get; set; } = null!; + + [Column("discriminator", TypeName = "character varying")] + public string Discriminator { get; set; } = null!; + + [Column("avatar", TypeName = "character varying")] + public string? Avatar { get; set; } + + [Column("accent_color")] + public int? AccentColor { get; set; } + + [Column("banner", TypeName = "character varying")] + public string? Banner { get; set; } + + [Column("theme_colors")] + public string? ThemeColors { get; set; } + + [Column("pronouns", TypeName = "character varying")] + public string? Pronouns { get; set; } + + [Column("phone", TypeName = "character varying")] + public string? Phone { get; set; } + + [Column("desktop")] + public bool Desktop { get; set; } + + [Column("mobile")] + public bool Mobile { get; set; } + + [Column("premium")] + public bool Premium { get; set; } + + [Column("premium_type")] + public int PremiumType { get; set; } + + [Column("bot")] + public bool Bot { get; set; } + + [Column("bio", TypeName = "character varying")] + public string Bio { get; set; } = null!; + + [Column("system")] + public bool System { get; set; } + + [Column("nsfw_allowed")] + public bool NsfwAllowed { get; set; } + + [Column("mfa_enabled")] + public bool MfaEnabled { get; set; } + + [Column("totp_secret", TypeName = "character varying")] + public string? TotpSecret { get; set; } + + [Column("totp_last_ticket", TypeName = "character varying")] + public string? TotpLastTicket { get; set; } + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("premium_since", TypeName = "timestamp without time zone")] + public DateTime? PremiumSince { get; set; } + + [Column("verified")] + public bool Verified { get; set; } + + [Column("disabled")] + public bool Disabled { get; set; } + + [Column("deleted")] + public bool Deleted { get; set; } + + [Column("email", TypeName = "character varying")] + public string? Email { get; set; } + + [Column("flags", TypeName = "character varying")] + public ulong Flags { get; set; } + + [Column("public_flags")] + public ulong PublicFlags { get; set; } + + [Column("purchased_flags")] + public long PurchasedFlags { get; set; } + + [Column("premium_usage_flags")] + public int PremiumUsageFlags { get; set; } + + [Column("rights")] + public ulong Rights { get; set; } + + [Column("data")] + public string Data { get; set; } = null!; + + [Column("fingerprints")] + public string Fingerprints { get; set; } = null!; + + [Column("settingsIndex")] + public int? SettingsIndex { get; set; } + + [Column("webauthn_enabled")] + public bool WebauthnEnabled { get; set; } + + [Column("badge_ids")] + public string? BadgeIds { get; set; } + + [InverseProperty("BotUser")] + public virtual Application? ApplicationBotUser { get; set; } + + [InverseProperty("Owner")] + public virtual ICollection<Application> ApplicationOwners { get; set; } = new List<Application>(); + + [InverseProperty("Target")] + public virtual ICollection<AuditLog> AuditLogTargets { get; set; } = new List<AuditLog>(); + + [InverseProperty("User")] + public virtual ICollection<AuditLog> AuditLogUsers { get; set; } = new List<AuditLog>(); + + [InverseProperty("Creator")] + public virtual ICollection<AutomodRule> AutomodRules { get; set; } = new List<AutomodRule>(); + + [InverseProperty("User")] + public virtual ICollection<BackupCode> BackupCodes { get; set; } = new List<BackupCode>(); + + [InverseProperty("Executor")] + public virtual ICollection<Ban> BanExecutors { get; set; } = new List<Ban>(); + + [InverseProperty("User")] + public virtual ICollection<Ban> BanUsers { get; set; } = new List<Ban>(); + + [InverseProperty("Owner")] + public virtual ICollection<Channel> Channels { get; set; } = new List<Channel>(); + + [InverseProperty("User")] + public virtual ICollection<CloudAttachment> CloudAttachments { get; set; } = new List<CloudAttachment>(); + + [InverseProperty("User")] + public virtual ICollection<ConnectedAccount> ConnectedAccounts { get; set; } = new List<ConnectedAccount>(); + + [InverseProperty("User")] + public virtual ICollection<Emoji> Emojis { get; set; } = new List<Emoji>(); + + [InverseProperty("Owner")] + public virtual ICollection<Guild> Guilds { get; set; } = new List<Guild>(); + + [InverseProperty("Inviter")] + public virtual ICollection<Invite> InviteInviters { get; set; } = new List<Invite>(); + + [InverseProperty("TargetUser")] + public virtual ICollection<Invite> InviteTargetUsers { get; set; } = new List<Invite>(); + + [InverseProperty("IdNavigation")] + public virtual ICollection<Member> Members { get; set; } = new List<Member>(); + + [InverseProperty("Author")] + public virtual ICollection<Message> MessageAuthors { get; set; } = new List<Message>(); + + [InverseProperty("Member")] + public virtual ICollection<Message> MessageMembers { get; set; } = new List<Message>(); + + [InverseProperty("Owner")] + public virtual ICollection<Note> NoteOwners { get; set; } = new List<Note>(); + + [InverseProperty("Target")] + public virtual ICollection<Note> NoteTargets { get; set; } = new List<Note>(); + + [InverseProperty("User")] + public virtual ICollection<ReadState> ReadStates { get; set; } = new List<ReadState>(); + + [InverseProperty("User")] + public virtual ICollection<Recipient> Recipients { get; set; } = new List<Recipient>(); + + [InverseProperty("From")] + public virtual ICollection<Relationship> RelationshipFroms { get; set; } = new List<Relationship>(); + + [InverseProperty("To")] + public virtual ICollection<Relationship> RelationshipTos { get; set; } = new List<Relationship>(); + + [InverseProperty("User")] + public virtual ICollection<SecurityKey> SecurityKeys { get; set; } = new List<SecurityKey>(); + + [InverseProperty("User")] + public virtual ICollection<Session> Sessions { get; set; } = new List<Session>(); + + [ForeignKey("SettingsIndex")] + [InverseProperty("User")] + public virtual UserSetting? SettingsIndexNavigation { get; set; } + + [InverseProperty("User")] + public virtual ICollection<Sticker> Stickers { get; set; } = new List<Sticker>(); + + [InverseProperty("User")] + public virtual ICollection<StreamSession> StreamSessions { get; set; } = new List<StreamSession>(); + + [InverseProperty("Owner")] + public virtual ICollection<Stream> Streams { get; set; } = new List<Stream>(); + + [InverseProperty("User")] + public virtual ICollection<TeamMember> TeamMembers { get; set; } = new List<TeamMember>(); + + [InverseProperty("OwnerUser")] + public virtual ICollection<Team> Teams { get; set; } = new List<Team>(); + + [InverseProperty("Creator")] + public virtual ICollection<Template> Templates { get; set; } = new List<Template>(); + + [InverseProperty("User")] + public virtual UserSettingsProto? UserSettingsProto { get; set; } + + [InverseProperty("User")] + public virtual ICollection<VoiceState> VoiceStates { get; set; } = new List<VoiceState>(); + + [InverseProperty("User")] + public virtual ICollection<Webhook> Webhooks { get; set; } = new List<Webhook>(); + + [ForeignKey("UsersId")] + [InverseProperty("Users")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSetting.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSetting.cs new file mode 100644
index 00000000..a8d6d91c --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSetting.cs
@@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("user_settings")] +public partial class UserSetting +{ + [Key] + [Column("index")] + public int Index { get; set; } + + [Column("afk_timeout")] + public int? AfkTimeout { get; set; } + + [Column("allow_accessibility_detection")] + public bool? AllowAccessibilityDetection { get; set; } + + [Column("animate_emoji")] + public bool? AnimateEmoji { get; set; } + + [Column("animate_stickers")] + public int? AnimateStickers { get; set; } + + [Column("contact_sync_enabled")] + public bool? ContactSyncEnabled { get; set; } + + [Column("convert_emoticons")] + public bool? ConvertEmoticons { get; set; } + + [Column("custom_status")] + public string? CustomStatus { get; set; } + + [Column("default_guilds_restricted")] + public bool? DefaultGuildsRestricted { get; set; } + + [Column("detect_platform_accounts")] + public bool? DetectPlatformAccounts { get; set; } + + [Column("developer_mode")] + public bool? DeveloperMode { get; set; } + + [Column("disable_games_tab")] + public bool? DisableGamesTab { get; set; } + + [Column("enable_tts_command")] + public bool? EnableTtsCommand { get; set; } + + [Column("explicit_content_filter")] + public int? ExplicitContentFilter { get; set; } + + [Column("friend_source_flags")] + public string? FriendSourceFlags { get; set; } + + [Column("gateway_connected")] + public bool? GatewayConnected { get; set; } + + [Column("gif_auto_play")] + public bool? GifAutoPlay { get; set; } + + [Column("guild_folders")] + public string? GuildFolders { get; set; } + + [Column("guild_positions")] + public string? GuildPositions { get; set; } + + [Column("inline_attachment_media")] + public bool? InlineAttachmentMedia { get; set; } + + [Column("inline_embed_media")] + public bool? InlineEmbedMedia { get; set; } + + [Column("locale", TypeName = "character varying")] + public string? Locale { get; set; } + + [Column("message_display_compact")] + public bool? MessageDisplayCompact { get; set; } + + [Column("native_phone_integration_enabled")] + public bool? NativePhoneIntegrationEnabled { get; set; } + + [Column("render_embeds")] + public bool? RenderEmbeds { get; set; } + + [Column("render_reactions")] + public bool? RenderReactions { get; set; } + + [Column("restricted_guilds")] + public string? RestrictedGuilds { get; set; } + + [Column("show_current_game")] + public bool? ShowCurrentGame { get; set; } + + [Column("status", TypeName = "character varying")] + public string? Status { get; set; } + + [Column("stream_notifications_enabled")] + public bool? StreamNotificationsEnabled { get; set; } + + [Column("theme", TypeName = "character varying")] + public string? Theme { get; set; } + + [Column("timezone_offset")] + public int? TimezoneOffset { get; set; } + + [Column("friend_discovery_flags")] + public int? FriendDiscoveryFlags { get; set; } + + [Column("view_nsfw_guilds")] + public bool? ViewNsfwGuilds { get; set; } + + [InverseProperty("SettingsIndexNavigation")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSettingsProto.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSettingsProto.cs new file mode 100644
index 00000000..1e458592 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/UserSettingsProto.cs
@@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("user_settings_protos")] +public partial class UserSettingsProto +{ + [Key] + [Column("user_id", TypeName = "character varying")] + public string UserId { get; set; } = null!; + + [Column("userSettings", TypeName = "character varying")] + public string? UserSettings { get; set; } + + [Column("frecencySettings", TypeName = "character varying")] + public string? FrecencySettings { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("UserSettingsProto")] + public virtual User User { get; set; } = null!; +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/ValidRegistrationToken.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/ValidRegistrationToken.cs new file mode 100644
index 00000000..32c2b30a --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/ValidRegistrationToken.cs
@@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("valid_registration_tokens")] +public partial class ValidRegistrationToken +{ + [Key] + [Column("token", TypeName = "character varying")] + public string Token { get; set; } = null!; + + [Column("created_at", TypeName = "timestamp without time zone")] + public DateTime CreatedAt { get; set; } + + [Column("expires_at", TypeName = "timestamp without time zone")] + public DateTime ExpiresAt { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/VoiceState.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/VoiceState.cs new file mode 100644
index 00000000..f1d8504d --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/VoiceState.cs
@@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("voice_states")] +public partial class VoiceState +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("session_id", TypeName = "character varying")] + public string SessionId { get; set; } = null!; + + [Column("token", TypeName = "character varying")] + public string? Token { get; set; } + + [Column("deaf")] + public bool Deaf { get; set; } + + [Column("mute")] + public bool Mute { get; set; } + + [Column("self_deaf")] + public bool SelfDeaf { get; set; } + + [Column("self_mute")] + public bool SelfMute { get; set; } + + [Column("self_stream")] + public bool? SelfStream { get; set; } + + [Column("self_video")] + public bool SelfVideo { get; set; } + + [Column("suppress")] + public bool Suppress { get; set; } + + [Column("request_to_speak_timestamp", TypeName = "timestamp without time zone")] + public DateTime? RequestToSpeakTimestamp { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("VoiceStates")] + public virtual Channel? Channel { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("VoiceStates")] + public virtual Guild? Guild { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("VoiceStates")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Models/Webhook.cs b/extra/admin-api/Models/Spacebar.Models.Db/Models/Webhook.cs new file mode 100644
index 00000000..122db3aa --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Models/Webhook.cs
@@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.EntityFrameworkCore; + +namespace Spacebar.Models.Db.Models; + +[Table("webhooks")] +public partial class Webhook +{ + [Key] + [Column("id", TypeName = "character varying")] + public string Id { get; set; } = null!; + + [Column("type")] + public int Type { get; set; } + + [Column("name", TypeName = "character varying")] + public string? Name { get; set; } + + [Column("avatar", TypeName = "character varying")] + public string? Avatar { get; set; } + + [Column("token", TypeName = "character varying")] + public string? Token { get; set; } + + [Column("guild_id", TypeName = "character varying")] + public string? GuildId { get; set; } + + [Column("channel_id", TypeName = "character varying")] + public string? ChannelId { get; set; } + + [Column("application_id", TypeName = "character varying")] + public string? ApplicationId { get; set; } + + [Column("user_id", TypeName = "character varying")] + public string? UserId { get; set; } + + [Column("source_guild_id", TypeName = "character varying")] + public string? SourceGuildId { get; set; } + + [Column("source_channel_id", TypeName = "character varying")] + public string? SourceChannelId { get; set; } + + [ForeignKey("ApplicationId")] + [InverseProperty("Webhooks")] + public virtual Application? Application { get; set; } + + [ForeignKey("ChannelId")] + [InverseProperty("WebhookChannels")] + public virtual Channel? Channel { get; set; } + + [ForeignKey("GuildId")] + [InverseProperty("WebhookGuilds")] + public virtual Guild? Guild { get; set; } + + [InverseProperty("Webhook")] + public virtual ICollection<Message> Messages { get; set; } = new List<Message>(); + + [ForeignKey("SourceChannelId")] + [InverseProperty("WebhookSourceChannels")] + public virtual Channel? SourceChannel { get; set; } + + [ForeignKey("SourceGuildId")] + [InverseProperty("WebhookSourceGuilds")] + public virtual Guild? SourceGuild { get; set; } + + [ForeignKey("UserId")] + [InverseProperty("Webhooks")] + public virtual User? User { get; set; } +} diff --git a/extra/admin-api/Models/Spacebar.Models.Db/Spacebar.Models.Db.csproj b/extra/admin-api/Models/Spacebar.Models.Db/Spacebar.Models.Db.csproj new file mode 100644
index 00000000..2d1dcaf5 --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/Spacebar.Models.Db.csproj
@@ -0,0 +1,14 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>net10.0</TargetFramework> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="*" /> + <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="*" /> + </ItemGroup> + +</Project> diff --git a/extra/admin-api/Models/Spacebar.Models.Db/deps.json b/extra/admin-api/Models/Spacebar.Models.Db/deps.json new file mode 100644
index 00000000..c978dd1b --- /dev/null +++ b/extra/admin-api/Models/Spacebar.Models.Db/deps.json
@@ -0,0 +1,362 @@ +[ + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "Microsoft.Build", + "version": "17.7.2", + "hash": "sha256-k35nFdPxC8t0zAltVSmAJtsepp/ubNIjPOsJ6k8jSqM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.14.28", + "hash": "sha256-7RzEyIipumafwLW1xN1q23114NafG6PT0+RADElNsiM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.7.2", + "hash": "sha256-fNWmVQYFTJDveAGmxEdNqJRAczV6+Ep8RA8clKBJFqw=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.14.28", + "hash": "sha256-M9zRXYijH2HtLlRXbrUK1a1LQ9zkT+DC9ZmMiiVZwv0=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.7.2", + "hash": "sha256-OrV/qWgZHzGlNUmaSfX5wDBcmg1aQeF3/OUHpSH+uZU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.14.28", + "hash": "sha256-VFfO+UpyTpw2X/qiCCOCYzvMLuu7B+XVSSpJZQLkPzU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.7.2", + "hash": "sha256-oatF0KfuP1nb4+OLNKg2/R/ZLO4EiACaO5leaxMEY4A=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.11.0", + "hash": "sha256-hQ2l6E6PO4m7i+ZsfFlEx+93UsLPo4IY3wDkNG11/Sw=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.14.0", + "hash": "sha256-ne/zxH3GqoGB4OemnE8oJElG5mai+/67ASaKqwmL2BE=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.14.0", + "hash": "sha256-5Mzj3XkYYLkwDWh17r1NEXSbXwwWYQPiOmkSMlgo1JY=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.14.0", + "hash": "sha256-aNbV1a0yYBs0fpQawG6LXcbyoE8en+YFSpV5vcYE4J4=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.14.0", + "hash": "sha256-0YfeaJe01WBUm9avy4a8FacQJXA1NkpnDpiXu4yz88I=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild", + "version": "4.14.0", + "hash": "sha256-5SJfpRqzqCK0UbkmAaJpA/r1XJb0YAriMMeQHYC4d+o=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.0", + "hash": "sha256-xfgrlxhtOkQwF5Q7j8gSm41URJiH8IuJ/T/Dh88++hE=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.1", + "hash": "sha256-IxA+/nDA6hZkUm9bDT6bRu8+9qeHA3gbTvIhR9Ncg4w=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.0", + "hash": "sha256-UDgZbRQcGPaKsE53EH6bvJiv+Q4KSxAbnsVhTVFGG4Q=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.1", + "hash": "sha256-FMGXhAAgcVSedV0/GmUVqAwoiRzFJil9mQYr6eNgowg=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.0", + "hash": "sha256-7Q0jYJO50cqGI+u6gLpootbB8GZvgsgtg0F9FZI1jig=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.1", + "hash": "sha256-O949vr98WoSRXtiIo0ZI6dz2cibIBKbiuC+mQOe9bV4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Design", + "version": "10.0.1", + "hash": "sha256-GGNZIGNEMhSGaMRFkRN4bOuCUBs5YVnX8klXarm319U=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.0", + "hash": "sha256-vOP2CE5YA551BlpbOuIy6RuAiAEPEpCVS1cEE33/zN4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.1", + "hash": "sha256-zLgxr/iW9HP8Fip1IDgr7X0Ar8OWKDvVmoEt65gG6VY=" + }, + { + "pname": "Microsoft.Extensions.Caching.Abstractions", + "version": "10.0.1", + "hash": "sha256-qVLAEqxPK/dNq+z1a6D9NqdcSg/18sfzZhlBWMkqV/A=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.0", + "hash": "sha256-AMgDSm1k6q0s17spGtyR5q8nAqUFDOxl/Fe38f9M+d4=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.1", + "hash": "sha256-Qb7xK6VEZDas0lJFaW1suKdFjtkSYwLHHxkQEfWIU2A=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.1", + "hash": "sha256-s4PDp+vtzdxKIxnOT3+dDRoTDopyl8kqmmw4KDnkOtQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.1", + "hash": "sha256-RKOB+zPrtQNUbJY/1jR54rKOM8KHPgynPExxugku3I8=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.0", + "hash": "sha256-dAH52PPlTLn7X+1aI/7npdrDzMEFPMXRv4isV1a+14k=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.1", + "hash": "sha256-zNUpau51ds7iQTaSUTFtyTHIUoinYc129W50CnufMdQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.0", + "hash": "sha256-CncVwkKZ5CsIG2O0+OM9qXuYXh3p6UGyueTHSLDVL+c=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "10.0.1", + "hash": "sha256-XIj2jEURe25YA4RhBSuCqQpic0YP+TZaO/dbBPCjad8=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.0", + "hash": "sha256-P+zPAadLL63k/GqK34/qChqQjY9aIRxZfxlB9lqsSrs=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.1", + "hash": "sha256-zuLP3SIpCToMOlIPOEv3Kq8y/minecd8k8GSkxFo13E=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.0", + "hash": "sha256-BnhgGZc01HwTSxogavq7Ueq4V7iMA3wPnbfRwQ4RhGk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.1", + "hash": "sha256-NRk0feNE1fgi/hyO0AVDbSGJQRT+9yte6Lpm4Hz/2Bs=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.0", + "hash": "sha256-iBTs9twjWXFeERt4CErkIIcoJZU1jrd1RWCI8V5j7KU=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.1", + "hash": "sha256-vBiSS1vqAC7eDrpJNT4H3A9qLikCSAepnNRbry0mKnk=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.0", + "hash": "sha256-DT5euAQY/ItB5LPI8WIp6Dnd0lSvBRP35vFkOXC68ck=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.1", + "hash": "sha256-EXmukq09erT4s+miQpBSYy3IY4HxxKlwEPL43/KoyEc=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.0", + "hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.14.28", + "hash": "sha256-UzREyvDxkiOQ4cEOQ5UCjkwXGrldIDCcbefECTPGjXI=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.7.2", + "hash": "sha256-hQE07TCgcQuyu9ZHVq2gPDb0+xe8ECJUdrgh17bJP4o=" + }, + { + "pname": "Mono.TextTemplating", + "version": "3.0.0", + "hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "Npgsql", + "version": "10.0.0", + "hash": "sha256-UVKz9dH/rVCCbMyFdqA31RYpht1XgDRLIqUy0Dp9ACQ=" + }, + { + "pname": "Npgsql.EntityFrameworkCore.PostgreSQL", + "version": "10.0.0", + "hash": "sha256-XIJxnTMektQVP1qtslEIGbmBGrIQsvjQjCMRTs9UIbg=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.CodeDom", + "version": "7.0.0", + "hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE=" + }, + { + "pname": "System.CodeDom", + "version": "9.0.0", + "hash": "sha256-578lcBgswW0eM16r0EnJzfGodPx86RxxFoZHc2PSzsw=" + }, + { + "pname": "System.Composition", + "version": "9.0.0", + "hash": "sha256-FehOkQ2u1p8mQ0/wn3cZ+24HjhTLdck8VZYWA1CcgbM=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "9.0.0", + "hash": "sha256-a7y7H6zj+kmYkllNHA402DoVfY9IaqC3Ooys8Vzl24M=" + }, + { + "pname": "System.Composition.Convention", + "version": "9.0.0", + "hash": "sha256-tw4vE5JRQ60ubTZBbxoMPhtjOQCC3XoDFUH7NHO7o8U=" + }, + { + "pname": "System.Composition.Hosting", + "version": "9.0.0", + "hash": "sha256-oOxU+DPEEfMCuNLgW6wSkZp0JY5gYt44FJNnWt+967s=" + }, + { + "pname": "System.Composition.Runtime", + "version": "9.0.0", + "hash": "sha256-AyIe+di1TqwUBbSJ/sJ8Q8tzsnTN+VBdJw4K8xZz43s=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "9.0.0", + "hash": "sha256-F5fpTUs3Rr7yP/NyIzr+Xn5NdTXXp8rrjBnF9UBBUog=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "7.0.0", + "hash": "sha256-SgBexTTjRn23uuXvkzO0mz0qOfA23MiS4Wv+qepMLZE=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "9.0.0", + "hash": "sha256-+pLnTC0YDP6Kjw5DVBiFrV/Q3x5is/+6N6vAtjvhVWk=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "9.0.0", + "hash": "sha256-tPvt6yoAp56sK/fe+/ei8M65eavY2UUhRnbrREj/Ems=" + }, + { + "pname": "System.Formats.Nrbf", + "version": "9.0.0", + "hash": "sha256-c4qf6CocQUZB0ySGQd8s15PXY7xfrjQqMGXxkwytKyw=" + }, + { + "pname": "System.Reflection.MetadataLoadContext", + "version": "7.0.0", + "hash": "sha256-VYl6SFD130K9Aw4eJH16ApJ9Sau4Xu0dcxEip2veuTI=" + }, + { + "pname": "System.Resources.Extensions", + "version": "9.0.0", + "hash": "sha256-y2gLEMuAy6QfEyNJxABC/ayMWGnwlpX735jsUQLktho=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.0", + "hash": "sha256-3J3vL9hcKSuZjT2GKappa2A9p2xJm1nH2asTNAl8ZCA=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.2", + "hash": "sha256-qS5Z/Yo8J+f3ExVX5Qkcpj1Z57oUZqz5rWa1h5bVpl8=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "9.0.0", + "hash": "sha256-AjG14mGeSc2Ka4QSelGBM1LrGBW3VJX60lnihKyJjGY=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "9.0.0", + "hash": "sha256-gPgPU7k/InTqmXoRzQfUMEKL3QuTnOKowFqmXTnWaBQ=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "7.0.1", + "hash": "sha256-CH8+JVC8LyCSW75/6ZQ7ecMbSOAE1c16z4dG8JTp01w=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "9.0.0", + "hash": "sha256-SQJWwAFrJUddEU6JiZB52FM9tGjRlJAYH8oYVzG5IJU=" + }, + { + "pname": "System.Security.Permissions", + "version": "7.0.0", + "hash": "sha256-DOFoX+AKRmrkllykHheR8FfUXYx/Ph+I/HYuReQydXI=" + }, + { + "pname": "System.Security.Permissions", + "version": "9.0.0", + "hash": "sha256-BFrA9ottmQtLIAiKiGRbfSUpzNJwuaOCeFRDN4Z0ku0=" + }, + { + "pname": "System.Windows.Extensions", + "version": "9.0.0", + "hash": "sha256-RErD+Ju15qtnwdwB7E0SjjJGAnhXwJyC7UPcl24Z3Vs=" + } +]