diff --git a/src/FiscalOS.Infra/Migrations/20260201115839_AddUsersAndRefreshTokens.cs b/src/FiscalOS.Infra/Migrations/20260201115839_AddUsersAndRefreshTokens.cs index 09951ad..f9ba79a 100644 --- a/src/FiscalOS.Infra/Migrations/20260201115839_AddUsersAndRefreshTokens.cs +++ b/src/FiscalOS.Infra/Migrations/20260201115839_AddUsersAndRefreshTokens.cs @@ -1,6 +1,4 @@ -using System; - -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable diff --git a/src/FiscalOS.Infra/Migrations/20260201125529_AddUsernameToUsers.cs b/src/FiscalOS.Infra/Migrations/20260201125529_AddUsernameToUsers.cs index 77be84c..9e1d3f0 100644 --- a/src/FiscalOS.Infra/Migrations/20260201125529_AddUsernameToUsers.cs +++ b/src/FiscalOS.Infra/Migrations/20260201125529_AddUsernameToUsers.cs @@ -1,6 +1,4 @@ -using System; - -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable diff --git a/src/FiscalOS.Infra/Migrations/20260202010259_AddTimestamps.cs b/src/FiscalOS.Infra/Migrations/20260202010259_AddTimestamps.cs index c5376b2..36456cf 100644 --- a/src/FiscalOS.Infra/Migrations/20260202010259_AddTimestamps.cs +++ b/src/FiscalOS.Infra/Migrations/20260202010259_AddTimestamps.cs @@ -1,6 +1,4 @@ -using System; - -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable diff --git a/src/FiscalOS.Infra/Migrations/20260202125635_AddPropsToRefreshToken.cs b/src/FiscalOS.Infra/Migrations/20260202125635_AddPropsToRefreshToken.cs index 47d7ccb..7b3f2eb 100644 --- a/src/FiscalOS.Infra/Migrations/20260202125635_AddPropsToRefreshToken.cs +++ b/src/FiscalOS.Infra/Migrations/20260202125635_AddPropsToRefreshToken.cs @@ -1,6 +1,4 @@ -using System; - -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable diff --git a/src/FiscalOS.Infra/Migrations/20260203115122_AddUserIdPropToRefreshToken.cs b/src/FiscalOS.Infra/Migrations/20260203115122_AddUserIdPropToRefreshToken.cs index d4fab27..84adf5f 100644 --- a/src/FiscalOS.Infra/Migrations/20260203115122_AddUserIdPropToRefreshToken.cs +++ b/src/FiscalOS.Infra/Migrations/20260203115122_AddUserIdPropToRefreshToken.cs @@ -4,19 +4,19 @@ namespace FiscalOS.Infra.Migrations { + /// + public partial class AddUserIdPropToRefreshToken : Migration + { /// - public partial class AddUserIdPropToRefreshToken : Migration + protected override void Up(MigrationBuilder migrationBuilder) { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } } -} + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} \ No newline at end of file diff --git a/src/FiscalOS.Infra/Migrations/20260203164938_AddRevokedPropertyToRefreshToken.cs b/src/FiscalOS.Infra/Migrations/20260203164938_AddRevokedPropertyToRefreshToken.cs index 736a3db..30db03c 100644 --- a/src/FiscalOS.Infra/Migrations/20260203164938_AddRevokedPropertyToRefreshToken.cs +++ b/src/FiscalOS.Infra/Migrations/20260203164938_AddRevokedPropertyToRefreshToken.cs @@ -4,26 +4,26 @@ namespace FiscalOS.Infra.Migrations { + /// + public partial class AddRevokedPropertyToRefreshToken : Migration + { /// - public partial class AddRevokedPropertyToRefreshToken : Migration + protected override void Up(MigrationBuilder migrationBuilder) { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Revoked", - table: "RefreshTokens", - type: "INTEGER", - nullable: false, - defaultValue: false); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "Revoked", - table: "RefreshTokens"); - } + migrationBuilder.AddColumn( + name: "Revoked", + table: "RefreshTokens", + type: "INTEGER", + nullable: false, + defaultValue: false); } -} + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Revoked", + table: "RefreshTokens"); + } + } +} \ No newline at end of file diff --git a/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.Designer.cs b/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.Designer.cs new file mode 100644 index 0000000..c283c4f --- /dev/null +++ b/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.Designer.cs @@ -0,0 +1,108 @@ +// +using System; +using FiscalOS.Infra.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace FiscalOS.Infra.Migrations +{ + [DbContext(typeof(AppDbContext))] + [Migration("20260205192220_AddEncryptionKeyToUserModel")] + partial class AddEncryptionKeyToUserModel + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "10.0.2"); + + modelBuilder.Entity("FiscalOS.Core.Identity.RefreshToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("ExpiresAt") + .HasColumnType("TEXT"); + + b.Property("Revoked") + .HasColumnType("INTEGER"); + + b.Property("Token") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Token") + .IsUnique(); + + b.HasIndex("UserId"); + + b.ToTable("RefreshTokens"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("EncryptedDataKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("HashedPassword") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.Property("Username") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Username") + .IsUnique(); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.RefreshToken", b => + { + b.HasOne("FiscalOS.Core.Identity.User", "User") + .WithMany("RefreshTokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.User", b => + { + b.Navigation("RefreshTokens"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.cs b/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.cs new file mode 100644 index 0000000..bd7f4e3 --- /dev/null +++ b/src/FiscalOS.Infra/Migrations/20260205192220_AddEncryptionKeyToUserModel.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FiscalOS.Infra.Migrations +{ + /// + public partial class AddEncryptionKeyToUserModel : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "EncryptedDataKey", + table: "Users", + type: "TEXT", + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "EncryptedDataKey", + table: "Users"); + } + } +} \ No newline at end of file diff --git a/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.Designer.cs b/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.Designer.cs new file mode 100644 index 0000000..832d0c7 --- /dev/null +++ b/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.Designer.cs @@ -0,0 +1,112 @@ +// +using System; +using FiscalOS.Infra.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace FiscalOS.Infra.Migrations +{ + [DbContext(typeof(AppDbContext))] + [Migration("20260205222656_AddEncryptionKeyIdToUserModel")] + partial class AddEncryptionKeyIdToUserModel + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "10.0.2"); + + modelBuilder.Entity("FiscalOS.Core.Identity.RefreshToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("ExpiresAt") + .HasColumnType("TEXT"); + + b.Property("Revoked") + .HasColumnType("INTEGER"); + + b.Property("Token") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Token") + .IsUnique(); + + b.HasIndex("UserId"); + + b.ToTable("RefreshTokens"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("EncryptedDataKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("EncryptionKeyId") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("HashedPassword") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.Property("Username") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Username") + .IsUnique(); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.RefreshToken", b => + { + b.HasOne("FiscalOS.Core.Identity.User", "User") + .WithMany("RefreshTokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FiscalOS.Core.Identity.User", b => + { + b.Navigation("RefreshTokens"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.cs b/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.cs new file mode 100644 index 0000000..b40cc68 --- /dev/null +++ b/src/FiscalOS.Infra/Migrations/20260205222656_AddEncryptionKeyIdToUserModel.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FiscalOS.Infra.Migrations +{ + /// + public partial class AddEncryptionKeyIdToUserModel : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "EncryptionKeyId", + table: "Users", + type: "TEXT", + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "EncryptionKeyId", + table: "Users"); + } + } +} \ No newline at end of file diff --git a/src/FiscalOS.Infra/Migrations/AppDbContextModelSnapshot.cs b/src/FiscalOS.Infra/Migrations/AppDbContextModelSnapshot.cs index e95436d..c15695f 100644 --- a/src/FiscalOS.Infra/Migrations/AppDbContextModelSnapshot.cs +++ b/src/FiscalOS.Infra/Migrations/AppDbContextModelSnapshot.cs @@ -61,6 +61,14 @@ namespace FiscalOS.Infra.Migrations b.Property("CreatedAt") .HasColumnType("TEXT"); + b.Property("EncryptedDataKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("EncryptionKeyId") + .IsRequired() + .HasColumnType("TEXT"); + b.Property("HashedPassword") .IsRequired() .HasColumnType("TEXT");