diff --git a/Complex.Domain/Entities/Chat.cs b/Complex.Domain/Entities/Chat.cs index f849e38..92b223d 100644 --- a/Complex.Domain/Entities/Chat.cs +++ b/Complex.Domain/Entities/Chat.cs @@ -2,6 +2,7 @@ namespace Complex.Domain.Entities { + [Auditable] public class Chat:BaseEntity { public Guid ComplexId { set; get; } diff --git a/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.Designer.cs b/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.Designer.cs new file mode 100644 index 0000000..afe0d89 --- /dev/null +++ b/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.Designer.cs @@ -0,0 +1,1009 @@ +// +using System; +using Complex.Infrastructure; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Complex.Infrastructure.Migrations +{ + [DbContext(typeof(ComplexDBContext))] + [Migration("20260611161156_AddAuditableToChat")] + partial class AddAuditableToChat + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.3") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("Complex.Domain.Entities.BasicTable", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BasicTables"); + + b.HasDiscriminator("Discriminator").HasValue("BasicTable"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Chat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Body") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChatTypeId") + .HasColumnType("tinyint"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(4132)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("PersonMobileNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("Chats"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.City", b => + { + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CityTitle") + .HasColumnType("nvarchar(max)"); + + b.Property("ProvinceId") + .HasColumnType("int"); + + b.HasKey("CityId"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Cities"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .HasColumnType("nvarchar(max)"); + + b.Property("AreaMeter") + .HasColumnType("int"); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("ElevatorCount") + .HasColumnType("int"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(7208)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("StateId") + .HasColumnType("int"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("WarehouseCount") + .HasColumnType("int"); + + b.Property("YardMeter") + .HasColumnType("int"); + + b.Property("YearMake") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("ParentId"); + + b.ToTable("ComplexEntities"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexManager", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(9914)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("ManagerMobileNumberId") + .HasColumnType("nvarchar(450)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("ComplexId"); + + b.HasIndex("ManagerMobileNumberId"); + + b.ToTable("ComplexManagers"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexPerson", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("PersonMobileNumberId") + .HasColumnType("nvarchar(450)"); + + b.HasKey("Id"); + + b.HasIndex("PersonMobileNumberId"); + + b.ToTable("ComplexPersons"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexUnitEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Body") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ComplexId") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("EventDate") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(795)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("RegisterMobileNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("UnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("ComplexUnitEvents"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.CostCycle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Amount") + .HasColumnType("bigint"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("EncouragementAmount") + .HasColumnType("bigint"); + + b.Property("EncouragementDay") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("IncomeCostTitleId") + .HasColumnType("int"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(1849)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("date"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("ComplexId"); + + b.HasIndex("IncomeCostTitleId"); + + b.ToTable("CostCycles"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.IncomeCostTitle", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(3528)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("RegisterMobileNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("TransactionTypeId") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("ComplexId"); + + b.HasIndex("TransactionTypeId"); + + b.ToTable("IncomeCostTitles"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Person", b => + { + b.Property("Id") + .HasColumnType("nvarchar(450)"); + + b.Property("Avatar") + .HasColumnType("varbinary(max)"); + + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); + + b.Property("Gender") + .HasColumnType("tinyint"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(5645)); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("LastName") + .HasColumnType("nvarchar(max)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("Persons"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Poster", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("RegisterMobileNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Posters"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Province", b => + { + b.Property("ProvinceId") + .HasColumnType("int"); + + b.Property("ProvinceTitle") + .HasColumnType("nvarchar(max)"); + + b.HasKey("ProvinceId"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.SmsCode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InsertDate") + .HasColumnType("datetime2"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RequestCount") + .HasColumnType("int"); + + b.Property("Used") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("SmsCodes"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Transaction", b => + { + b.Property("Id") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("bigint"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("CostCycleId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FicheId") + .HasColumnType("nvarchar(max)"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(7492)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("PersonId") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TransactionDate") + .HasColumnType("datetime2"); + + b.Property("TransactionPersianDate") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TransactionTitleId") + .HasColumnType("int"); + + b.Property("UnitCostId") + .HasColumnType("bigint"); + + b.Property("UnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("CostCycleId"); + + b.HasIndex("PersonId"); + + b.HasIndex("TransactionTitleId"); + + b.HasIndex("UnitCostId") + .IsUnique(); + + b.HasIndex("UnitId"); + + b.ToTable("Transactions"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Unit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AreaMeter") + .HasColumnType("int"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmergencyTels") + .HasColumnType("nvarchar(max)"); + + b.Property("Floor") + .HasColumnType("int"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(9506)); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("ManagerDescription") + .HasColumnType("nvarchar(max)"); + + b.Property("OwnerId") + .HasColumnType("nvarchar(450)"); + + b.Property("ParkingAreaMeter") + .HasColumnType("int"); + + b.Property("PublicState") + .HasColumnType("nvarchar(max)"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("StateId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("nvarchar(450)"); + + b.Property("UnitName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("YardMeter") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ComplexId"); + + b.HasIndex("OwnerId"); + + b.HasIndex("StateId"); + + b.HasIndex("TenantId"); + + b.ToTable("Units"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UnitCost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("CostCycleId") + .HasColumnType("uniqueidentifier"); + + b.Property("Date") + .HasColumnType("date"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(1537)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TransactionId") + .HasColumnType("int"); + + b.Property("UnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("CostCycleId"); + + b.HasIndex("UnitId"); + + b.ToTable("UnitCosts"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UnitState", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("ComplexId") + .HasColumnType("uniqueidentifier"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InsertTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasDefaultValue(new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(2670)); + + b.Property("IsRemoved") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("UnitStates"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UserToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("MobileModel") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PersonId") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("RefreshToken") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RefreshTokenExp") + .HasColumnType("datetime2"); + + b.Property("TokenExp") + .HasColumnType("datetime2"); + + b.Property("TokenHash") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("PersonId"); + + b.ToTable("UserTokens"); + }); + + modelBuilder.Entity("CostCycleUnit", b => + { + b.Property("CostCyclesId") + .HasColumnType("uniqueidentifier"); + + b.Property("UnitsId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("CostCyclesId", "UnitsId"); + + b.HasIndex("UnitsId"); + + b.ToTable("CostCycleUnit"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.TransactionType", b => + { + b.HasBaseType("Complex.Domain.Entities.BasicTable"); + + b.HasDiscriminator().HasValue("TransactionType"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.City", b => + { + b.HasOne("Complex.Domain.Entities.Province", "Province") + .WithMany("Cities") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexEntity", b => + { + b.HasOne("Complex.Domain.Entities.City", "City") + .WithMany() + .HasForeignKey("CityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.ComplexEntity", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("City"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexManager", b => + { + b.HasOne("Complex.Domain.Entities.ComplexEntity", "Complex") + .WithMany("ComplexManagers") + .HasForeignKey("ComplexId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.Person", "ManagerMobileNumber") + .WithMany() + .HasForeignKey("ManagerMobileNumberId"); + + b.Navigation("Complex"); + + b.Navigation("ManagerMobileNumber"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexPerson", b => + { + b.HasOne("Complex.Domain.Entities.Person", "PersonMobileNumber") + .WithMany() + .HasForeignKey("PersonMobileNumberId"); + + b.Navigation("PersonMobileNumber"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.CostCycle", b => + { + b.HasOne("Complex.Domain.Entities.ComplexEntity", "Complex") + .WithMany() + .HasForeignKey("ComplexId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.IncomeCostTitle", "IncomeCostTitle") + .WithMany() + .HasForeignKey("IncomeCostTitleId"); + + b.Navigation("Complex"); + + b.Navigation("IncomeCostTitle"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.IncomeCostTitle", b => + { + b.HasOne("Complex.Domain.Entities.ComplexEntity", "Complex") + .WithMany() + .HasForeignKey("ComplexId"); + + b.HasOne("Complex.Domain.Entities.TransactionType", "TransactionType") + .WithMany() + .HasForeignKey("TransactionTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Complex"); + + b.Navigation("TransactionType"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Transaction", b => + { + b.HasOne("Complex.Domain.Entities.CostCycle", "CostCycle") + .WithMany() + .HasForeignKey("CostCycleId"); + + b.HasOne("Complex.Domain.Entities.Person", "Person") + .WithMany() + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.IncomeCostTitle", "TransactionTitle") + .WithMany() + .HasForeignKey("TransactionTitleId"); + + b.HasOne("Complex.Domain.Entities.UnitCost", "UnitCost") + .WithOne("Transaction") + .HasForeignKey("Complex.Domain.Entities.Transaction", "UnitCostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.Unit", "Unit") + .WithMany() + .HasForeignKey("UnitId"); + + b.Navigation("CostCycle"); + + b.Navigation("Person"); + + b.Navigation("TransactionTitle"); + + b.Navigation("Unit"); + + b.Navigation("UnitCost"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Unit", b => + { + b.HasOne("Complex.Domain.Entities.ComplexEntity", "Complex") + .WithMany("Units") + .HasForeignKey("ComplexId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.Person", "Owner") + .WithMany() + .HasForeignKey("OwnerId"); + + b.HasOne("Complex.Domain.Entities.UnitState", "State") + .WithMany() + .HasForeignKey("StateId"); + + b.HasOne("Complex.Domain.Entities.Person", "Tenant") + .WithMany() + .HasForeignKey("TenantId"); + + b.Navigation("Complex"); + + b.Navigation("Owner"); + + b.Navigation("State"); + + b.Navigation("Tenant"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UnitCost", b => + { + b.HasOne("Complex.Domain.Entities.CostCycle", "CostCycle") + .WithMany() + .HasForeignKey("CostCycleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.Unit", "Unit") + .WithMany() + .HasForeignKey("UnitId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.Navigation("CostCycle"); + + b.Navigation("Unit"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UserToken", b => + { + b.HasOne("Complex.Domain.Entities.Person", "Person") + .WithMany("UserTokens") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Person"); + }); + + modelBuilder.Entity("CostCycleUnit", b => + { + b.HasOne("Complex.Domain.Entities.CostCycle", null) + .WithMany() + .HasForeignKey("CostCyclesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Complex.Domain.Entities.Unit", null) + .WithMany() + .HasForeignKey("UnitsId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + }); + + modelBuilder.Entity("Complex.Domain.Entities.ComplexEntity", b => + { + b.Navigation("ComplexManagers"); + + b.Navigation("Units"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Person", b => + { + b.Navigation("UserTokens"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.Province", b => + { + b.Navigation("Cities"); + }); + + modelBuilder.Entity("Complex.Domain.Entities.UnitCost", b => + { + b.Navigation("Transaction") + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.cs b/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.cs new file mode 100644 index 0000000..03ebe86 --- /dev/null +++ b/Complex.Infrastructure/Migrations/20260611161156_AddAuditableToChat.cs @@ -0,0 +1,258 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Complex.Infrastructure.Migrations +{ + public partial class AddAuditableToChat : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "UnitStates", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(2670), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 626, DateTimeKind.Local).AddTicks(1646)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Units", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(9506), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(7151)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "UnitCosts", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(1537), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(9764)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Transactions", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(7492), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(3921)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Persons", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(5645), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(1728)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "IncomeCostTitles", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(3528), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(9858)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "CostCycles", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(1849), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(7249)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexUnitEvents", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(795), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(5016)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexManagers", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(9914), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(2426)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexEntities", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(7208), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 623, DateTimeKind.Local).AddTicks(7632)); + + migrationBuilder.AddColumn( + name: "InsertTime", + table: "Chats", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(4132)); + + migrationBuilder.AddColumn( + name: "IsRemoved", + table: "Chats", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "RemoveTime", + table: "Chats", + type: "datetime2", + nullable: true); + + migrationBuilder.AddColumn( + name: "UpdateTime", + table: "Chats", + type: "datetime2", + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "InsertTime", + table: "Chats"); + + migrationBuilder.DropColumn( + name: "IsRemoved", + table: "Chats"); + + migrationBuilder.DropColumn( + name: "RemoveTime", + table: "Chats"); + + migrationBuilder.DropColumn( + name: "UpdateTime", + table: "Chats"); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "UnitStates", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 626, DateTimeKind.Local).AddTicks(1646), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(2670)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Units", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(7151), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(9506)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "UnitCosts", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(9764), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 680, DateTimeKind.Local).AddTicks(1537)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Transactions", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(3921), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(7492)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "Persons", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 625, DateTimeKind.Local).AddTicks(1728), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(5645)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "IncomeCostTitles", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(9858), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(3528)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "CostCycles", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(7249), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(1849)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexUnitEvents", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(5016), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 679, DateTimeKind.Local).AddTicks(795)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexManagers", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 624, DateTimeKind.Local).AddTicks(2426), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(9914)); + + migrationBuilder.AlterColumn( + name: "InsertTime", + table: "ComplexEntities", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(2026, 6, 9, 2, 28, 45, 623, DateTimeKind.Local).AddTicks(7632), + oldClrType: typeof(DateTime), + oldType: "datetime2", + oldDefaultValue: new DateTime(2026, 6, 11, 19, 41, 56, 678, DateTimeKind.Local).AddTicks(7208)); + } + } +}