-- CreateTable
CREATE TABLE "students" (
    "student_id" SERIAL NOT NULL,
    "student_first_name" TEXT NOT NULL,
    "student_last_name" TEXT NOT NULL,
    "student_class_name" TEXT,
    "student_rfid_card_uid" TEXT NOT NULL,
    "student_card_is_active" BOOLEAN NOT NULL DEFAULT true,

    CONSTRAINT "students_pkey" PRIMARY KEY ("student_id")
);

-- CreateTable
CREATE TABLE "attendance_logs" (
    "attendance_log_id" SERIAL NOT NULL,
    "student_id" INTEGER NOT NULL,
    "attendance_scanned_at" TIMESTAMP(3) NOT NULL,
    "attendance_event_type" TEXT NOT NULL,
    "was_manual_entry" BOOLEAN NOT NULL DEFAULT false,
    "manual_entry_reason" TEXT,

    CONSTRAINT "attendance_logs_pkey" PRIMARY KEY ("attendance_log_id")
);

-- CreateIndex
CREATE UNIQUE INDEX "students_student_rfid_card_uid_key" ON "students"("student_rfid_card_uid");

-- CreateIndex
CREATE INDEX "attendance_logs_student_id_attendance_scanned_at_idx" ON "attendance_logs"("student_id", "attendance_scanned_at");

-- AddForeignKey
ALTER TABLE "attendance_logs" ADD CONSTRAINT "attendance_logs_student_id_fkey" FOREIGN KEY ("student_id") REFERENCES "students"("student_id") ON DELETE CASCADE ON UPDATE CASCADE;
