diff --git a/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.Designer.cs b/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.Designer.cs new file mode 100644 index 0000000..7015814 --- /dev/null +++ b/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.Designer.cs @@ -0,0 +1,252 @@ +// +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable +namespace Hcs.WebApp.Data.Hcs.Migrations +{ + [DbContext(typeof(HcsDbContext))] + [Migration("20251114075150_UpdateHouseEntity")] + public partial class UpdateHouseEntity + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.9") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Campaign", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("EndedAt") + .HasColumnType("datetime2"); + + b.Property("FailureReason") + .HasColumnType("nvarchar(max)"); + + b.Property("InitiatorId") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Progress") + .HasColumnType("int"); + + b.Property("StartedAt") + .HasColumnType("datetime2"); + + b.Property("Step") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Campaigns"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.House", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("FiasId") + .HasColumnType("uniqueidentifier"); + + b.Property("HcsId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsMkd") + .HasColumnType("bit"); + + b.Property("IsZhd") + .HasColumnType("bit"); + + b.Property("LastSyncOperationId") + .HasColumnType("int"); + + b.Property("SyncedAt") + .HasColumnType("datetime2"); + + b.Property("ThirdPartyId") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("FiasId") + .IsUnique() + .HasFilter("[FiasId] IS NOT NULL"); + + b.HasIndex("LastSyncOperationId"); + + b.ToTable("Houses"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Operation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CampaignId") + .HasColumnType("int"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("EndedAt") + .HasColumnType("datetime2"); + + b.Property("FailureReason") + .HasColumnType("nvarchar(max)"); + + b.Property("MessageGuid") + .HasColumnType("nvarchar(max)"); + + b.Property("StartedAt") + .HasColumnType("datetime2"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("CampaignId"); + + b.ToTable("Operations"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("IsCommon") + .HasColumnType("bit"); + + b.Property("LastSyncOperationId") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Number") + .HasColumnType("int"); + + b.Property("SyncedAt") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("LastSyncOperationId"); + + b.ToTable("Registries"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GUID") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Json") + .HasColumnType("nvarchar(max)"); + + b.Property("RegistryId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("RegistryId"); + + b.ToTable("Elements"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.House", b => + { + b.HasOne("Hcs.WebApp.Data.Hcs.Operation", "LastSyncOperation") + .WithMany() + .HasForeignKey("LastSyncOperationId"); + + b.Navigation("LastSyncOperation"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Operation", b => + { + b.HasOne("Hcs.WebApp.Data.Hcs.Campaign", "Campaign") + .WithMany("Operations") + .HasForeignKey("CampaignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Campaign"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b => + { + b.HasOne("Hcs.WebApp.Data.Hcs.Operation", "LastSyncOperation") + .WithMany("Registries") + .HasForeignKey("LastSyncOperationId"); + + b.Navigation("LastSyncOperation"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b => + { + b.HasOne("Hcs.WebApp.Data.Hcs.Registry", "Registry") + .WithMany("Elements") + .HasForeignKey("RegistryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Registry"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Campaign", b => + { + b.Navigation("Operations"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Operation", b => + { + b.Navigation("Registries"); + }); + + modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b => + { + b.Navigation("Elements"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.cs b/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.cs new file mode 100644 index 0000000..922f9b1 --- /dev/null +++ b/Hcs.WebApp/Data/Hcs/Migrations/20251114075150_UpdateHouseEntity.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable +namespace Hcs.WebApp.Data.Hcs.Migrations +{ + /// + public partial class UpdateHouseEntity : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_Houses_FiasId", + table: "Houses"); + + migrationBuilder.AlterColumn( + name: "ThirdPartyId", + table: "Houses", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(int), + oldType: "int"); + + migrationBuilder.AlterColumn( + name: "FiasId", + table: "Houses", + type: "uniqueidentifier", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uniqueidentifier"); + + migrationBuilder.AddColumn( + name: "HcsId", + table: "Houses", + type: "uniqueidentifier", + nullable: true); + + migrationBuilder.CreateIndex( + name: "IX_Houses_FiasId", + table: "Houses", + column: "FiasId", + unique: true, + filter: "[FiasId] IS NOT NULL"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_Houses_FiasId", + table: "Houses"); + + migrationBuilder.DropColumn( + name: "HcsId", + table: "Houses"); + + migrationBuilder.AlterColumn( + name: "ThirdPartyId", + table: "Houses", + type: "int", + nullable: false, + defaultValue: 0, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "FiasId", + table: "Houses", + type: "uniqueidentifier", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uniqueidentifier", + oldNullable: true); + + migrationBuilder.CreateIndex( + name: "IX_Houses_FiasId", + table: "Houses", + column: "FiasId", + unique: true); + } + } +} diff --git a/Hcs.WebApp/Data/Hcs/Migrations/HcsDbContextModelSnapshot.cs b/Hcs.WebApp/Data/Hcs/Migrations/HcsDbContextModelSnapshot.cs index d2daed8..23592a9 100644 --- a/Hcs.WebApp/Data/Hcs/Migrations/HcsDbContextModelSnapshot.cs +++ b/Hcs.WebApp/Data/Hcs/Migrations/HcsDbContextModelSnapshot.cs @@ -64,7 +64,10 @@ namespace Hcs.WebApp.Data.Hcs.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - b.Property("FiasId") + b.Property("FiasId") + .HasColumnType("uniqueidentifier"); + + b.Property("HcsId") .HasColumnType("uniqueidentifier"); b.Property("IsMkd") @@ -79,13 +82,14 @@ namespace Hcs.WebApp.Data.Hcs.Migrations b.Property("SyncedAt") .HasColumnType("datetime2"); - b.Property("ThirdPartyId") - .HasColumnType("int"); + b.Property("ThirdPartyId") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); b.HasIndex("FiasId") - .IsUnique(); + .IsUnique() + .HasFilter("[FiasId] IS NOT NULL"); b.HasIndex("LastSyncOperationId");