Changeset 70a9f6d
- Timestamp:
- 12/10/25 15:12:34 (10 months ago)
- Branches:
- master
- Children:
- 61fd94e
- Parents:
- 33c69d6
- Location:
- iknow-api
- Files:
-
- 1 added
- 6 edited
- 2 moved
-
Controllers/UserController.cs (modified) (1 diff)
-
Data/AppDbContext.cs (modified) (4 diffs)
-
Migrations/20251210134426_UpdateModels.Designer.cs (moved) (moved from iknow-api/Migrations/20251209133847_InitalCreate.Designer.cs ) (9 diffs)
-
Migrations/20251210134426_UpdateModels.cs (moved) (moved from iknow-api/Migrations/20251209133847_InitalCreate.cs ) (14 diffs)
-
Migrations/AppDbContextModelSnapshot.cs (modified) (8 diffs)
-
Models/ActiveSemester.cs (added)
-
Models/EnrolledSemesters.cs (modified) (2 diffs)
-
Models/SemesterSubjects.cs (modified) (1 diff)
-
Models/User.cs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
iknow-api/Controllers/UserController.cs
r33c69d6 r70a9f6d 73 73 { 74 74 id = userData[i].Id, 75 semester = (userData[i].Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Year}/{userData[i].Year + 1})",75 //semester = (userData[i].Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Year}/{userData[i].Year + 1})", 76 76 direction = userData[i].Major?.Name ?? "", 77 77 quota = userData[i].QuotaType.ToString(), -
iknow-api/Data/AppDbContext.cs
r33c69d6 r70a9f6d 14 14 public DbSet<EnrollmentInfo> EnrollmentInfo { get; set; } 15 15 public DbSet<RefreshToken> RefreshToken { get; set; } 16 17 16 public DbSet<Subject> Subjects { get; set; } 18 17 public DbSet<DependencySubject> DependencySubjects { get; set; } … … 20 19 public DbSet<PassedSubject> PassedSubjects { get; set; } 21 20 public DbSet<EnrolledSemesters> EnrolledSemesters { get; set; } 21 public DbSet<ActiveSemesters> ActiveSemesters { get; set; } 22 public DbSet<SemesterSubject> SemesterSubjects { get; set; } 23 public DbSet<MajorSubjects> MajorSubjects { get; set; } 24 public DbSet<UserDocuments> UserDocuments { get; set; } 25 public DbSet<Documents> Documents { get; set; } 26 public DbSet<Payment> Payments { get; set; } 22 27 23 28 … … 92 97 // ------------------------- 93 98 modelBuilder.Entity<Payment>() 94 .HasKey( ab => new { ab.UserId, ab.EnrollmentInfoId });99 .HasKey(p => p.Id); 95 100 96 101 modelBuilder.Entity<Payment>() 97 .HasOne( ab => ab.User)98 .WithMany( a => a.EnrolledSemesters)99 .HasForeignKey( ab => ab.UserId)102 .HasOne(p => p.User) 103 .WithMany(u => u.EnrolledSemesters) 104 .HasForeignKey(p => p.UserId) 100 105 .OnDelete(DeleteBehavior.Cascade); 101 106 102 107 modelBuilder.Entity<Payment>() 103 .HasOne( ab => ab.EnrolledSemesters)104 .WithMany( b => b.Users)105 .HasForeignKey( ab => ab.EnrollmentInfoId)108 .HasOne(p => p.EnrolledSemesters) 109 .WithMany(es => es.Users) 110 .HasForeignKey(p => p.EnrollmentInfoId) 106 111 .OnDelete(DeleteBehavior.Cascade); 107 112 … … 151 156 .HasForeignKey<PassedSubject>(ps => ps.SemesterSubjectId) 152 157 .OnDelete(DeleteBehavior.Cascade); 158 159 // ------------------------- 160 // ActiveSemesters to EnrolledSemesters (one-to-many) 161 // ------------------------- 162 modelBuilder.Entity<EnrolledSemesters>() 163 .HasOne(es => es.Semester) 164 .WithMany(a => a.EnrolledSemesters) 165 .HasForeignKey(es => es.Id) 166 .OnDelete(DeleteBehavior.Restrict); 153 167 } 154 168 -
iknow-api/Migrations/20251210134426_UpdateModels.Designer.cs
r33c69d6 r70a9f6d 13 13 { 14 14 [DbContext(typeof(AppDbContext))] 15 [Migration("202512 09133847_InitalCreate")]16 partial class InitalCreate15 [Migration("20251210134426_UpdateModels")] 16 partial class UpdateModels 17 17 { 18 18 /// <inheritdoc /> … … 26 26 NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); 27 27 28 modelBuilder.Entity("iknow_api.Models.ActiveSemesters", b => 29 { 30 b.Property<int>("id") 31 .ValueGeneratedOnAdd() 32 .HasColumnType("integer"); 33 34 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id")); 35 36 b.Property<int>("Type") 37 .HasColumnType("integer"); 38 39 b.Property<int>("year") 40 .HasColumnType("integer"); 41 42 b.HasKey("id"); 43 44 b.ToTable("ActiveSemesters"); 45 }); 46 28 47 modelBuilder.Entity("iknow_api.Models.ContactInfo", b => 29 48 { … … 100 119 { 101 120 b.Property<int>("Id") 102 .ValueGeneratedOnAdd() 103 .HasColumnType("integer"); 104 105 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); 121 .HasColumnType("integer"); 122 123 b.Property<DateTime>("CratedAt") 124 .HasColumnType("timestamp with time zone"); 125 126 b.Property<DateTime>("LastChange") 127 .HasColumnType("timestamp with time zone"); 106 128 107 129 b.Property<int>("MajorId") 108 130 .HasColumnType("integer"); 109 131 132 b.Property<string>("Node") 133 .HasColumnType("text"); 134 110 135 b.Property<int>("QuotaType") 111 136 .HasColumnType("integer"); 112 137 113 b.Property< int>("Type")114 .HasColumnType(" integer");138 b.Property<string>("StudentComment") 139 .HasColumnType("text"); 115 140 116 141 b.Property<int>("UserId") 117 142 .HasColumnType("integer"); 118 143 119 b.Property< int>("Year")120 .HasColumnType(" integer");144 b.Property<DateTime>("Veryfied") 145 .HasColumnType("timestamp with time zone"); 121 146 122 147 b.HasKey("Id"); … … 279 304 modelBuilder.Entity("iknow_api.Models.Payment", b => 280 305 { 306 b.Property<int>("Id") 307 .ValueGeneratedOnAdd() 308 .HasColumnType("integer"); 309 310 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); 311 312 b.Property<int>("EnrollmentInfoId") 313 .HasColumnType("integer"); 314 281 315 b.Property<int>("UserId") 282 316 .HasColumnType("integer"); 283 317 284 b.Property<int>("EnrollmentInfoId") 285 .HasColumnType("integer"); 286 287 b.Property<int>("Id") 288 .HasColumnType("integer"); 289 290 b.HasKey("UserId", "EnrollmentInfoId"); 318 b.HasKey("Id"); 291 319 292 320 b.HasIndex("EnrollmentInfoId"); 293 321 294 b.ToTable("Payment"); 322 b.HasIndex("UserId"); 323 324 b.ToTable("Payments"); 295 325 }); 296 326 … … 336 366 .HasColumnType("integer"); 337 367 368 b.Property<bool>("Signature") 369 .HasColumnType("boolean"); 370 338 371 b.Property<int>("SubjectId") 339 372 .HasColumnType("integer"); … … 352 385 b.HasIndex("UserId"); 353 386 354 b.ToTable("SemesterSubject ");387 b.ToTable("SemesterSubjects"); 355 388 }); 356 389 … … 479 512 modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b => 480 513 { 514 b.HasOne("iknow_api.Models.ActiveSemesters", "Semester") 515 .WithMany("EnrolledSemesters") 516 .HasForeignKey("Id") 517 .OnDelete(DeleteBehavior.Restrict) 518 .IsRequired(); 519 481 520 b.HasOne("iknow_api.Models.Major", "Major") 482 521 .WithMany() … … 492 531 493 532 b.Navigation("Major"); 533 534 b.Navigation("Semester"); 494 535 495 536 b.Navigation("User"); … … 640 681 }); 641 682 683 modelBuilder.Entity("iknow_api.Models.ActiveSemesters", b => 684 { 685 b.Navigation("EnrolledSemesters"); 686 }); 687 642 688 modelBuilder.Entity("iknow_api.Models.Documents", b => 643 689 { -
iknow-api/Migrations/20251210134426_UpdateModels.cs
r33c69d6 r70a9f6d 10 10 { 11 11 /// <inheritdoc /> 12 public partial class InitalCreate: Migration12 public partial class UpdateModels : Migration 13 13 { 14 14 /// <inheritdoc /> 15 15 protected override void Up(MigrationBuilder migrationBuilder) 16 16 { 17 migrationBuilder.CreateTable( 18 name: "ActiveSemesters", 19 columns: table => new 20 { 21 id = table.Column<int>(type: "integer", nullable: false) 22 .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), 23 year = table.Column<int>(type: "integer", nullable: false), 24 Type = table.Column<int>(type: "integer", nullable: false) 25 }, 26 constraints: table => 27 { 28 table.PrimaryKey("PK_ActiveSemesters", x => x.id); 29 }); 30 17 31 migrationBuilder.CreateTable( 18 32 name: "Documents", … … 162 176 columns: table => new 163 177 { 164 Id = table.Column<int>(type: "integer", nullable: false) 165 .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), 166 UserId = table.Column<int>(type: "integer", nullable: false), 167 Year = table.Column<int>(type: "integer", nullable: false), 168 Type = table.Column<int>(type: "integer", nullable: false), 178 Id = table.Column<int>(type: "integer", nullable: false), 179 UserId = table.Column<int>(type: "integer", nullable: false), 169 180 QuotaType = table.Column<int>(type: "integer", nullable: false), 170 MajorId = table.Column<int>(type: "integer", nullable: false) 181 MajorId = table.Column<int>(type: "integer", nullable: false), 182 StudentComment = table.Column<string>(type: "text", nullable: true), 183 Node = table.Column<string>(type: "text", nullable: true), 184 CratedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false), 185 LastChange = table.Column<DateTime>(type: "timestamp with time zone", nullable: false), 186 Veryfied = table.Column<DateTime>(type: "timestamp with time zone", nullable: false) 171 187 }, 172 188 constraints: table => 173 189 { 174 190 table.PrimaryKey("PK_EnrolledSemesters", x => x.Id); 191 table.ForeignKey( 192 name: "FK_EnrolledSemesters_ActiveSemesters_Id", 193 column: x => x.Id, 194 principalTable: "ActiveSemesters", 195 principalColumn: "id", 196 onDelete: ReferentialAction.Restrict); 175 197 table.ForeignKey( 176 198 name: "FK_EnrolledSemesters_Majors_MajorId", … … 286 308 287 309 migrationBuilder.CreateTable( 288 name: "Payment", 289 columns: table => new 290 { 291 UserId = table.Column<int>(type: "integer", nullable: false), 292 EnrollmentInfoId = table.Column<int>(type: "integer", nullable: false), 293 Id = table.Column<int>(type: "integer", nullable: false) 294 }, 295 constraints: table => 296 { 297 table.PrimaryKey("PK_Payment", x => new { x.UserId, x.EnrollmentInfoId }); 298 table.ForeignKey( 299 name: "FK_Payment_EnrolledSemesters_EnrollmentInfoId", 310 name: "Payments", 311 columns: table => new 312 { 313 Id = table.Column<int>(type: "integer", nullable: false) 314 .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), 315 UserId = table.Column<int>(type: "integer", nullable: false), 316 EnrollmentInfoId = table.Column<int>(type: "integer", nullable: false) 317 }, 318 constraints: table => 319 { 320 table.PrimaryKey("PK_Payments", x => x.Id); 321 table.ForeignKey( 322 name: "FK_Payments_EnrolledSemesters_EnrollmentInfoId", 300 323 column: x => x.EnrollmentInfoId, 301 324 principalTable: "EnrolledSemesters", … … 303 326 onDelete: ReferentialAction.Cascade); 304 327 table.ForeignKey( 305 name: "FK_Payment _User_UserId",306 column: x => x.UserId, 307 principalTable: "User", 308 principalColumn: "Id", 309 onDelete: ReferentialAction.Cascade); 310 }); 311 312 migrationBuilder.CreateTable( 313 name: "SemesterSubject ",328 name: "FK_Payments_User_UserId", 329 column: x => x.UserId, 330 principalTable: "User", 331 principalColumn: "Id", 332 onDelete: ReferentialAction.Cascade); 333 }); 334 335 migrationBuilder.CreateTable( 336 name: "SemesterSubjects", 314 337 columns: table => new 315 338 { … … 319 342 EnrolledSemesterId = table.Column<int>(type: "integer", nullable: false), 320 343 SubjectId = table.Column<int>(type: "integer", nullable: false), 321 ProfessorId = table.Column<int>(type: "integer", nullable: false) 322 }, 323 constraints: table => 324 { 325 table.PrimaryKey("PK_SemesterSubject", x => x.Id); 326 table.ForeignKey( 327 name: "FK_SemesterSubject_EnrolledSemesters_EnrolledSemesterId", 344 ProfessorId = table.Column<int>(type: "integer", nullable: false), 345 Signature = table.Column<bool>(type: "boolean", nullable: false) 346 }, 347 constraints: table => 348 { 349 table.PrimaryKey("PK_SemesterSubjects", x => x.Id); 350 table.ForeignKey( 351 name: "FK_SemesterSubjects_EnrolledSemesters_EnrolledSemesterId", 328 352 column: x => x.EnrolledSemesterId, 329 353 principalTable: "EnrolledSemesters", … … 331 355 onDelete: ReferentialAction.Restrict); 332 356 table.ForeignKey( 333 name: "FK_SemesterSubject _Subjects_SubjectId",357 name: "FK_SemesterSubjects_Subjects_SubjectId", 334 358 column: x => x.SubjectId, 335 359 principalTable: "Subjects", … … 337 361 onDelete: ReferentialAction.Restrict); 338 362 table.ForeignKey( 339 name: "FK_SemesterSubject _User_ProfessorId",363 name: "FK_SemesterSubjects_User_ProfessorId", 340 364 column: x => x.ProfessorId, 341 365 principalTable: "User", … … 343 367 onDelete: ReferentialAction.Restrict); 344 368 table.ForeignKey( 345 name: "FK_SemesterSubject _User_UserId",369 name: "FK_SemesterSubjects_User_UserId", 346 370 column: x => x.UserId, 347 371 principalTable: "User", … … 364 388 table.PrimaryKey("PK_PassedSubjects", x => x.Id); 365 389 table.ForeignKey( 366 name: "FK_PassedSubjects_SemesterSubject _SemesterSubjectId",390 name: "FK_PassedSubjects_SemesterSubjects_SemesterSubjectId", 367 391 column: x => x.SemesterSubjectId, 368 principalTable: "SemesterSubject ",392 principalTable: "SemesterSubjects", 369 393 principalColumn: "Id", 370 394 onDelete: ReferentialAction.Cascade); … … 432 456 433 457 migrationBuilder.CreateIndex( 434 name: "IX_Payment _EnrollmentInfoId",435 table: "Payment ",458 name: "IX_Payments_EnrollmentInfoId", 459 table: "Payments", 436 460 column: "EnrollmentInfoId"); 461 462 migrationBuilder.CreateIndex( 463 name: "IX_Payments_UserId", 464 table: "Payments", 465 column: "UserId"); 437 466 438 467 migrationBuilder.CreateIndex( … … 442 471 443 472 migrationBuilder.CreateIndex( 444 name: "IX_SemesterSubject _EnrolledSemesterId",445 table: "SemesterSubject ",473 name: "IX_SemesterSubjects_EnrolledSemesterId", 474 table: "SemesterSubjects", 446 475 column: "EnrolledSemesterId"); 447 476 448 477 migrationBuilder.CreateIndex( 449 name: "IX_SemesterSubject _ProfessorId",450 table: "SemesterSubject ",478 name: "IX_SemesterSubjects_ProfessorId", 479 table: "SemesterSubjects", 451 480 column: "ProfessorId"); 452 481 453 482 migrationBuilder.CreateIndex( 454 name: "IX_SemesterSubject _SubjectId",455 table: "SemesterSubject ",483 name: "IX_SemesterSubjects_SubjectId", 484 table: "SemesterSubjects", 456 485 column: "SubjectId"); 457 486 458 487 migrationBuilder.CreateIndex( 459 name: "IX_SemesterSubject _UserId",460 table: "SemesterSubject ",488 name: "IX_SemesterSubjects_UserId", 489 table: "SemesterSubjects", 461 490 column: "UserId"); 462 491 … … 489 518 490 519 migrationBuilder.DropTable( 491 name: "Payment ");520 name: "Payments"); 492 521 493 522 migrationBuilder.DropTable( … … 498 527 499 528 migrationBuilder.DropTable( 500 name: "SemesterSubject ");529 name: "SemesterSubjects"); 501 530 502 531 migrationBuilder.DropTable( … … 508 537 migrationBuilder.DropTable( 509 538 name: "Subjects"); 539 540 migrationBuilder.DropTable( 541 name: "ActiveSemesters"); 510 542 511 543 migrationBuilder.DropTable( -
iknow-api/Migrations/AppDbContextModelSnapshot.cs
r33c69d6 r70a9f6d 23 23 NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); 24 24 25 modelBuilder.Entity("iknow_api.Models.ActiveSemesters", b => 26 { 27 b.Property<int>("id") 28 .ValueGeneratedOnAdd() 29 .HasColumnType("integer"); 30 31 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id")); 32 33 b.Property<int>("Type") 34 .HasColumnType("integer"); 35 36 b.Property<int>("year") 37 .HasColumnType("integer"); 38 39 b.HasKey("id"); 40 41 b.ToTable("ActiveSemesters"); 42 }); 43 25 44 modelBuilder.Entity("iknow_api.Models.ContactInfo", b => 26 45 { … … 97 116 { 98 117 b.Property<int>("Id") 99 .ValueGeneratedOnAdd() 100 .HasColumnType("integer"); 101 102 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); 118 .HasColumnType("integer"); 119 120 b.Property<DateTime>("CratedAt") 121 .HasColumnType("timestamp with time zone"); 122 123 b.Property<DateTime>("LastChange") 124 .HasColumnType("timestamp with time zone"); 103 125 104 126 b.Property<int>("MajorId") 105 127 .HasColumnType("integer"); 106 128 129 b.Property<string>("Node") 130 .HasColumnType("text"); 131 107 132 b.Property<int>("QuotaType") 108 133 .HasColumnType("integer"); 109 134 110 b.Property< int>("Type")111 .HasColumnType(" integer");135 b.Property<string>("StudentComment") 136 .HasColumnType("text"); 112 137 113 138 b.Property<int>("UserId") 114 139 .HasColumnType("integer"); 115 140 116 b.Property< int>("Year")117 .HasColumnType(" integer");141 b.Property<DateTime>("Veryfied") 142 .HasColumnType("timestamp with time zone"); 118 143 119 144 b.HasKey("Id"); … … 276 301 modelBuilder.Entity("iknow_api.Models.Payment", b => 277 302 { 303 b.Property<int>("Id") 304 .ValueGeneratedOnAdd() 305 .HasColumnType("integer"); 306 307 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); 308 309 b.Property<int>("EnrollmentInfoId") 310 .HasColumnType("integer"); 311 278 312 b.Property<int>("UserId") 279 313 .HasColumnType("integer"); 280 314 281 b.Property<int>("EnrollmentInfoId") 282 .HasColumnType("integer"); 283 284 b.Property<int>("Id") 285 .HasColumnType("integer"); 286 287 b.HasKey("UserId", "EnrollmentInfoId"); 315 b.HasKey("Id"); 288 316 289 317 b.HasIndex("EnrollmentInfoId"); 290 318 291 b.ToTable("Payment"); 319 b.HasIndex("UserId"); 320 321 b.ToTable("Payments"); 292 322 }); 293 323 … … 333 363 .HasColumnType("integer"); 334 364 365 b.Property<bool>("Signature") 366 .HasColumnType("boolean"); 367 335 368 b.Property<int>("SubjectId") 336 369 .HasColumnType("integer"); … … 349 382 b.HasIndex("UserId"); 350 383 351 b.ToTable("SemesterSubject ");384 b.ToTable("SemesterSubjects"); 352 385 }); 353 386 … … 476 509 modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b => 477 510 { 511 b.HasOne("iknow_api.Models.ActiveSemesters", "Semester") 512 .WithMany("EnrolledSemesters") 513 .HasForeignKey("Id") 514 .OnDelete(DeleteBehavior.Restrict) 515 .IsRequired(); 516 478 517 b.HasOne("iknow_api.Models.Major", "Major") 479 518 .WithMany() … … 489 528 490 529 b.Navigation("Major"); 530 531 b.Navigation("Semester"); 491 532 492 533 b.Navigation("User"); … … 637 678 }); 638 679 680 modelBuilder.Entity("iknow_api.Models.ActiveSemesters", b => 681 { 682 b.Navigation("EnrolledSemesters"); 683 }); 684 639 685 modelBuilder.Entity("iknow_api.Models.Documents", b => 640 686 { -
iknow-api/Models/EnrolledSemesters.cs
r33c69d6 r70a9f6d 3 3 namespace iknow_api.Models 4 4 { 5 public enum Type6 {7 Winter, Summer8 }9 5 public class EnrolledSemesters 10 6 { … … 12 8 public int UserId { get; set; } 13 9 public User? User { get; set; } 14 public int Year { get; set; }15 public int Type { get; set; }16 10 public Quota QuotaType { get; set; } 17 11 public int MajorId { get; set; } 12 public string? StudentComment { get; set; } 13 public string? Node { get; set; } 14 public DateTime CratedAt { get; set; } 15 public DateTime LastChange { get; set; } 16 public DateTime Veryfied { get; set; } 17 public ActiveSemesters? Semester { get; set; } 18 18 public Major? Major { get; set; } 19 19 public ICollection<Payment>? Users { get; set; } -
iknow-api/Models/SemesterSubjects.cs
r33c69d6 r70a9f6d 9 9 public int SubjectId { get; set; } 10 10 public int ProfessorId { get; set; } 11 11 public bool Signature { get; set; } 12 12 public User? User { get; set; } 13 13 public EnrolledSemesters? EnrolledSemester { get; set; } -
iknow-api/Models/User.cs
r33c69d6 r70a9f6d 12 12 public class User 13 13 { 14 internal object Payments; 15 14 16 public int Id { get; set; } 15 17 public string? Name { get; set; }
Note:
See TracChangeset
for help on using the changeset viewer.
