diff --git a/DataAccess/Mappings/UserMapping.cs b/DataAccess/Mappings/UserMapping.cs index b9bb70f..9c4a0b6 100644 --- a/DataAccess/Mappings/UserMapping.cs +++ b/DataAccess/Mappings/UserMapping.cs @@ -27,6 +27,22 @@ public void Configure(EntityTypeBuilder builder) AccountId = 1L }, new + { + Id = 3L, + IsBlocked = false, + UserName = "trial@tourmalinecore.com", + NormalizedUserName = "TRIAL@TOURMALINECORE.COM", + EmailConfirmed = false, + PasswordHash = "AQAAAAIAAYagAAAAEMjyazORDOYnqIl3xzIAWWw1SBxxuOZ9yuh84b/RLk46r3JlVzkeMjbXZGOmHSu9mw==", + SecurityStamp = "90c670cf-30e0-4de8-84db-83fd5ad03e94", + ConcurrencyStamp = "598bfed1-7f02-4ba9-bf1d-2d4a6b5c9fda", + PhoneNumberConfirmed = false, + TwoFactorEnabled = false, + LockoutEnabled = true, + AccessFailedCount = 0, + AccountId = 3L + }, + new { Id = 2L, IsBlocked = false, diff --git a/DataAccess/Migrations/20250902111426_AddNewTrialAccount.Designer.cs b/DataAccess/Migrations/20250902111426_AddNewTrialAccount.Designer.cs new file mode 100644 index 0000000..093afd0 --- /dev/null +++ b/DataAccess/Migrations/20250902111426_AddNewTrialAccount.Designer.cs @@ -0,0 +1,381 @@ +// +using System; +using DataAccess; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Data.Migrations +{ + [DbContext(typeof(AppDbContext))] + [Migration("20250902111426_AddNewTrialAccount")] + partial class AddNewTrialAccount + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.9") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("DataAccess.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AccessFailedCount") + .HasColumnType("integer"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("boolean"); + + b.Property("IsBlocked") + .HasColumnType("boolean"); + + b.Property("LockoutEnabled") + .HasColumnType("boolean"); + + b.Property("LockoutEnd") + .HasColumnType("timestamp with time zone"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("PasswordHash") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("text"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("boolean"); + + b.Property("SecurityStamp") + .HasColumnType("text"); + + b.Property("TwoFactorEnabled") + .HasColumnType("boolean"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.ToTable("AspNetUsers", (string)null); + + b.HasData( + new + { + Id = 1L, + AccessFailedCount = 0, + AccountId = 1L, + ConcurrencyStamp = "15cfcf9e-94f3-4b65-884c-e03f1588fa20", + EmailConfirmed = false, + IsBlocked = false, + LockoutEnabled = true, + NormalizedUserName = "CEO@TOURMALINECORE.COM", + PasswordHash = "AQAAAAEAACcQAAAAEEim42ocT0sL9H818pD8yMxUDtA3GUCe+SDwlxl0geUX56G2GEvu7G6DKHjXMHowlA==", + PhoneNumberConfirmed = false, + SecurityStamp = "LCZLJS5K7YP2FO2NFI2P6CQZVJLWEYZZ", + TwoFactorEnabled = false, + UserName = "ceo@tourmalinecore.com" + }, + new + { + Id = 3L, + AccessFailedCount = 0, + AccountId = 3L, + ConcurrencyStamp = "598bfed1-7f02-4ba9-bf1d-2d4a6b5c9fda", + EmailConfirmed = false, + IsBlocked = false, + LockoutEnabled = true, + NormalizedUserName = "TRIAL@TOURMALINECORE.COM", + PasswordHash = "AQAAAAIAAYagAAAAEMjyazORDOYnqIl3xzIAWWw1SBxxuOZ9yuh84b/RLk46r3JlVzkeMjbXZGOmHSu9mw==", + PhoneNumberConfirmed = false, + SecurityStamp = "90c670cf-30e0-4de8-84db-83fd5ad03e94", + TwoFactorEnabled = false, + UserName = "trial@tourmalinecore.com" + }, + new + { + Id = 2L, + AccessFailedCount = 0, + AccountId = 2L, + ConcurrencyStamp = "6ef5ca6b-8ff7-4431-84f1-c04b1b4198b3", + EmailConfirmed = false, + IsBlocked = false, + LockoutEnabled = true, + NormalizedUserName = "INNER-CIRCLE-ADMIN@TOURMALINECORE.COM", + PasswordHash = "AQAAAAEAACcQAAAAEHeZpxgabtPpnFcKHWwBDedWSCuW7l6V0Kz/RmxCayiauzadB9IZHoqilHnSOPhrFQ==", + PhoneNumberConfirmed = false, + SecurityStamp = "BSBX3FSL64CHWY2LDLEJLXO27HC43KX4", + TwoFactorEnabled = false, + UserName = "inner-circle-admin@tourmalinecore.com" + }); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("text"); + + b.Property("ProviderKey") + .HasColumnType("text"); + + b.Property("ProviderDisplayName") + .HasColumnType("text"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnType("text"); + + b.Property("Value") + .HasColumnType("text"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClientFingerPrint") + .HasColumnType("text"); + + b.Property("ExpiredAtUtc") + .HasColumnType("timestamp with time zone"); + + b.Property("ExpiresIn") + .HasColumnType("timestamp with time zone"); + + b.Property("IsActive") + .HasColumnType("boolean"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("Value") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("Value"); + + b.ToTable("RefreshToken", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("DataAccess.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("DataAccess.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("DataAccess.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("DataAccess.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => + { + b.HasOne("DataAccess.Models.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/DataAccess/Migrations/20250902111426_AddNewTrialAccount.cs b/DataAccess/Migrations/20250902111426_AddNewTrialAccount.cs new file mode 100644 index 0000000..fc9e9ba --- /dev/null +++ b/DataAccess/Migrations/20250902111426_AddNewTrialAccount.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Data.Migrations +{ + public partial class AddNewTrialAccount : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.InsertData( + table: "AspNetUsers", + columns: new[] { "Id", "AccessFailedCount", "AccountId", "ConcurrencyStamp", "Email", "EmailConfirmed", "IsBlocked", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "TwoFactorEnabled", "UserName" }, + values: new object[] { 3L, 0, 3L, "598bfed1-7f02-4ba9-bf1d-2d4a6b5c9fda", null, false, false, true, null, null, "TRIAL@TOURMALINECORE.COM", "AQAAAAIAAYagAAAAEMjyazORDOYnqIl3xzIAWWw1SBxxuOZ9yuh84b/RLk46r3JlVzkeMjbXZGOmHSu9mw==", null, false, "90c670cf-30e0-4de8-84db-83fd5ad03e94", false, "trial@tourmalinecore.com" }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DeleteData( + table: "AspNetUsers", + keyColumn: "Id", + keyValue: 3L); + } + } +} diff --git a/DataAccess/Migrations/AppDbContextModelSnapshot.cs b/DataAccess/Migrations/AppDbContextModelSnapshot.cs index 00d6c2c..17316f7 100644 --- a/DataAccess/Migrations/AppDbContextModelSnapshot.cs +++ b/DataAccess/Migrations/AppDbContextModelSnapshot.cs @@ -22,7 +22,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("Data.Models.User", b => + modelBuilder.Entity("DataAccess.Models.User", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -112,6 +112,22 @@ protected override void BuildModel(ModelBuilder modelBuilder) UserName = "ceo@tourmalinecore.com" }, new + { + Id = 3L, + AccessFailedCount = 0, + AccountId = 3L, + ConcurrencyStamp = "598bfed1-7f02-4ba9-bf1d-2d4a6b5c9fda", + EmailConfirmed = false, + IsBlocked = false, + LockoutEnabled = true, + NormalizedUserName = "TRIAL@TOURMALINECORE.COM", + PasswordHash = "AQAAAAIAAYagAAAAEMjyazORDOYnqIl3xzIAWWw1SBxxuOZ9yuh84b/RLk46r3JlVzkeMjbXZGOmHSu9mw==", + PhoneNumberConfirmed = false, + SecurityStamp = "90c670cf-30e0-4de8-84db-83fd5ad03e94", + TwoFactorEnabled = false, + UserName = "trial@tourmalinecore.com" + }, + new { Id = 2L, AccessFailedCount = 0, @@ -261,7 +277,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("AspNetUserTokens", (string)null); }); - modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => + modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -307,7 +323,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { - b.HasOne("Data.Models.User", null) + b.HasOne("DataAccess.Models.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -316,7 +332,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.HasOne("Data.Models.User", null) + b.HasOne("DataAccess.Models.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -331,7 +347,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("Data.Models.User", null) + b.HasOne("DataAccess.Models.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -340,16 +356,16 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.HasOne("Data.Models.User", null) + b.HasOne("DataAccess.Models.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); - modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => + modelBuilder.Entity("TourmalineCore.AspNetCore.JwtAuthentication.Identity.Models.RefreshToken", b => { - b.HasOne("Data.Models.User", "User") + b.HasOne("DataAccess.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade)