feat: add debug registration endpoint, fix snowflake serialization
This commit is contained in:
		
							parent
							
								
									852036a6f7
								
							
						
					
					
						commit
						588afeec20
					
				
					 14 changed files with 646 additions and 10 deletions
				
			
		
							
								
								
									
										478
									
								
								Foxnouns.Backend/Database/Migrations/20240604142522_AddPassword.Designer.cs
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										478
									
								
								Foxnouns.Backend/Database/Migrations/20240604142522_AddPassword.Designer.cs
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,478 @@ | |||
| // <auto-generated /> | ||||
| using Foxnouns.Backend.Database; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using Microsoft.EntityFrameworkCore.Infrastructure; | ||||
| using Microsoft.EntityFrameworkCore.Migrations; | ||||
| using Microsoft.EntityFrameworkCore.Storage.ValueConversion; | ||||
| using NodaTime; | ||||
| using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; | ||||
| 
 | ||||
| #nullable disable | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Database.Migrations | ||||
| { | ||||
|     [DbContext(typeof(DatabaseContext))] | ||||
|     [Migration("20240604142522_AddPassword")] | ||||
|     partial class AddPassword | ||||
|     { | ||||
|         /// <inheritdoc /> | ||||
|         protected override void BuildTargetModel(ModelBuilder modelBuilder) | ||||
|         { | ||||
| #pragma warning disable 612, 618 | ||||
|             modelBuilder | ||||
|                 .HasAnnotation("ProductVersion", "8.0.5") | ||||
|                 .HasAnnotation("Relational:MaxIdentifierLength", 63); | ||||
| 
 | ||||
|             NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.Application", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<string>("ClientId") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("client_id"); | ||||
| 
 | ||||
|                     b.Property<string>("ClientSecret") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("client_secret"); | ||||
| 
 | ||||
|                     b.Property<string>("Name") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("name"); | ||||
| 
 | ||||
|                     b.Property<string[]>("RedirectUris") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text[]") | ||||
|                         .HasColumnName("redirect_uris"); | ||||
| 
 | ||||
|                     b.Property<string[]>("Scopes") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text[]") | ||||
|                         .HasColumnName("scopes"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_applications"); | ||||
| 
 | ||||
|                     b.ToTable("applications", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.AuthMethod", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<int>("AuthType") | ||||
|                         .HasColumnType("integer") | ||||
|                         .HasColumnName("auth_type"); | ||||
| 
 | ||||
|                     b.Property<long?>("FediverseApplicationId") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("fediverse_application_id"); | ||||
| 
 | ||||
|                     b.Property<string>("RemoteId") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("remote_id"); | ||||
| 
 | ||||
|                     b.Property<string>("RemoteUsername") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("remote_username"); | ||||
| 
 | ||||
|                     b.Property<long>("UserId") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("user_id"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_auth_methods"); | ||||
| 
 | ||||
|                     b.HasIndex("FediverseApplicationId") | ||||
|                         .HasDatabaseName("ix_auth_methods_fediverse_application_id"); | ||||
| 
 | ||||
|                     b.HasIndex("UserId") | ||||
|                         .HasDatabaseName("ix_auth_methods_user_id"); | ||||
| 
 | ||||
|                     b.ToTable("auth_methods", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.FediverseApplication", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<string>("ClientId") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("client_id"); | ||||
| 
 | ||||
|                     b.Property<string>("ClientSecret") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("client_secret"); | ||||
| 
 | ||||
|                     b.Property<string>("Domain") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("domain"); | ||||
| 
 | ||||
|                     b.Property<int>("InstanceType") | ||||
|                         .HasColumnType("integer") | ||||
|                         .HasColumnName("instance_type"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_fediverse_applications"); | ||||
| 
 | ||||
|                     b.ToTable("fediverse_applications", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.Member", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<string>("Avatar") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("avatar"); | ||||
| 
 | ||||
|                     b.Property<string>("Bio") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("bio"); | ||||
| 
 | ||||
|                     b.Property<string>("DisplayName") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("display_name"); | ||||
| 
 | ||||
|                     b.Property<string[]>("Links") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text[]") | ||||
|                         .HasColumnName("links"); | ||||
| 
 | ||||
|                     b.Property<string>("Name") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("name"); | ||||
| 
 | ||||
|                     b.Property<bool>("Unlisted") | ||||
|                         .HasColumnType("boolean") | ||||
|                         .HasColumnName("unlisted"); | ||||
| 
 | ||||
|                     b.Property<long>("UserId") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("user_id"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_members"); | ||||
| 
 | ||||
|                     b.HasIndex("UserId", "Name") | ||||
|                         .IsUnique() | ||||
|                         .HasDatabaseName("ix_members_user_id_name"); | ||||
| 
 | ||||
|                     b.ToTable("members", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.Token", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<long>("ApplicationId") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("application_id"); | ||||
| 
 | ||||
|                     b.Property<Instant>("ExpiresAt") | ||||
|                         .HasColumnType("timestamp with time zone") | ||||
|                         .HasColumnName("expires_at"); | ||||
| 
 | ||||
|                     b.Property<byte[]>("Hash") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("bytea") | ||||
|                         .HasColumnName("hash"); | ||||
| 
 | ||||
|                     b.Property<bool>("ManuallyExpired") | ||||
|                         .HasColumnType("boolean") | ||||
|                         .HasColumnName("manually_expired"); | ||||
| 
 | ||||
|                     b.Property<string[]>("Scopes") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text[]") | ||||
|                         .HasColumnName("scopes"); | ||||
| 
 | ||||
|                     b.Property<long>("UserId") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("user_id"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_tokens"); | ||||
| 
 | ||||
|                     b.HasIndex("ApplicationId") | ||||
|                         .HasDatabaseName("ix_tokens_application_id"); | ||||
| 
 | ||||
|                     b.HasIndex("UserId") | ||||
|                         .HasDatabaseName("ix_tokens_user_id"); | ||||
| 
 | ||||
|                     b.ToTable("tokens", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.User", b => | ||||
|                 { | ||||
|                     b.Property<long>("Id") | ||||
|                         .HasColumnType("bigint") | ||||
|                         .HasColumnName("id"); | ||||
| 
 | ||||
|                     b.Property<string>("Avatar") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("avatar"); | ||||
| 
 | ||||
|                     b.Property<string>("Bio") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("bio"); | ||||
| 
 | ||||
|                     b.Property<string>("DisplayName") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("display_name"); | ||||
| 
 | ||||
|                     b.Property<string[]>("Links") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text[]") | ||||
|                         .HasColumnName("links"); | ||||
| 
 | ||||
|                     b.Property<bool>("ListHidden") | ||||
|                         .HasColumnType("boolean") | ||||
|                         .HasColumnName("list_hidden"); | ||||
| 
 | ||||
|                     b.Property<string>("MemberTitle") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("member_title"); | ||||
| 
 | ||||
|                     b.Property<string>("Password") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("password"); | ||||
| 
 | ||||
|                     b.Property<int>("Role") | ||||
|                         .HasColumnType("integer") | ||||
|                         .HasColumnName("role"); | ||||
| 
 | ||||
|                     b.Property<string>("Username") | ||||
|                         .IsRequired() | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("username"); | ||||
| 
 | ||||
|                     b.HasKey("Id") | ||||
|                         .HasName("pk_users"); | ||||
| 
 | ||||
|                     b.HasIndex("Username") | ||||
|                         .IsUnique() | ||||
|                         .HasDatabaseName("ix_users_username"); | ||||
| 
 | ||||
|                     b.ToTable("users", (string)null); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.AuthMethod", b => | ||||
|                 { | ||||
|                     b.HasOne("Foxnouns.Backend.Database.Models.FediverseApplication", "FediverseApplication") | ||||
|                         .WithMany() | ||||
|                         .HasForeignKey("FediverseApplicationId") | ||||
|                         .HasConstraintName("fk_auth_methods_fediverse_applications_fediverse_application_id"); | ||||
| 
 | ||||
|                     b.HasOne("Foxnouns.Backend.Database.Models.User", "User") | ||||
|                         .WithMany("AuthMethods") | ||||
|                         .HasForeignKey("UserId") | ||||
|                         .OnDelete(DeleteBehavior.Cascade) | ||||
|                         .IsRequired() | ||||
|                         .HasConstraintName("fk_auth_methods_users_user_id"); | ||||
| 
 | ||||
|                     b.Navigation("FediverseApplication"); | ||||
| 
 | ||||
|                     b.Navigation("User"); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.Member", b => | ||||
|                 { | ||||
|                     b.HasOne("Foxnouns.Backend.Database.Models.User", "User") | ||||
|                         .WithMany("Members") | ||||
|                         .HasForeignKey("UserId") | ||||
|                         .OnDelete(DeleteBehavior.Cascade) | ||||
|                         .IsRequired() | ||||
|                         .HasConstraintName("fk_members_users_user_id"); | ||||
| 
 | ||||
|                     b.OwnsOne("System.Collections.Generic.List<Foxnouns.Backend.Database.Models.Field>", "Fields", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("MemberId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("MemberId"); | ||||
| 
 | ||||
|                             b1.ToTable("members"); | ||||
| 
 | ||||
|                             b1.ToJson("fields"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("MemberId") | ||||
|                                 .HasConstraintName("fk_members_members_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.OwnsOne("System.Collections.Generic.List<Foxnouns.Backend.Database.Models.FieldEntry>", "Names", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("MemberId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("MemberId"); | ||||
| 
 | ||||
|                             b1.ToTable("members"); | ||||
| 
 | ||||
|                             b1.ToJson("names"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("MemberId") | ||||
|                                 .HasConstraintName("fk_members_members_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.OwnsOne("System.Collections.Generic.List<Foxnouns.Backend.Database.Models.Pronoun>", "Pronouns", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("MemberId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("MemberId"); | ||||
| 
 | ||||
|                             b1.ToTable("members"); | ||||
| 
 | ||||
|                             b1.ToJson("pronouns"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("MemberId") | ||||
|                                 .HasConstraintName("fk_members_members_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.Navigation("Fields") | ||||
|                         .IsRequired(); | ||||
| 
 | ||||
|                     b.Navigation("Names") | ||||
|                         .IsRequired(); | ||||
| 
 | ||||
|                     b.Navigation("Pronouns") | ||||
|                         .IsRequired(); | ||||
| 
 | ||||
|                     b.Navigation("User"); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.Token", b => | ||||
|                 { | ||||
|                     b.HasOne("Foxnouns.Backend.Database.Models.Application", "Application") | ||||
|                         .WithMany() | ||||
|                         .HasForeignKey("ApplicationId") | ||||
|                         .OnDelete(DeleteBehavior.Cascade) | ||||
|                         .IsRequired() | ||||
|                         .HasConstraintName("fk_tokens_applications_application_id"); | ||||
| 
 | ||||
|                     b.HasOne("Foxnouns.Backend.Database.Models.User", "User") | ||||
|                         .WithMany() | ||||
|                         .HasForeignKey("UserId") | ||||
|                         .OnDelete(DeleteBehavior.Cascade) | ||||
|                         .IsRequired() | ||||
|                         .HasConstraintName("fk_tokens_users_user_id"); | ||||
| 
 | ||||
|                     b.Navigation("Application"); | ||||
| 
 | ||||
|                     b.Navigation("User"); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.User", b => | ||||
|                 { | ||||
|                     b.OwnsOne("Foxnouns.Backend.Database.Models.User.Fields#List", "Fields", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("UserId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("UserId") | ||||
|                                 .HasName("pk_users"); | ||||
| 
 | ||||
|                             b1.ToTable("users"); | ||||
| 
 | ||||
|                             b1.ToJson("fields"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("UserId") | ||||
|                                 .HasConstraintName("fk_users_users_user_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.OwnsOne("Foxnouns.Backend.Database.Models.User.Names#List", "Names", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("UserId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("UserId") | ||||
|                                 .HasName("pk_users"); | ||||
| 
 | ||||
|                             b1.ToTable("users"); | ||||
| 
 | ||||
|                             b1.ToJson("names"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("UserId") | ||||
|                                 .HasConstraintName("fk_users_users_user_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.OwnsOne("Foxnouns.Backend.Database.Models.User.Pronouns#List", "Pronouns", b1 => | ||||
|                         { | ||||
|                             b1.Property<long>("UserId") | ||||
|                                 .HasColumnType("bigint"); | ||||
| 
 | ||||
|                             b1.Property<int>("Capacity") | ||||
|                                 .HasColumnType("integer"); | ||||
| 
 | ||||
|                             b1.HasKey("UserId") | ||||
|                                 .HasName("pk_users"); | ||||
| 
 | ||||
|                             b1.ToTable("users"); | ||||
| 
 | ||||
|                             b1.ToJson("pronouns"); | ||||
| 
 | ||||
|                             b1.WithOwner() | ||||
|                                 .HasForeignKey("UserId") | ||||
|                                 .HasConstraintName("fk_users_users_user_id"); | ||||
|                         }); | ||||
| 
 | ||||
|                     b.Navigation("Fields") | ||||
|                         .IsRequired(); | ||||
| 
 | ||||
|                     b.Navigation("Names") | ||||
|                         .IsRequired(); | ||||
| 
 | ||||
|                     b.Navigation("Pronouns") | ||||
|                         .IsRequired(); | ||||
|                 }); | ||||
| 
 | ||||
|             modelBuilder.Entity("Foxnouns.Backend.Database.Models.User", b => | ||||
|                 { | ||||
|                     b.Navigation("AuthMethods"); | ||||
| 
 | ||||
|                     b.Navigation("Members"); | ||||
|                 }); | ||||
| #pragma warning restore 612, 618 | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,28 @@ | |||
| using Microsoft.EntityFrameworkCore.Migrations; | ||||
| 
 | ||||
| #nullable disable | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Database.Migrations | ||||
| { | ||||
|     /// <inheritdoc /> | ||||
|     public partial class AddPassword : Migration | ||||
|     { | ||||
|         /// <inheritdoc /> | ||||
|         protected override void Up(MigrationBuilder migrationBuilder) | ||||
|         { | ||||
|             migrationBuilder.AddColumn<string>( | ||||
|                 name: "password", | ||||
|                 table: "users", | ||||
|                 type: "text", | ||||
|                 nullable: true); | ||||
|         } | ||||
| 
 | ||||
|         /// <inheritdoc /> | ||||
|         protected override void Down(MigrationBuilder migrationBuilder) | ||||
|         { | ||||
|             migrationBuilder.DropColumn( | ||||
|                 name: "password", | ||||
|                 table: "users"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -250,6 +250,10 @@ namespace Foxnouns.Backend.Database.Migrations | |||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("member_title"); | ||||
| 
 | ||||
|                     b.Property<string>("Password") | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("password"); | ||||
| 
 | ||||
|                     b.Property<int>("Role") | ||||
|                         .HasColumnType("integer") | ||||
|                         .HasColumnName("role"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue