Index: now-api/Migrations/20251208203846_InitialCreate.Designer.cs
===================================================================
--- iknow-api/Migrations/20251208203846_InitialCreate.Designer.cs	(revision c2f79d73d7219c8c8bcc00f5badba27a707b22be)
+++ 	(revision )
@@ -1,673 +1,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using iknow_api.Data;
-
-#nullable disable
-
-namespace iknow_api.Migrations
-{
-    [DbContext(typeof(AppDbContext))]
-    [Migration("20251208203846_InitialCreate")]
-    partial class InitialCreate
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.10")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("iknow_api.Models.ContactInfo", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<string>("address")
-                        .HasColumnType("text");
-
-                    b.Property<string>("city")
-                        .HasColumnType("text");
-
-                    b.Property<string>("microsoftEmail")
-                        .HasColumnType("text");
-
-                    b.Property<string>("municipality")
-                        .HasColumnType("text");
-
-                    b.Property<string>("phoneNumber")
-                        .HasColumnType("text");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("ContactInfo");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.DependencySubject", b =>
-                {
-                    b.Property<int>("SubjectId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("DependencyId")
-                        .HasColumnType("integer");
-
-                    b.HasKey("SubjectId", "DependencyId");
-
-                    b.HasIndex("DependencyId");
-
-                    b.ToTable("DependencySubjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Documents", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<string>("body")
-                        .HasColumnType("text");
-
-                    b.Property<int>("cost")
-                        .HasColumnType("integer");
-
-                    b.Property<string>("name")
-                        .HasColumnType("text");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("Documents");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<int>("MajorId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("QuotaType")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("Year")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("MajorId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("EnrolledSemesters");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<int>("MajorId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("enrollmentYear")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("quota")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("MajorId");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("EnrollmentInfo");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.HighSchool", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<float>("GPA")
-                        .HasColumnType("real");
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("tip")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("HighSchool");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Major", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<string>("Name")
-                        .HasColumnType("text");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("Majors");
-
-                    b.HasData(
-                        new
-                        {
-                            Id = 1,
-                            Name = "PIT"
-                        },
-                        new
-                        {
-                            Id = 2,
-                            Name = "SIIS"
-                        },
-                        new
-                        {
-                            Id = 3,
-                            Name = "SEIS"
-                        },
-                        new
-                        {
-                            Id = 4,
-                            Name = "KN"
-                        });
-                });
-
-            modelBuilder.Entity("iknow_api.Models.MajorSubjects", b =>
-                {
-                    b.Property<int>("MajorId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("SubjectId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("Akreditacija")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("MandatorySemester")
-                        .HasColumnType("integer");
-
-                    b.HasKey("MajorId", "SubjectId");
-
-                    b.HasIndex("SubjectId");
-
-                    b.ToTable("MajorSubjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.PassedSubject", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<DateTime>("DatePassed")
-                        .HasColumnType("timestamp with time zone");
-
-                    b.Property<int>("Grade")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("SemesterSubjectId")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("SemesterSubjectId")
-                        .IsUnique();
-
-                    b.ToTable("PassedSubjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Payment", b =>
-                {
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("EnrollmentInfoId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("Id")
-                        .HasColumnType("integer");
-
-                    b.HasKey("UserId", "EnrollmentInfoId");
-
-                    b.HasIndex("EnrollmentInfoId");
-
-                    b.ToTable("Payment");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.RefreshToken", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<DateTime>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone");
-
-                    b.Property<bool>("IsValid")
-                        .HasColumnType("boolean");
-
-                    b.Property<string>("Token")
-                        .HasColumnType("text");
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("RefreshToken");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<int>("EnrolledSemesterId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("ProfessorId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("SubjectId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("EnrolledSemesterId");
-
-                    b.HasIndex("ProfessorId");
-
-                    b.HasIndex("SubjectId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("SemesterSubject");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Subject", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<int?>("AwardedCredits")
-                        .HasColumnType("integer");
-
-                    b.Property<string>("Code")
-                        .HasColumnType("text");
-
-                    b.Property<int?>("DependencyCredit")
-                        .HasColumnType("integer");
-
-                    b.Property<string>("Name")
-                        .HasColumnType("text");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("Subjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.User", b =>
-                {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("integer");
-
-                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                    b.Property<DateTime>("Bday")
-                        .HasColumnType("timestamp with time zone");
-
-                    b.Property<DateTime>("CreatedAt")
-                        .HasColumnType("timestamp with time zone");
-
-                    b.Property<string>("EMBG")
-                        .HasColumnType("text");
-
-                    b.Property<string>("Email")
-                        .HasColumnType("text");
-
-                    b.Property<string>("Index")
-                        .HasColumnType("text");
-
-                    b.Property<string>("Name")
-                        .HasColumnType("text");
-
-                    b.Property<string>("PasswordHash")
-                        .HasColumnType("text");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer");
-
-                    b.Property<string>("Surname")
-                        .HasColumnType("text");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.UserDocuments", b =>
-                {
-                    b.Property<int>("UserId")
-                        .HasColumnType("integer");
-
-                    b.Property<int>("DocumentId")
-                        .HasColumnType("integer");
-
-                    b.HasKey("UserId", "DocumentId");
-
-                    b.HasIndex("DocumentId");
-
-                    b.ToTable("UserDocuments");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.ContactInfo", b =>
-                {
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithOne("ContactInfo")
-                        .HasForeignKey("iknow_api.Models.ContactInfo", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.DependencySubject", b =>
-                {
-                    b.HasOne("iknow_api.Models.Subject", "Dependency")
-                        .WithMany("Dependents")
-                        .HasForeignKey("DependencyId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.Subject", "Subject")
-                        .WithMany("Dependencies")
-                        .HasForeignKey("SubjectId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.Navigation("Dependency");
-
-                    b.Navigation("Subject");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
-                {
-                    b.HasOne("iknow_api.Models.Major", "Major")
-                        .WithMany()
-                        .HasForeignKey("MajorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithMany()
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("Major");
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b =>
-                {
-                    b.HasOne("iknow_api.Models.Major", "Major")
-                        .WithMany()
-                        .HasForeignKey("MajorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithOne("EnrollmentInfo")
-                        .HasForeignKey("iknow_api.Models.EnrollmentInfo", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("Major");
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.HighSchool", b =>
-                {
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithOne("HighSchool")
-                        .HasForeignKey("iknow_api.Models.HighSchool", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.MajorSubjects", b =>
-                {
-                    b.HasOne("iknow_api.Models.Major", "Majors")
-                        .WithMany("Subjects")
-                        .HasForeignKey("MajorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.Subject", "Subjects")
-                        .WithMany("Majors")
-                        .HasForeignKey("SubjectId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("Majors");
-
-                    b.Navigation("Subjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.PassedSubject", b =>
-                {
-                    b.HasOne("iknow_api.Models.SemesterSubject", "SemesterSubject")
-                        .WithOne("PassedSubject")
-                        .HasForeignKey("iknow_api.Models.PassedSubject", "SemesterSubjectId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("SemesterSubject");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Payment", b =>
-                {
-                    b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemesters")
-                        .WithMany("Users")
-                        .HasForeignKey("EnrollmentInfoId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithMany("EnrolledSemesters")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("EnrolledSemesters");
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.RefreshToken", b =>
-                {
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithMany()
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
-                {
-                    b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemester")
-                        .WithMany("SemesterSubjects")
-                        .HasForeignKey("EnrolledSemesterId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "Professor")
-                        .WithMany("TeachingSubjects")
-                        .HasForeignKey("ProfessorId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.Subject", "Subject")
-                        .WithMany("SemesterSubjects")
-                        .HasForeignKey("SubjectId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithMany("EnrolledSemesterUserSubjects")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .IsRequired();
-
-                    b.Navigation("EnrolledSemester");
-
-                    b.Navigation("Professor");
-
-                    b.Navigation("Subject");
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.UserDocuments", b =>
-                {
-                    b.HasOne("iknow_api.Models.Documents", "Documents")
-                        .WithMany("User")
-                        .HasForeignKey("DocumentId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("iknow_api.Models.User", "User")
-                        .WithMany("Documents")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.Navigation("Documents");
-
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Documents", b =>
-                {
-                    b.Navigation("User");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
-                {
-                    b.Navigation("SemesterSubjects");
-
-                    b.Navigation("Users");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Major", b =>
-                {
-                    b.Navigation("Subjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
-                {
-                    b.Navigation("PassedSubject");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.Subject", b =>
-                {
-                    b.Navigation("Dependencies");
-
-                    b.Navigation("Dependents");
-
-                    b.Navigation("Majors");
-
-                    b.Navigation("SemesterSubjects");
-                });
-
-            modelBuilder.Entity("iknow_api.Models.User", b =>
-                {
-                    b.Navigation("ContactInfo");
-
-                    b.Navigation("Documents");
-
-                    b.Navigation("EnrolledSemesterUserSubjects");
-
-                    b.Navigation("EnrolledSemesters");
-
-                    b.Navigation("EnrollmentInfo");
-
-                    b.Navigation("HighSchool");
-
-                    b.Navigation("TeachingSubjects");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
Index: now-api/Migrations/20251208203846_InitialCreate.cs
===================================================================
--- iknow-api/Migrations/20251208203846_InitialCreate.cs	(revision c2f79d73d7219c8c8bcc00f5badba27a707b22be)
+++ 	(revision )
@@ -1,511 +1,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-
-#nullable disable
-
-#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
-
-namespace iknow_api.Migrations
-{
-    /// <inheritdoc />
-    public partial class InitialCreate : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "Documents",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    name = table.Column<string>(type: "text", nullable: true),
-                    body = table.Column<string>(type: "text", nullable: true),
-                    cost = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_Documents", x => x.Id);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "Majors",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    Name = table.Column<string>(type: "text", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_Majors", x => x.Id);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "Subjects",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    Name = table.Column<string>(type: "text", nullable: true),
-                    Code = table.Column<string>(type: "text", nullable: true),
-                    AwardedCredits = table.Column<int>(type: "integer", nullable: true),
-                    DependencyCredit = table.Column<int>(type: "integer", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_Subjects", x => x.Id);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "User",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    Name = table.Column<string>(type: "text", nullable: true),
-                    EMBG = table.Column<string>(type: "text", nullable: true),
-                    Surname = table.Column<string>(type: "text", nullable: true),
-                    Index = table.Column<string>(type: "text", nullable: true),
-                    Email = table.Column<string>(type: "text", nullable: true),
-                    PasswordHash = table.Column<string>(type: "text", nullable: true),
-                    Bday = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
-                    CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
-                    Role = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_User", x => x.Id);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "DependencySubjects",
-                columns: table => new
-                {
-                    SubjectId = table.Column<int>(type: "integer", nullable: false),
-                    DependencyId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_DependencySubjects", x => new { x.SubjectId, x.DependencyId });
-                    table.ForeignKey(
-                        name: "FK_DependencySubjects_Subjects_DependencyId",
-                        column: x => x.DependencyId,
-                        principalTable: "Subjects",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                    table.ForeignKey(
-                        name: "FK_DependencySubjects_Subjects_SubjectId",
-                        column: x => x.SubjectId,
-                        principalTable: "Subjects",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "MajorSubjects",
-                columns: table => new
-                {
-                    MajorId = table.Column<int>(type: "integer", nullable: false),
-                    SubjectId = table.Column<int>(type: "integer", nullable: false),
-                    MandatorySemester = table.Column<int>(type: "integer", nullable: false),
-                    Akreditacija = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_MajorSubjects", x => new { x.MajorId, x.SubjectId });
-                    table.ForeignKey(
-                        name: "FK_MajorSubjects_Majors_MajorId",
-                        column: x => x.MajorId,
-                        principalTable: "Majors",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_MajorSubjects_Subjects_SubjectId",
-                        column: x => x.SubjectId,
-                        principalTable: "Subjects",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "ContactInfo",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    city = table.Column<string>(type: "text", nullable: true),
-                    address = table.Column<string>(type: "text", nullable: true),
-                    municipality = table.Column<string>(type: "text", nullable: true),
-                    phoneNumber = table.Column<string>(type: "text", nullable: true),
-                    microsoftEmail = table.Column<string>(type: "text", nullable: true),
-                    UserId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_ContactInfo", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_ContactInfo_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "EnrolledSemesters",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    UserId = table.Column<int>(type: "integer", nullable: false),
-                    Year = table.Column<int>(type: "integer", nullable: false),
-                    Type = table.Column<int>(type: "integer", nullable: false),
-                    QuotaType = table.Column<int>(type: "integer", nullable: false),
-                    MajorId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_EnrolledSemesters", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_EnrolledSemesters_Majors_MajorId",
-                        column: x => x.MajorId,
-                        principalTable: "Majors",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_EnrolledSemesters_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "EnrollmentInfo",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    enrollmentYear = table.Column<int>(type: "integer", nullable: false),
-                    quota = table.Column<int>(type: "integer", nullable: false),
-                    MajorId = table.Column<int>(type: "integer", nullable: false),
-                    UserId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_EnrollmentInfo", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_EnrollmentInfo_Majors_MajorId",
-                        column: x => x.MajorId,
-                        principalTable: "Majors",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_EnrollmentInfo_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "HighSchool",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    GPA = table.Column<float>(type: "real", nullable: false),
-                    tip = table.Column<int>(type: "integer", nullable: false),
-                    UserId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_HighSchool", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_HighSchool_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "RefreshToken",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    UserId = table.Column<int>(type: "integer", nullable: false),
-                    Token = table.Column<string>(type: "text", nullable: true),
-                    ExpiresAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
-                    IsValid = table.Column<bool>(type: "boolean", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_RefreshToken", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_RefreshToken_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "UserDocuments",
-                columns: table => new
-                {
-                    UserId = table.Column<int>(type: "integer", nullable: false),
-                    DocumentId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_UserDocuments", x => new { x.UserId, x.DocumentId });
-                    table.ForeignKey(
-                        name: "FK_UserDocuments_Documents_DocumentId",
-                        column: x => x.DocumentId,
-                        principalTable: "Documents",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_UserDocuments_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "Payment",
-                columns: table => new
-                {
-                    UserId = table.Column<int>(type: "integer", nullable: false),
-                    EnrollmentInfoId = table.Column<int>(type: "integer", nullable: false),
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_Payment", x => new { x.UserId, x.EnrollmentInfoId });
-                    table.ForeignKey(
-                        name: "FK_Payment_EnrolledSemesters_EnrollmentInfoId",
-                        column: x => x.EnrollmentInfoId,
-                        principalTable: "EnrolledSemesters",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_Payment_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "SemesterSubject",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    UserId = table.Column<int>(type: "integer", nullable: false),
-                    EnrolledSemesterId = table.Column<int>(type: "integer", nullable: false),
-                    SubjectId = table.Column<int>(type: "integer", nullable: false),
-                    ProfessorId = table.Column<int>(type: "integer", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_SemesterSubject", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_SemesterSubject_EnrolledSemesters_EnrolledSemesterId",
-                        column: x => x.EnrolledSemesterId,
-                        principalTable: "EnrolledSemesters",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                    table.ForeignKey(
-                        name: "FK_SemesterSubject_Subjects_SubjectId",
-                        column: x => x.SubjectId,
-                        principalTable: "Subjects",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                    table.ForeignKey(
-                        name: "FK_SemesterSubject_User_ProfessorId",
-                        column: x => x.ProfessorId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                    table.ForeignKey(
-                        name: "FK_SemesterSubject_User_UserId",
-                        column: x => x.UserId,
-                        principalTable: "User",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Restrict);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "PassedSubjects",
-                columns: table => new
-                {
-                    Id = table.Column<int>(type: "integer", nullable: false)
-                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
-                    SemesterSubjectId = table.Column<int>(type: "integer", nullable: false),
-                    Grade = table.Column<int>(type: "integer", nullable: false),
-                    DatePassed = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_PassedSubjects", x => x.Id);
-                    table.ForeignKey(
-                        name: "FK_PassedSubjects_SemesterSubject_SemesterSubjectId",
-                        column: x => x.SemesterSubjectId,
-                        principalTable: "SemesterSubject",
-                        principalColumn: "Id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.InsertData(
-                table: "Majors",
-                columns: new[] { "Id", "Name" },
-                values: new object[,]
-                {
-                    { 1, "PIT" },
-                    { 2, "SIIS" },
-                    { 3, "SEIS" },
-                    { 4, "KN" }
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "IX_ContactInfo_UserId",
-                table: "ContactInfo",
-                column: "UserId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_DependencySubjects_DependencyId",
-                table: "DependencySubjects",
-                column: "DependencyId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_EnrolledSemesters_MajorId",
-                table: "EnrolledSemesters",
-                column: "MajorId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_EnrolledSemesters_UserId",
-                table: "EnrolledSemesters",
-                column: "UserId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_EnrollmentInfo_MajorId",
-                table: "EnrollmentInfo",
-                column: "MajorId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_EnrollmentInfo_UserId",
-                table: "EnrollmentInfo",
-                column: "UserId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_HighSchool_UserId",
-                table: "HighSchool",
-                column: "UserId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_MajorSubjects_SubjectId",
-                table: "MajorSubjects",
-                column: "SubjectId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_PassedSubjects_SemesterSubjectId",
-                table: "PassedSubjects",
-                column: "SemesterSubjectId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_Payment_EnrollmentInfoId",
-                table: "Payment",
-                column: "EnrollmentInfoId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_RefreshToken_UserId",
-                table: "RefreshToken",
-                column: "UserId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_SemesterSubject_EnrolledSemesterId",
-                table: "SemesterSubject",
-                column: "EnrolledSemesterId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_SemesterSubject_ProfessorId",
-                table: "SemesterSubject",
-                column: "ProfessorId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_SemesterSubject_SubjectId",
-                table: "SemesterSubject",
-                column: "SubjectId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_SemesterSubject_UserId",
-                table: "SemesterSubject",
-                column: "UserId");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_UserDocuments_DocumentId",
-                table: "UserDocuments",
-                column: "DocumentId");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "ContactInfo");
-
-            migrationBuilder.DropTable(
-                name: "DependencySubjects");
-
-            migrationBuilder.DropTable(
-                name: "EnrollmentInfo");
-
-            migrationBuilder.DropTable(
-                name: "HighSchool");
-
-            migrationBuilder.DropTable(
-                name: "MajorSubjects");
-
-            migrationBuilder.DropTable(
-                name: "PassedSubjects");
-
-            migrationBuilder.DropTable(
-                name: "Payment");
-
-            migrationBuilder.DropTable(
-                name: "RefreshToken");
-
-            migrationBuilder.DropTable(
-                name: "UserDocuments");
-
-            migrationBuilder.DropTable(
-                name: "SemesterSubject");
-
-            migrationBuilder.DropTable(
-                name: "Documents");
-
-            migrationBuilder.DropTable(
-                name: "EnrolledSemesters");
-
-            migrationBuilder.DropTable(
-                name: "Subjects");
-
-            migrationBuilder.DropTable(
-                name: "Majors");
-
-            migrationBuilder.DropTable(
-                name: "User");
-        }
-    }
-}
Index: iknow-api/Migrations/20251209115716_InitialCreate.Designer.cs
===================================================================
--- iknow-api/Migrations/20251209115716_InitialCreate.Designer.cs	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
+++ iknow-api/Migrations/20251209115716_InitialCreate.Designer.cs	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
@@ -0,0 +1,673 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using iknow_api.Data;
+
+#nullable disable
+
+namespace iknow_api.Migrations
+{
+    [DbContext(typeof(AppDbContext))]
+    [Migration("20251209115716_InitialCreate")]
+    partial class InitialCreate
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "9.0.10")
+                .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+            modelBuilder.Entity("iknow_api.Models.ContactInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("address")
+                        .HasColumnType("text");
+
+                    b.Property<string>("city")
+                        .HasColumnType("text");
+
+                    b.Property<string>("microsoftEmail")
+                        .HasColumnType("text");
+
+                    b.Property<string>("municipality")
+                        .HasColumnType("text");
+
+                    b.Property<string>("phoneNumber")
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("ContactInfo");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.DependencySubject", b =>
+                {
+                    b.Property<int>("SubjectId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("DependencyId")
+                        .HasColumnType("integer");
+
+                    b.HasKey("SubjectId", "DependencyId");
+
+                    b.HasIndex("DependencyId");
+
+                    b.ToTable("DependencySubjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Documents", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("body")
+                        .HasColumnType("text");
+
+                    b.Property<int>("cost")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("name")
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Documents");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("MajorId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("QuotaType")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("Year")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MajorId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("EnrolledSemesters");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("MajorId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("enrollmentYear")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("quota")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MajorId");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("EnrollmentInfo");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.HighSchool", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<float>("GPA")
+                        .HasColumnType("real");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("tip")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("HighSchool");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Major", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Majors");
+
+                    b.HasData(
+                        new
+                        {
+                            Id = 1,
+                            Name = "PIT"
+                        },
+                        new
+                        {
+                            Id = 2,
+                            Name = "SIIS"
+                        },
+                        new
+                        {
+                            Id = 3,
+                            Name = "SEIS"
+                        },
+                        new
+                        {
+                            Id = 4,
+                            Name = "KN"
+                        });
+                });
+
+            modelBuilder.Entity("iknow_api.Models.MajorSubjects", b =>
+                {
+                    b.Property<int>("MajorId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("SubjectId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("Akreditacija")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("MandatorySemester")
+                        .HasColumnType("integer");
+
+                    b.HasKey("MajorId", "SubjectId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.ToTable("MajorSubjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.PassedSubject", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("DatePassed")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<int>("Grade")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("SemesterSubjectId")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("SemesterSubjectId")
+                        .IsUnique();
+
+                    b.ToTable("PassedSubjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Payment", b =>
+                {
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("EnrollmentInfoId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("Id")
+                        .HasColumnType("integer");
+
+                    b.HasKey("UserId", "EnrollmentInfoId");
+
+                    b.HasIndex("EnrollmentInfoId");
+
+                    b.ToTable("Payment");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.RefreshToken", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<bool>("IsValid")
+                        .HasColumnType("boolean");
+
+                    b.Property<string>("Token")
+                        .HasColumnType("text");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("RefreshToken");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("EnrolledSemesterId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ProfessorId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("SubjectId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("EnrolledSemesterId");
+
+                    b.HasIndex("ProfessorId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("SemesterSubject");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Subject", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AwardedCredits")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Code")
+                        .HasColumnType("text");
+
+                    b.Property<int?>("DependencyCredit")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Subjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.User", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("Bday")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<DateTime>("CreatedAt")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<string>("EMBG")
+                        .HasColumnType("text");
+
+                    b.Property<string>("Email")
+                        .HasColumnType("text");
+
+                    b.Property<string>("Index")
+                        .HasColumnType("text");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text");
+
+                    b.Property<string>("PasswordHash")
+                        .HasColumnType("text");
+
+                    b.Property<int>("Role")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Surname")
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.UserDocuments", b =>
+                {
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("DocumentId")
+                        .HasColumnType("integer");
+
+                    b.HasKey("UserId", "DocumentId");
+
+                    b.HasIndex("DocumentId");
+
+                    b.ToTable("UserDocuments");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.ContactInfo", b =>
+                {
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithOne("ContactInfo")
+                        .HasForeignKey("iknow_api.Models.ContactInfo", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.DependencySubject", b =>
+                {
+                    b.HasOne("iknow_api.Models.Subject", "Dependency")
+                        .WithMany("Dependents")
+                        .HasForeignKey("DependencyId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.Subject", "Subject")
+                        .WithMany("Dependencies")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("Dependency");
+
+                    b.Navigation("Subject");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
+                {
+                    b.HasOne("iknow_api.Models.Major", "Major")
+                        .WithMany()
+                        .HasForeignKey("MajorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Major");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b =>
+                {
+                    b.HasOne("iknow_api.Models.Major", "Major")
+                        .WithMany()
+                        .HasForeignKey("MajorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithOne("EnrollmentInfo")
+                        .HasForeignKey("iknow_api.Models.EnrollmentInfo", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Major");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.HighSchool", b =>
+                {
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithOne("HighSchool")
+                        .HasForeignKey("iknow_api.Models.HighSchool", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.MajorSubjects", b =>
+                {
+                    b.HasOne("iknow_api.Models.Major", "Majors")
+                        .WithMany("Subjects")
+                        .HasForeignKey("MajorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.Subject", "Subjects")
+                        .WithMany("Majors")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Majors");
+
+                    b.Navigation("Subjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.PassedSubject", b =>
+                {
+                    b.HasOne("iknow_api.Models.SemesterSubject", "SemesterSubject")
+                        .WithOne("PassedSubject")
+                        .HasForeignKey("iknow_api.Models.PassedSubject", "SemesterSubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("SemesterSubject");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Payment", b =>
+                {
+                    b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemesters")
+                        .WithMany("Users")
+                        .HasForeignKey("EnrollmentInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithMany("EnrolledSemesters")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("EnrolledSemesters");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.RefreshToken", b =>
+                {
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
+                {
+                    b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemester")
+                        .WithMany("SemesterSubjects")
+                        .HasForeignKey("EnrolledSemesterId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "Professor")
+                        .WithMany("TeachingSubjects")
+                        .HasForeignKey("ProfessorId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.Subject", "Subject")
+                        .WithMany("SemesterSubjects")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithMany("EnrolledSemesterUserSubjects")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("EnrolledSemester");
+
+                    b.Navigation("Professor");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.UserDocuments", b =>
+                {
+                    b.HasOne("iknow_api.Models.Documents", "Documents")
+                        .WithMany("User")
+                        .HasForeignKey("DocumentId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("iknow_api.Models.User", "User")
+                        .WithMany("Documents")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Documents");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Documents", b =>
+                {
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b =>
+                {
+                    b.Navigation("SemesterSubjects");
+
+                    b.Navigation("Users");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Major", b =>
+                {
+                    b.Navigation("Subjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.SemesterSubject", b =>
+                {
+                    b.Navigation("PassedSubject");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.Subject", b =>
+                {
+                    b.Navigation("Dependencies");
+
+                    b.Navigation("Dependents");
+
+                    b.Navigation("Majors");
+
+                    b.Navigation("SemesterSubjects");
+                });
+
+            modelBuilder.Entity("iknow_api.Models.User", b =>
+                {
+                    b.Navigation("ContactInfo");
+
+                    b.Navigation("Documents");
+
+                    b.Navigation("EnrolledSemesterUserSubjects");
+
+                    b.Navigation("EnrolledSemesters");
+
+                    b.Navigation("EnrollmentInfo");
+
+                    b.Navigation("HighSchool");
+
+                    b.Navigation("TeachingSubjects");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
Index: iknow-api/Migrations/20251209115716_InitialCreate.cs
===================================================================
--- iknow-api/Migrations/20251209115716_InitialCreate.cs	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
+++ iknow-api/Migrations/20251209115716_InitialCreate.cs	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
@@ -0,0 +1,511 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
+
+namespace iknow_api.Migrations
+{
+    /// <inheritdoc />
+    public partial class InitialCreate : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "Documents",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    name = table.Column<string>(type: "text", nullable: true),
+                    body = table.Column<string>(type: "text", nullable: true),
+                    cost = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_Documents", x => x.Id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "Majors",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    Name = table.Column<string>(type: "text", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_Majors", x => x.Id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "Subjects",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    Name = table.Column<string>(type: "text", nullable: true),
+                    Code = table.Column<string>(type: "text", nullable: true),
+                    AwardedCredits = table.Column<int>(type: "integer", nullable: true),
+                    DependencyCredit = table.Column<int>(type: "integer", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_Subjects", x => x.Id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "User",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    Name = table.Column<string>(type: "text", nullable: true),
+                    EMBG = table.Column<string>(type: "text", nullable: true),
+                    Surname = table.Column<string>(type: "text", nullable: true),
+                    Index = table.Column<string>(type: "text", nullable: true),
+                    Email = table.Column<string>(type: "text", nullable: true),
+                    PasswordHash = table.Column<string>(type: "text", nullable: true),
+                    Bday = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
+                    CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
+                    Role = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_User", x => x.Id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "DependencySubjects",
+                columns: table => new
+                {
+                    SubjectId = table.Column<int>(type: "integer", nullable: false),
+                    DependencyId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_DependencySubjects", x => new { x.SubjectId, x.DependencyId });
+                    table.ForeignKey(
+                        name: "FK_DependencySubjects_Subjects_DependencyId",
+                        column: x => x.DependencyId,
+                        principalTable: "Subjects",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                    table.ForeignKey(
+                        name: "FK_DependencySubjects_Subjects_SubjectId",
+                        column: x => x.SubjectId,
+                        principalTable: "Subjects",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "MajorSubjects",
+                columns: table => new
+                {
+                    MajorId = table.Column<int>(type: "integer", nullable: false),
+                    SubjectId = table.Column<int>(type: "integer", nullable: false),
+                    MandatorySemester = table.Column<int>(type: "integer", nullable: false),
+                    Akreditacija = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_MajorSubjects", x => new { x.MajorId, x.SubjectId });
+                    table.ForeignKey(
+                        name: "FK_MajorSubjects_Majors_MajorId",
+                        column: x => x.MajorId,
+                        principalTable: "Majors",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_MajorSubjects_Subjects_SubjectId",
+                        column: x => x.SubjectId,
+                        principalTable: "Subjects",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "ContactInfo",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    city = table.Column<string>(type: "text", nullable: true),
+                    address = table.Column<string>(type: "text", nullable: true),
+                    municipality = table.Column<string>(type: "text", nullable: true),
+                    phoneNumber = table.Column<string>(type: "text", nullable: true),
+                    microsoftEmail = table.Column<string>(type: "text", nullable: true),
+                    UserId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_ContactInfo", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_ContactInfo_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "EnrolledSemesters",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    UserId = table.Column<int>(type: "integer", nullable: false),
+                    Year = table.Column<int>(type: "integer", nullable: false),
+                    Type = table.Column<int>(type: "integer", nullable: false),
+                    QuotaType = table.Column<int>(type: "integer", nullable: false),
+                    MajorId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_EnrolledSemesters", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_EnrolledSemesters_Majors_MajorId",
+                        column: x => x.MajorId,
+                        principalTable: "Majors",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_EnrolledSemesters_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "EnrollmentInfo",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    enrollmentYear = table.Column<int>(type: "integer", nullable: false),
+                    quota = table.Column<int>(type: "integer", nullable: false),
+                    MajorId = table.Column<int>(type: "integer", nullable: false),
+                    UserId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_EnrollmentInfo", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_EnrollmentInfo_Majors_MajorId",
+                        column: x => x.MajorId,
+                        principalTable: "Majors",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_EnrollmentInfo_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "HighSchool",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    GPA = table.Column<float>(type: "real", nullable: false),
+                    tip = table.Column<int>(type: "integer", nullable: false),
+                    UserId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_HighSchool", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_HighSchool_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "RefreshToken",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    UserId = table.Column<int>(type: "integer", nullable: false),
+                    Token = table.Column<string>(type: "text", nullable: true),
+                    ExpiresAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
+                    IsValid = table.Column<bool>(type: "boolean", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_RefreshToken", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_RefreshToken_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "UserDocuments",
+                columns: table => new
+                {
+                    UserId = table.Column<int>(type: "integer", nullable: false),
+                    DocumentId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_UserDocuments", x => new { x.UserId, x.DocumentId });
+                    table.ForeignKey(
+                        name: "FK_UserDocuments_Documents_DocumentId",
+                        column: x => x.DocumentId,
+                        principalTable: "Documents",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_UserDocuments_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "Payment",
+                columns: table => new
+                {
+                    UserId = table.Column<int>(type: "integer", nullable: false),
+                    EnrollmentInfoId = table.Column<int>(type: "integer", nullable: false),
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_Payment", x => new { x.UserId, x.EnrollmentInfoId });
+                    table.ForeignKey(
+                        name: "FK_Payment_EnrolledSemesters_EnrollmentInfoId",
+                        column: x => x.EnrollmentInfoId,
+                        principalTable: "EnrolledSemesters",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_Payment_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "SemesterSubject",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    UserId = table.Column<int>(type: "integer", nullable: false),
+                    EnrolledSemesterId = table.Column<int>(type: "integer", nullable: false),
+                    SubjectId = table.Column<int>(type: "integer", nullable: false),
+                    ProfessorId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_SemesterSubject", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_SemesterSubject_EnrolledSemesters_EnrolledSemesterId",
+                        column: x => x.EnrolledSemesterId,
+                        principalTable: "EnrolledSemesters",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                    table.ForeignKey(
+                        name: "FK_SemesterSubject_Subjects_SubjectId",
+                        column: x => x.SubjectId,
+                        principalTable: "Subjects",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                    table.ForeignKey(
+                        name: "FK_SemesterSubject_User_ProfessorId",
+                        column: x => x.ProfessorId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                    table.ForeignKey(
+                        name: "FK_SemesterSubject_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Restrict);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "PassedSubjects",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    SemesterSubjectId = table.Column<int>(type: "integer", nullable: false),
+                    Grade = table.Column<int>(type: "integer", nullable: false),
+                    DatePassed = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_PassedSubjects", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_PassedSubjects_SemesterSubject_SemesterSubjectId",
+                        column: x => x.SemesterSubjectId,
+                        principalTable: "SemesterSubject",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.InsertData(
+                table: "Majors",
+                columns: new[] { "Id", "Name" },
+                values: new object[,]
+                {
+                    { 1, "PIT" },
+                    { 2, "SIIS" },
+                    { 3, "SEIS" },
+                    { 4, "KN" }
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_ContactInfo_UserId",
+                table: "ContactInfo",
+                column: "UserId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_DependencySubjects_DependencyId",
+                table: "DependencySubjects",
+                column: "DependencyId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnrolledSemesters_MajorId",
+                table: "EnrolledSemesters",
+                column: "MajorId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnrolledSemesters_UserId",
+                table: "EnrolledSemesters",
+                column: "UserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnrollmentInfo_MajorId",
+                table: "EnrollmentInfo",
+                column: "MajorId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnrollmentInfo_UserId",
+                table: "EnrollmentInfo",
+                column: "UserId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_HighSchool_UserId",
+                table: "HighSchool",
+                column: "UserId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_MajorSubjects_SubjectId",
+                table: "MajorSubjects",
+                column: "SubjectId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_PassedSubjects_SemesterSubjectId",
+                table: "PassedSubjects",
+                column: "SemesterSubjectId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_Payment_EnrollmentInfoId",
+                table: "Payment",
+                column: "EnrollmentInfoId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_RefreshToken_UserId",
+                table: "RefreshToken",
+                column: "UserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_SemesterSubject_EnrolledSemesterId",
+                table: "SemesterSubject",
+                column: "EnrolledSemesterId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_SemesterSubject_ProfessorId",
+                table: "SemesterSubject",
+                column: "ProfessorId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_SemesterSubject_SubjectId",
+                table: "SemesterSubject",
+                column: "SubjectId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_SemesterSubject_UserId",
+                table: "SemesterSubject",
+                column: "UserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_UserDocuments_DocumentId",
+                table: "UserDocuments",
+                column: "DocumentId");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "ContactInfo");
+
+            migrationBuilder.DropTable(
+                name: "DependencySubjects");
+
+            migrationBuilder.DropTable(
+                name: "EnrollmentInfo");
+
+            migrationBuilder.DropTable(
+                name: "HighSchool");
+
+            migrationBuilder.DropTable(
+                name: "MajorSubjects");
+
+            migrationBuilder.DropTable(
+                name: "PassedSubjects");
+
+            migrationBuilder.DropTable(
+                name: "Payment");
+
+            migrationBuilder.DropTable(
+                name: "RefreshToken");
+
+            migrationBuilder.DropTable(
+                name: "UserDocuments");
+
+            migrationBuilder.DropTable(
+                name: "SemesterSubject");
+
+            migrationBuilder.DropTable(
+                name: "Documents");
+
+            migrationBuilder.DropTable(
+                name: "EnrolledSemesters");
+
+            migrationBuilder.DropTable(
+                name: "Subjects");
+
+            migrationBuilder.DropTable(
+                name: "Majors");
+
+            migrationBuilder.DropTable(
+                name: "User");
+        }
+    }
+}
Index: iknow-api/appsettings.Development.json
===================================================================
--- iknow-api/appsettings.Development.json	(revision c2f79d73d7219c8c8bcc00f5badba27a707b22be)
+++ iknow-api/appsettings.Development.json	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
@@ -6,6 +6,6 @@
     }
   },
-    "ConnectionStrings": {
-        "DefaultConnection": "Host=localhost;Port=5432;Database=myappdb;Username=postgres;Password=user"
-    }
+  "ConnectionStrings": {
+    "DefaultConnection": "Host=ep-dark-sun-a4dr99wd-pooler.us-east-1.aws.neon.tech; Database=neondb; Username=neondb_owner; Password=npg_Wk10VFHGKiwn; SSL Mode=VerifyFull; Channel Binding=Require;"
+  }
 }
Index: iknow-api/appsettings.json
===================================================================
--- iknow-api/appsettings.json	(revision c2f79d73d7219c8c8bcc00f5badba27a707b22be)
+++ iknow-api/appsettings.json	(revision bb656bc5647f95efd8e2ff5bd88337b286271492)
@@ -7,5 +7,5 @@
   },
   "ConnectionStrings": {
-    "DefaultConnection": "Host=localhost;Port=5432;Database=myappdb;Username=postgres;Password=user"
+    "DefaultConnection": "Host=ep-dark-sun-a4dr99wd-pooler.us-east-1.aws.neon.tech; Database=neondb; Username=neondb_owner; Password=npg_Wk10VFHGKiwn; SSL Mode=VerifyFull; Channel Binding=Require;"
   },
   "Jwt": {
