72 lines
2.1 KiB
SQL
72 lines
2.1 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL,
|
|
"username" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Class" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"className" TEXT NOT NULL,
|
|
"teacher" TEXT NOT NULL,
|
|
"period" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Class_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Assignment" (
|
|
"id" TEXT NOT NULL,
|
|
"classId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"dueDate" TEXT NOT NULL,
|
|
"score" TEXT NOT NULL,
|
|
"attempts" TEXT NOT NULL,
|
|
"isMajorGrade" BOOLEAN NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Assignment_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Fetch" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"success" BOOLEAN NOT NULL DEFAULT true,
|
|
"classCount" INTEGER NOT NULL DEFAULT 0,
|
|
|
|
CONSTRAINT "Fetch_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Class_userId_idx" ON "Class"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Class_userId_category_key" ON "Class"("userId", "category");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Assignment_classId_idx" ON "Assignment"("classId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Fetch_userId_idx" ON "Fetch"("userId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Class" ADD CONSTRAINT "Class_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_classId_fkey" FOREIGN KEY ("classId") REFERENCES "Class"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Fetch" ADD CONSTRAINT "Fetch_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|