Ignore:
Timestamp:
12/10/25 15:12:34 (10 months ago)
Author:
imbrsk <boris696boris@…>
Branches:
master
Children:
9f7a52e
Parents:
f735dac
Message:

feat: Add ActiveSemesters model and update related entities

  • Introduced ActiveSemesters model with properties: id, year, and Type.
  • Updated EnrolledSemesters model to include new properties: CratedAt, LastChange, Veryfied, Node, and StudentComment.
  • Modified Payment model to change the primary key and updated table name to Payments.
  • Added Signature property to SemesterSubject model and updated table name to SemesterSubjects.
  • Created new migration to reflect changes in the database schema.
  • Updated User model to include a reference to Payments.
File:
1 moved

Legend:

Unmodified
Added
Removed
  • iknow-api/Migrations/20251210134426_UpdateModels.cs

    rf735dac r39f76a9  
    1010{
    1111    /// <inheritdoc />
    12     public partial class InitalCreate : Migration
     12    public partial class UpdateModels : Migration
    1313    {
    1414        /// <inheritdoc />
    1515        protected override void Up(MigrationBuilder migrationBuilder)
    1616        {
     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
    1731            migrationBuilder.CreateTable(
    1832                name: "Documents",
     
    162176                columns: table => new
    163177                {
    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),
    169180                    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)
    171187                },
    172188                constraints: table =>
    173189                {
    174190                    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);
    175197                    table.ForeignKey(
    176198                        name: "FK_EnrolledSemesters_Majors_MajorId",
     
    286308
    287309            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",
    300323                        column: x => x.EnrollmentInfoId,
    301324                        principalTable: "EnrolledSemesters",
     
    303326                        onDelete: ReferentialAction.Cascade);
    304327                    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",
    314337                columns: table => new
    315338                {
     
    319342                    EnrolledSemesterId = table.Column<int>(type: "integer", nullable: false),
    320343                    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",
    328352                        column: x => x.EnrolledSemesterId,
    329353                        principalTable: "EnrolledSemesters",
     
    331355                        onDelete: ReferentialAction.Restrict);
    332356                    table.ForeignKey(
    333                         name: "FK_SemesterSubject_Subjects_SubjectId",
     357                        name: "FK_SemesterSubjects_Subjects_SubjectId",
    334358                        column: x => x.SubjectId,
    335359                        principalTable: "Subjects",
     
    337361                        onDelete: ReferentialAction.Restrict);
    338362                    table.ForeignKey(
    339                         name: "FK_SemesterSubject_User_ProfessorId",
     363                        name: "FK_SemesterSubjects_User_ProfessorId",
    340364                        column: x => x.ProfessorId,
    341365                        principalTable: "User",
     
    343367                        onDelete: ReferentialAction.Restrict);
    344368                    table.ForeignKey(
    345                         name: "FK_SemesterSubject_User_UserId",
     369                        name: "FK_SemesterSubjects_User_UserId",
    346370                        column: x => x.UserId,
    347371                        principalTable: "User",
     
    364388                    table.PrimaryKey("PK_PassedSubjects", x => x.Id);
    365389                    table.ForeignKey(
    366                         name: "FK_PassedSubjects_SemesterSubject_SemesterSubjectId",
     390                        name: "FK_PassedSubjects_SemesterSubjects_SemesterSubjectId",
    367391                        column: x => x.SemesterSubjectId,
    368                         principalTable: "SemesterSubject",
     392                        principalTable: "SemesterSubjects",
    369393                        principalColumn: "Id",
    370394                        onDelete: ReferentialAction.Cascade);
     
    432456
    433457            migrationBuilder.CreateIndex(
    434                 name: "IX_Payment_EnrollmentInfoId",
    435                 table: "Payment",
     458                name: "IX_Payments_EnrollmentInfoId",
     459                table: "Payments",
    436460                column: "EnrollmentInfoId");
     461
     462            migrationBuilder.CreateIndex(
     463                name: "IX_Payments_UserId",
     464                table: "Payments",
     465                column: "UserId");
    437466
    438467            migrationBuilder.CreateIndex(
     
    442471
    443472            migrationBuilder.CreateIndex(
    444                 name: "IX_SemesterSubject_EnrolledSemesterId",
    445                 table: "SemesterSubject",
     473                name: "IX_SemesterSubjects_EnrolledSemesterId",
     474                table: "SemesterSubjects",
    446475                column: "EnrolledSemesterId");
    447476
    448477            migrationBuilder.CreateIndex(
    449                 name: "IX_SemesterSubject_ProfessorId",
    450                 table: "SemesterSubject",
     478                name: "IX_SemesterSubjects_ProfessorId",
     479                table: "SemesterSubjects",
    451480                column: "ProfessorId");
    452481
    453482            migrationBuilder.CreateIndex(
    454                 name: "IX_SemesterSubject_SubjectId",
    455                 table: "SemesterSubject",
     483                name: "IX_SemesterSubjects_SubjectId",
     484                table: "SemesterSubjects",
    456485                column: "SubjectId");
    457486
    458487            migrationBuilder.CreateIndex(
    459                 name: "IX_SemesterSubject_UserId",
    460                 table: "SemesterSubject",
     488                name: "IX_SemesterSubjects_UserId",
     489                table: "SemesterSubjects",
    461490                column: "UserId");
    462491
     
    489518
    490519            migrationBuilder.DropTable(
    491                 name: "Payment");
     520                name: "Payments");
    492521
    493522            migrationBuilder.DropTable(
     
    498527
    499528            migrationBuilder.DropTable(
    500                 name: "SemesterSubject");
     529                name: "SemesterSubjects");
    501530
    502531            migrationBuilder.DropTable(
     
    508537            migrationBuilder.DropTable(
    509538                name: "Subjects");
     539
     540            migrationBuilder.DropTable(
     541                name: "ActiveSemesters");
    510542
    511543            migrationBuilder.DropTable(
Note: See TracChangeset for help on using the changeset viewer.