// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using MilitaryTrainingManagement.Data; #nullable disable namespace MilitaryTrainingManagement.Migrations { [DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.AllocationDistribution", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ActualCompletion") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)"); b.Property("AllocationId") .HasColumnType("int"); b.Property("ApprovedAt") .HasColumnType("datetime2"); b.Property("ApprovedByUserId") .HasColumnType("int"); b.Property("IsApproved") .HasColumnType("bit"); b.Property("ReportedAt") .HasColumnType("datetime2"); b.Property("ReportedByUserId") .HasColumnType("int"); b.Property("TargetUnitId") .HasColumnType("int"); b.Property("UnitQuota") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)"); b.HasKey("Id"); b.HasIndex("AllocationId"); b.HasIndex("ApprovedByUserId"); b.HasIndex("ReportedByUserId"); b.HasIndex("TargetUnitId"); b.ToTable("AllocationDistributions"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ApprovalRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("OriginalData") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Reason") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("RequestedAt") .HasColumnType("datetime2"); b.Property("RequestedByUnitId") .HasColumnType("int"); b.Property("RequestedByUserId") .HasColumnType("int"); b.Property("RequestedChanges") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ReviewComments") .HasColumnType("nvarchar(max)"); b.Property("ReviewedAt") .HasColumnType("datetime2"); b.Property("ReviewedByUserId") .HasColumnType("int"); b.Property("Status") .HasColumnType("int"); b.Property("TargetEntityId") .HasColumnType("int"); b.Property("Type") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("RequestedByUnitId"); b.HasIndex("RequestedByUserId"); b.HasIndex("ReviewedByUserId"); b.ToTable("ApprovalRequests"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.AuditLog", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Action") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("ChangedFields") .HasColumnType("nvarchar(max)"); b.Property("Description") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("EntityId") .HasColumnType("int"); b.Property("EntityType") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ErrorMessage") .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("IsSuccess") .HasColumnType("bit"); b.Property("NewValues") .HasColumnType("nvarchar(max)"); b.Property("OldValues") .HasColumnType("nvarchar(max)"); b.Property("OrganizationalUnitId") .HasColumnType("int"); b.Property("RequestPath") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Timestamp") .HasColumnType("datetime2"); b.Property("UserAgent") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("UserId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Action"); b.HasIndex("EntityId"); b.HasIndex("EntityType"); b.HasIndex("OrganizationalUnitId"); b.HasIndex("Timestamp"); b.HasIndex("UserId"); b.ToTable("AuditLogs"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ConsumptionReport", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AllocationDistributionId") .HasColumnType("int"); b.Property("CumulativeAmount") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)"); b.Property("Remarks") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("ReportedAmount") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)"); b.Property("ReportedAt") .HasColumnType("datetime2"); b.Property("ReportedByUnitId") .HasColumnType("int"); b.Property("ReportedByUserId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("AllocationDistributionId"); b.HasIndex("ReportedAt"); b.HasIndex("ReportedByUnitId"); b.HasIndex("ReportedByUserId"); b.ToTable("ConsumptionReports"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ConsumptionReportChangeRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ConsumptionReportId") .HasColumnType("int"); b.Property("ProcessComments") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("ProcessedAt") .HasColumnType("datetime2"); b.Property("ProcessedByUnitId") .HasColumnType("int"); b.Property("ProcessedByUserId") .HasColumnType("int"); b.Property("Reason") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("RequestType") .HasColumnType("int"); b.Property("RequestedAt") .HasColumnType("datetime2"); b.Property("RequestedByUnitId") .HasColumnType("int"); b.Property("RequestedByUserId") .HasColumnType("int"); b.Property("Status") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ConsumptionReportId"); b.HasIndex("ProcessedByUnitId"); b.HasIndex("ProcessedByUserId"); b.HasIndex("RequestedByUnitId"); b.HasIndex("RequestedByUserId"); b.HasIndex("Status"); b.ToTable("ConsumptionReportChangeRequests"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.MaterialAllocation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Category") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedByUnitId") .HasColumnType("int"); b.Property("MaterialName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("TotalQuota") .HasPrecision(18, 2) .HasColumnType("decimal(18,2)"); b.Property("Unit") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("CreatedByUnitId"); b.ToTable("MaterialAllocations"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.MaterialCategory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("Description") .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("SortOrder") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("MaterialCategories"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("Level") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ParentId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ParentId"); b.ToTable("OrganizationalUnits"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.Personnel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Achievements") .HasColumnType("nvarchar(max)"); b.Property("Age") .HasColumnType("int"); b.Property("ApprovedAt") .HasColumnType("datetime2"); b.Property("ApprovedByUnitId") .HasColumnType("int"); b.Property("ApprovedLevel") .HasColumnType("int"); b.Property("BirthDate") .HasColumnType("nvarchar(max)"); b.Property("ContactInfo") .HasColumnType("nvarchar(max)"); b.Property("EducationLevel") .HasColumnType("nvarchar(max)"); b.Property("EnlistmentDate") .HasColumnType("nvarchar(max)"); b.Property("Ethnicity") .HasColumnType("nvarchar(max)"); b.Property("Gender") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)"); b.Property("Height") .HasPrecision(5, 2) .HasColumnType("decimal(5,2)"); b.Property("Hometown") .HasColumnType("nvarchar(max)"); b.Property("IdNumber") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("PendingUpgradeByUnitId") .HasColumnType("int"); b.Property("PhotoPath") .HasColumnType("nvarchar(max)"); b.Property("PoliticalStatus") .HasColumnType("nvarchar(max)"); b.Property("Position") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ProfessionalTitle") .HasColumnType("nvarchar(max)"); b.Property("Rank") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("Specialty") .HasColumnType("nvarchar(max)"); b.Property("Status") .HasColumnType("int"); b.Property("SubmittedAt") .HasColumnType("datetime2"); b.Property("SubmittedByUnitId") .HasColumnType("int"); b.Property("SupportingDocuments") .HasColumnType("nvarchar(max)"); b.Property("TrainingParticipation") .HasColumnType("nvarchar(max)"); b.Property("Unit") .HasColumnType("nvarchar(max)"); b.HasKey("Id"); b.HasIndex("ApprovedByUnitId"); b.HasIndex("PendingUpgradeByUnitId"); b.HasIndex("SubmittedByUnitId"); b.ToTable("Personnel"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.PersonnelApprovalHistory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Action") .HasColumnType("int"); b.Property("Comments") .HasColumnType("nvarchar(max)"); b.Property("NewLevel") .HasColumnType("int"); b.Property("NewStatus") .HasColumnType("int"); b.Property("PersonnelId") .HasColumnType("int"); b.Property("PreviousLevel") .HasColumnType("int"); b.Property("PreviousStatus") .HasColumnType("int"); b.Property("ReviewedAt") .HasColumnType("datetime2"); b.Property("ReviewedByUnitId") .HasColumnType("int"); b.Property("ReviewedByUserId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("PersonnelId"); b.HasIndex("ReviewedByUnitId"); b.HasIndex("ReviewedByUserId"); b.ToTable("PersonnelApprovalHistories"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.UserAccount", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisplayName") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("IsActive") .HasColumnType("bit"); b.Property("LastLoginAt") .HasColumnType("datetime2"); b.Property("OrganizationalUnitId") .HasColumnType("int"); b.Property("PasswordHash") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("PlainPassword") .HasColumnType("nvarchar(max)"); b.Property("Username") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("OrganizationalUnitId"); b.HasIndex("Username") .IsUnique(); b.ToTable("UserAccounts"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.AllocationDistribution", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.MaterialAllocation", "Allocation") .WithMany("Distributions") .HasForeignKey("AllocationId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ApprovedByUser") .WithMany() .HasForeignKey("ApprovedByUserId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ReportedByUser") .WithMany() .HasForeignKey("ReportedByUserId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "TargetUnit") .WithMany() .HasForeignKey("TargetUnitId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.Navigation("Allocation"); b.Navigation("ApprovedByUser"); b.Navigation("ReportedByUser"); b.Navigation("TargetUnit"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ApprovalRequest", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "RequestedByUnit") .WithMany() .HasForeignKey("RequestedByUnitId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "RequestedByUser") .WithMany() .HasForeignKey("RequestedByUserId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ReviewedByUser") .WithMany() .HasForeignKey("ReviewedByUserId") .OnDelete(DeleteBehavior.NoAction); b.Navigation("RequestedByUnit"); b.Navigation("RequestedByUser"); b.Navigation("ReviewedByUser"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.AuditLog", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "OrganizationalUnit") .WithMany() .HasForeignKey("OrganizationalUnitId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.NoAction); b.Navigation("OrganizationalUnit"); b.Navigation("User"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ConsumptionReport", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.AllocationDistribution", "AllocationDistribution") .WithMany() .HasForeignKey("AllocationDistributionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "ReportedByUnit") .WithMany() .HasForeignKey("ReportedByUnitId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ReportedByUser") .WithMany() .HasForeignKey("ReportedByUserId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.Navigation("AllocationDistribution"); b.Navigation("ReportedByUnit"); b.Navigation("ReportedByUser"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.ConsumptionReportChangeRequest", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.ConsumptionReport", "ConsumptionReport") .WithMany() .HasForeignKey("ConsumptionReportId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "ProcessedByUnit") .WithMany() .HasForeignKey("ProcessedByUnitId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ProcessedByUser") .WithMany() .HasForeignKey("ProcessedByUserId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "RequestedByUnit") .WithMany() .HasForeignKey("RequestedByUnitId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "RequestedByUser") .WithMany() .HasForeignKey("RequestedByUserId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.Navigation("ConsumptionReport"); b.Navigation("ProcessedByUnit"); b.Navigation("ProcessedByUser"); b.Navigation("RequestedByUnit"); b.Navigation("RequestedByUser"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.MaterialAllocation", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "CreatedByUnit") .WithMany() .HasForeignKey("CreatedByUnitId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("CreatedByUnit"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "Parent") .WithMany("Children") .HasForeignKey("ParentId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Parent"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.Personnel", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "ApprovedByUnit") .WithMany() .HasForeignKey("ApprovedByUnitId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "PendingUpgradeByUnit") .WithMany() .HasForeignKey("PendingUpgradeByUnitId"); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "SubmittedByUnit") .WithMany() .HasForeignKey("SubmittedByUnitId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.Navigation("ApprovedByUnit"); b.Navigation("PendingUpgradeByUnit"); b.Navigation("SubmittedByUnit"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.PersonnelApprovalHistory", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.Personnel", "Personnel") .WithMany() .HasForeignKey("PersonnelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "ReviewedByUnit") .WithMany() .HasForeignKey("ReviewedByUnitId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("MilitaryTrainingManagement.Models.Entities.UserAccount", "ReviewedByUser") .WithMany() .HasForeignKey("ReviewedByUserId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.Navigation("Personnel"); b.Navigation("ReviewedByUnit"); b.Navigation("ReviewedByUser"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.UserAccount", b => { b.HasOne("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", "OrganizationalUnit") .WithMany("Accounts") .HasForeignKey("OrganizationalUnitId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("OrganizationalUnit"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.MaterialAllocation", b => { b.Navigation("Distributions"); }); modelBuilder.Entity("MilitaryTrainingManagement.Models.Entities.OrganizationalUnit", b => { b.Navigation("Accounts"); b.Navigation("Children"); }); #pragma warning restore 612, 618 } } }