From 0be92b274a589beb8ea047d527b67ae7f3678092 Mon Sep 17 00:00:00 2001 From: Rory& Date: Sat, 13 Dec 2025 23:34:36 +0100 Subject: [PATCH] Update admin api db model to match TS --- .../Controllers/UserController.cs | 2 +- .../Spacebar.Db/Contexts/SpacebarDbContext.cs | 5 ++-- extra/admin-api/Spacebar.Db/Models/User.cs | 8 +++--- .../Spacebar.AdminAPITest.csproj | 4 +-- .../db-patches/00-use-stream-class.patch | 14 ++++++++++ .../db-patches/01-ulong-user-rights.patch | 28 +++++++++++++++++++ .../db-patches/db-00-fix-flags.patch | 13 --------- extra/admin-api/scaffold-db | 10 +++++-- 8 files changed, 57 insertions(+), 27 deletions(-) create mode 100644 extra/admin-api/db-patches/00-use-stream-class.patch create mode 100644 extra/admin-api/db-patches/01-ulong-user-rights.patch delete mode 100644 extra/admin-api/db-patches/db-00-fix-flags.patch diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs b/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs index 436c0f91f..c727077ab 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs +++ b/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs @@ -48,7 +48,7 @@ public class UserController(ILogger logger, Configuration config Disabled = x.Disabled, Deleted = x.Deleted, Email = x.Email, - Flags = ulong.Parse(x.Flags), + Flags = x.Flags, PublicFlags = x.PublicFlags, Rights = x.Rights, ApplicationBotUser = x.ApplicationBotUser == null ? null : new(), diff --git a/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs b/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs index 0a707c757..7d380b1c3 100644 --- a/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs +++ b/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs @@ -1,7 +1,6 @@ -using System; -using System.Collections.Generic; -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using Spacebar.Db.Models; +using Stream = Spacebar.Db.Models.Stream; namespace Spacebar.Db.Contexts; diff --git a/extra/admin-api/Spacebar.Db/Models/User.cs b/extra/admin-api/Spacebar.Db/Models/User.cs index 7af60bf48..323846d46 100644 --- a/extra/admin-api/Spacebar.Db/Models/User.cs +++ b/extra/admin-api/Spacebar.Db/Models/User.cs @@ -90,19 +90,19 @@ public partial class User public string? Email { get; set; } [Column("flags")] - public long Flags { get; set; } + public ulong Flags { get; set; } [Column("public_flags")] - public long PublicFlags { get; set; } + public ulong PublicFlags { get; set; } [Column("purchased_flags")] - public long PurchasedFlags { get; set; } + public ulong PurchasedFlags { get; set; } [Column("premium_usage_flags")] public int PremiumUsageFlags { get; set; } [Column("rights")] - public long Rights { get; set; } + public ulong Rights { get; set; } [Column("data")] public string Data { get; set; } = null!; diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj b/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj index ec27f0b60..5daabdd0a 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj +++ b/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj @@ -10,9 +10,7 @@ - - ..\..\..\..\..\..\..\.nuget\packages\arcanelibs\1.0.0-preview.20241210-161342\lib\net10.0\ArcaneLibs.dll - + diff --git a/extra/admin-api/db-patches/00-use-stream-class.patch b/extra/admin-api/db-patches/00-use-stream-class.patch new file mode 100644 index 000000000..1636f1202 --- /dev/null +++ b/extra/admin-api/db-patches/00-use-stream-class.patch @@ -0,0 +1,14 @@ +diff --git a/Spacebar.Db/Contexts/SpacebarDbContext.cs b/Spacebar.Db/Contexts/SpacebarDbContext.cs +index 0a707c75..7d380b1c 100644 +--- a/Spacebar.Db/Contexts/SpacebarDbContext.cs ++++ b/Spacebar.Db/Contexts/SpacebarDbContext.cs +@@ -1,7 +1,6 @@ +-using System; +-using System.Collections.Generic; +-using Microsoft.EntityFrameworkCore; ++using Microsoft.EntityFrameworkCore; + using Spacebar.Db.Models; ++using Stream = Spacebar.Db.Models.Stream; + + namespace Spacebar.Db.Contexts; + diff --git a/extra/admin-api/db-patches/01-ulong-user-rights.patch b/extra/admin-api/db-patches/01-ulong-user-rights.patch new file mode 100644 index 000000000..362b67d7d --- /dev/null +++ b/extra/admin-api/db-patches/01-ulong-user-rights.patch @@ -0,0 +1,28 @@ +diff --git a/Spacebar.Db/Models/User.cs b/Spacebar.Db/Models/User.cs +index 7af60bf4..323846d4 100644 +--- a/Spacebar.Db/Models/User.cs ++++ b/Spacebar.Db/Models/User.cs +@@ -90,19 +90,19 @@ public partial class User + public string? Email { get; set; } + + [Column("flags")] +- public long Flags { get; set; } ++ public ulong Flags { get; set; } + + [Column("public_flags")] +- public long PublicFlags { get; set; } ++ public ulong PublicFlags { get; set; } + + [Column("purchased_flags")] +- public long PurchasedFlags { get; set; } ++ public ulong PurchasedFlags { get; set; } + + [Column("premium_usage_flags")] + public int PremiumUsageFlags { get; set; } + + [Column("rights")] +- public long Rights { get; set; } ++ public ulong Rights { get; set; } + + [Column("data")] + public string Data { get; set; } = null!; diff --git a/extra/admin-api/db-patches/db-00-fix-flags.patch b/extra/admin-api/db-patches/db-00-fix-flags.patch deleted file mode 100644 index 437368f49..000000000 --- a/extra/admin-api/db-patches/db-00-fix-flags.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- Spacebar.Db/Models/User.cs.orig 2025-10-05 22:04:37.168566856 +0200 -+++ Spacebar.Db/Models/User.cs 2025-10-05 22:07:11.519980808 +0200 -@@ -92,8 +92,8 @@ - [Column("email", TypeName = "character varying")] - public string? Email { get; set; } - -- [Column("flags")] -- public int Flags { get; set; } -+ [Column("flags", TypeName = "character varying")] -+ public string Flags { get; set; } - - [Column("public_flags")] - public int PublicFlags { get; set; } diff --git a/extra/admin-api/scaffold-db b/extra/admin-api/scaffold-db index 0f332e005..19d321306 100755 --- a/extra/admin-api/scaffold-db +++ b/extra/admin-api/scaffold-db @@ -19,6 +19,8 @@ rm Class1.cs dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL -n -f net9.0 dotnet add package Microsoft.EntityFrameworkCore.Design -n -f net9.0 +dotnet restore + dotnet-ef dbcontext scaffold "Host=127.0.0.1; Username=postgres; Database=sb-server-scaffold" \ Npgsql.EntityFrameworkCore.PostgreSQL \ -o Models \ @@ -28,6 +30,8 @@ dotnet-ef dbcontext scaffold "Host=127.0.0.1; Username=postgres; Database=sb-ser --no-onconfiguring \ --data-annotations -for patch in db-patches/*.patch; do - patch -p3 < $patch -done \ No newline at end of file +for patch in ../db-patches/*.patch; do + patch -p1 < $patch +done + +echo 'Scaffolded database and applied patches. Dont forget to generate new patches with `git diff --relative Spacebar.Db/path/xyz > db-patches/001-your-patch-name.patch!`' \ No newline at end of file