| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- -- CreateEnum
- CREATE TYPE "public"."UserRole" AS ENUM ('ADMIN', 'TEACHER', 'STUDENT');
- -- CreateEnum
- CREATE TYPE "public"."AttendanceStatus" AS ENUM ('PRESENT', 'ABSENT', 'JUSTIFIED');
- -- CreateTable
- CREATE TABLE "public"."users" (
- "id" TEXT NOT NULL,
- "email" TEXT NOT NULL,
- "password" TEXT NOT NULL,
- "role" "public"."UserRole" NOT NULL,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- CONSTRAINT "users_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."periods" (
- "id" TEXT NOT NULL,
- "name" TEXT NOT NULL,
- "startDate" TIMESTAMP(3) NOT NULL,
- "endDate" TIMESTAMP(3) NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "periods_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."partials" (
- "id" TEXT NOT NULL,
- "name" TEXT NOT NULL,
- "periodId" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "partials_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."classes" (
- "id" TEXT NOT NULL,
- "name" TEXT NOT NULL,
- "code" TEXT NOT NULL,
- "description" TEXT,
- "periodId" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "classes_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."sections" (
- "id" TEXT NOT NULL,
- "name" TEXT NOT NULL,
- "classId" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "sections_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."teachers" (
- "id" TEXT NOT NULL,
- "userId" TEXT NOT NULL,
- "firstName" TEXT NOT NULL,
- "lastName" TEXT NOT NULL,
- "cedula" TEXT NOT NULL,
- "email" TEXT NOT NULL,
- "phone" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "teachers_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."students" (
- "id" TEXT NOT NULL,
- "userId" TEXT NOT NULL,
- "firstName" TEXT NOT NULL,
- "lastName" TEXT NOT NULL,
- "cedula" TEXT NOT NULL,
- "email" TEXT NOT NULL,
- "phone" TEXT NOT NULL,
- "admissionNumber" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- "deletedAt" TIMESTAMP(3),
- CONSTRAINT "students_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."teacher_assignments" (
- "id" TEXT NOT NULL,
- "teacherId" TEXT NOT NULL,
- "sectionId" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- CONSTRAINT "teacher_assignments_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."student_enrollments" (
- "id" TEXT NOT NULL,
- "studentId" TEXT NOT NULL,
- "sectionId" TEXT NOT NULL,
- "isActive" BOOLEAN NOT NULL DEFAULT true,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- CONSTRAINT "student_enrollments_pkey" PRIMARY KEY ("id")
- );
- -- CreateTable
- CREATE TABLE "public"."attendances" (
- "id" TEXT NOT NULL,
- "studentId" TEXT NOT NULL,
- "sectionId" TEXT NOT NULL,
- "date" DATE NOT NULL,
- "status" "public"."AttendanceStatus" NOT NULL,
- "reason" TEXT,
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updatedAt" TIMESTAMP(3) NOT NULL,
- CONSTRAINT "attendances_pkey" PRIMARY KEY ("id")
- );
- -- CreateIndex
- CREATE UNIQUE INDEX "users_email_key" ON "public"."users"("email");
- -- CreateIndex
- CREATE UNIQUE INDEX "classes_code_key" ON "public"."classes"("code");
- -- CreateIndex
- CREATE UNIQUE INDEX "teachers_userId_key" ON "public"."teachers"("userId");
- -- CreateIndex
- CREATE UNIQUE INDEX "teachers_cedula_key" ON "public"."teachers"("cedula");
- -- CreateIndex
- CREATE UNIQUE INDEX "teachers_email_key" ON "public"."teachers"("email");
- -- CreateIndex
- CREATE UNIQUE INDEX "students_userId_key" ON "public"."students"("userId");
- -- CreateIndex
- CREATE UNIQUE INDEX "students_cedula_key" ON "public"."students"("cedula");
- -- CreateIndex
- CREATE UNIQUE INDEX "students_email_key" ON "public"."students"("email");
- -- CreateIndex
- CREATE UNIQUE INDEX "students_admissionNumber_key" ON "public"."students"("admissionNumber");
- -- CreateIndex
- CREATE UNIQUE INDEX "teacher_assignments_teacherId_sectionId_key" ON "public"."teacher_assignments"("teacherId", "sectionId");
- -- CreateIndex
- CREATE UNIQUE INDEX "student_enrollments_studentId_sectionId_key" ON "public"."student_enrollments"("studentId", "sectionId");
- -- CreateIndex
- CREATE UNIQUE INDEX "attendances_studentId_sectionId_date_key" ON "public"."attendances"("studentId", "sectionId", "date");
- -- AddForeignKey
- ALTER TABLE "public"."partials" ADD CONSTRAINT "partials_periodId_fkey" FOREIGN KEY ("periodId") REFERENCES "public"."periods"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."classes" ADD CONSTRAINT "classes_periodId_fkey" FOREIGN KEY ("periodId") REFERENCES "public"."periods"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."sections" ADD CONSTRAINT "sections_classId_fkey" FOREIGN KEY ("classId") REFERENCES "public"."classes"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."teachers" ADD CONSTRAINT "teachers_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."students" ADD CONSTRAINT "students_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."teacher_assignments" ADD CONSTRAINT "teacher_assignments_teacherId_fkey" FOREIGN KEY ("teacherId") REFERENCES "public"."teachers"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."teacher_assignments" ADD CONSTRAINT "teacher_assignments_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "public"."sections"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."student_enrollments" ADD CONSTRAINT "student_enrollments_studentId_fkey" FOREIGN KEY ("studentId") REFERENCES "public"."students"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."student_enrollments" ADD CONSTRAINT "student_enrollments_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "public"."sections"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."attendances" ADD CONSTRAINT "attendances_studentId_fkey" FOREIGN KEY ("studentId") REFERENCES "public"."students"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
- -- AddForeignKey
- ALTER TABLE "public"."attendances" ADD CONSTRAINT "attendances_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "public"."sections"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|