refactor: rewrite ke codebase lama

This commit is contained in:
Muhammad Zhafran Ilham
2026-06-07 20:17:49 +07:00
parent ce5487dcbf
commit fe74b2213d
146 changed files with 14608 additions and 6686 deletions
@@ -1,43 +1,139 @@
-- CreateTable
CREATE TABLE `user` (
`id` VARCHAR(191) NOT NULL,
CREATE TABLE `admin` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`nama_depan` VARCHAR(255) NOT NULL,
`nama_belakang` VARCHAR(255) NOT NULL,
`role` ENUM('admin') NOT NULL DEFAULT 'admin',
`email` VARCHAR(255) NOT NULL,
`password_hash` TEXT NOT NULL,
`role` ENUM('ADMIN', 'STUDENT') NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
`password` TEXT NOT NULL,
`signature` TEXT NULL,
UNIQUE INDEX `user_email_key`(`email`),
UNIQUE INDEX `admin_email_key`(`email`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `admin` (
CREATE TABLE `hasil_research` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_user` VARCHAR(191) NOT NULL,
`nama_depan` VARCHAR(255) NOT NULL,
`nama_belakang` VARCHAR(255) NULL,
`image_path` TEXT NOT NULL,
`nama_project` VARCHAR(255) NOT NULL,
`deskripsi` VARCHAR(255) NOT NULL,
`link_project` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `lamaran_magang` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_mahasiswa` INTEGER NOT NULL,
`id_lowongan_magang` VARCHAR(255) NOT NULL,
`status` ENUM('diterima', 'diproses', 'ditolak') NOT NULL,
`batch` INTEGER NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`update_at` DATETIME(3) NOT NULL,
INDEX `lamaran_magang_id_mahasiswa_foreign`(`id_mahasiswa`),
INDEX `lamaran_magang_id_lowongan_magang_foreign`(`id_lowongan_magang`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `lowongan_magang` (
`id` VARCHAR(255) NOT NULL,
`posisi` VARCHAR(255) NOT NULL,
`kelompok_peminatan` VARCHAR(255) NOT NULL,
`image_path` TEXT NOT NULL,
`jobdesk` TEXT NOT NULL,
`lokasi` VARCHAR(255) NOT NULL,
`kualifikasi` TEXT NOT NULL,
`benefit` TEXT NOT NULL,
`durasi_awal` DATE NOT NULL,
`durasi_akhir` DATE NOT NULL,
`batch` INTEGER NULL,
`status_lowongan` ENUM('dibuka', 'ditutup') NOT NULL,
`paid` ENUM('paid', 'unpaid') NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
UNIQUE INDEX `admin_id_user_key`(`id_user`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `mahasiswa` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_user` VARCHAR(191) NOT NULL,
`nama_depan` VARCHAR(255) NOT NULL,
`nama_belakang` VARCHAR(255) NULL,
`email` VARCHAR(255) NOT NULL,
`kontak` VARCHAR(255) NOT NULL,
`jurusan` VARCHAR(255) NOT NULL,
`universitas` VARCHAR(255) NOT NULL,
`negara` VARCHAR(255) NOT NULL,
`role` ENUM('student') NOT NULL DEFAULT 'student',
`cv_path` TEXT NOT NULL,
`portofolio_path` TEXT NOT NULL,
`motivasi` TEXT NOT NULL,
`relevant_skills` VARCHAR(255) NOT NULL,
UNIQUE INDEX `mahasiswa_id_user_key`(`id_user`),
UNIQUE INDEX `mahasiswa_email_key`(`email`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `partnership` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`nama_partner` VARCHAR(255) NOT NULL,
`image_path` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `faq` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`pertanyaan` TEXT NOT NULL,
`jawaban` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `riwayat_pelamar` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`batch` INTEGER NOT NULL,
`negara` VARCHAR(255) NULL,
`posisi` VARCHAR(255) NULL,
`tahun` INTEGER NOT NULL,
`jumlah` INTEGER NOT NULL,
`pelamar_diterima` INTEGER NOT NULL,
`pelamar_ditolak` INTEGER NOT NULL,
`pelamar_diproses` INTEGER NOT NULL,
`presentase_diterima` DOUBLE NOT NULL,
`presentase_ditolak` DOUBLE NOT NULL,
`presentase_diproses` DOUBLE NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `riwayat_pelamar_batch_idx`(`batch`),
INDEX `riwayat_pelamar_negara_idx`(`negara`),
INDEX `riwayat_pelamar_posisi_idx`(`posisi`),
UNIQUE INDEX `riwayat_pelamar_batch_negara_posisi_key`(`batch`, `negara`, `posisi`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `feedback` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`nama` VARCHAR(255) NOT NULL,
`universitas` VARCHAR(255) NOT NULL,
`pesan` TEXT NOT NULL,
`batch` INTEGER NOT NULL,
`posisi` VARCHAR(255) NOT NULL,
`tahun` INTEGER NOT NULL,
`image_path` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
@@ -55,55 +151,6 @@ CREATE TABLE `batch` (
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `lowongan_magang` (
`id` VARCHAR(255) NOT NULL,
`id_batch` INTEGER NOT NULL,
`posisi` VARCHAR(255) NOT NULL,
`kelompok_peminatan` VARCHAR(255) NOT NULL,
`image_path` TEXT NOT NULL,
`jobdesk` TEXT NOT NULL,
`lokasi` VARCHAR(255) NOT NULL,
`kualifikasi` TEXT NOT NULL,
`benefit` TEXT NOT NULL,
`durasi_awal` DATE NOT NULL,
`durasi_akhir` DATE NOT NULL,
`status_lowongan` ENUM('DIBUKA', 'DITUTUP') NOT NULL,
`paid` ENUM('PAID', 'UNPAID') NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `lowongan_magang_id_batch_foreign`(`id_batch`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `lamaran_magang` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_mahasiswa` INTEGER NOT NULL,
`id_lowongan_magang` VARCHAR(255) NOT NULL,
`status` ENUM('DITERIMA', 'DIPROSES', 'DITOLAK') NOT NULL,
`batch` INTEGER NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
INDEX `lamaran_magang_id_mahasiswa_foreign`(`id_mahasiswa`),
INDEX `lamaran_magang_id_lowongan_magang_foreign`(`id_lowongan_magang`),
INDEX `lamaran_magang_batch_idx`(`batch`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `admin` ADD CONSTRAINT `admin_id_user_foreign` FOREIGN KEY (`id_user`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `mahasiswa` ADD CONSTRAINT `mahasiswa_id_user_foreign` FOREIGN KEY (`id_user`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `lowongan_magang` ADD CONSTRAINT `lowongan_magang_id_batch_foreign` FOREIGN KEY (`id_batch`) REFERENCES `batch`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `lamaran_magang` ADD CONSTRAINT `lamaran_magang_batch_foreign` FOREIGN KEY (`batch`) REFERENCES `batch`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `lamaran_magang` ADD CONSTRAINT `lamaran_magang_id_mahasiswa_foreign` FOREIGN KEY (`id_mahasiswa`) REFERENCES `mahasiswa`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,16 @@
/*
Warnings:
- You are about to drop the column `batch` on the `lowongan_magang` table. All the data in the column will be lost.
- Added the required column `id_batch` to the `lowongan_magang` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE `lowongan_magang` DROP COLUMN `batch`,
ADD COLUMN `id_batch` INTEGER NOT NULL;
-- CreateIndex
CREATE INDEX `lowongan_magang_id_batch_foreign` ON `lowongan_magang`(`id_batch`);
-- AddForeignKey
ALTER TABLE `lowongan_magang` ADD CONSTRAINT `lowongan_magang_id_batch_foreign` FOREIGN KEY (`id_batch`) REFERENCES `batch`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- CreateIndex
CREATE INDEX `lamaran_magang_batch_idx` ON `lamaran_magang`(`batch`);
-- AddForeignKey
ALTER TABLE `lamaran_magang` ADD CONSTRAINT `lamaran_magang_batch_foreign` FOREIGN KEY (`batch`) REFERENCES `batch`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
@@ -1,69 +0,0 @@
-- CreateTable
CREATE TABLE `riwayat_pelamar` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`batch` INTEGER NOT NULL,
`negara` VARCHAR(255) NULL,
`posisi` VARCHAR(255) NULL,
`tahun` INTEGER NOT NULL,
`jumlah` INTEGER NOT NULL,
`pelamar_diterima` INTEGER NOT NULL,
`pelamar_ditolak` INTEGER NOT NULL,
`pelamar_diproses` INTEGER NOT NULL,
`presentase_diterima` DOUBLE NOT NULL,
`presentase_ditolak` DOUBLE NOT NULL,
`presentase_diproses` DOUBLE NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `riwayat_pelamar_batch_idx`(`batch`),
INDEX `riwayat_pelamar_negara_idx`(`negara`),
INDEX `riwayat_pelamar_posisi_idx`(`posisi`),
UNIQUE INDEX `riwayat_pelamar_batch_negara_posisi_key`(`batch`, `negara`, `posisi`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `feedback` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`nama` VARCHAR(255) NOT NULL,
`universitas` VARCHAR(255) NOT NULL,
`pesan` TEXT NOT NULL,
`batch` INTEGER NOT NULL,
`posisi` VARCHAR(255) NOT NULL,
`tahun` INTEGER NOT NULL,
`image_path` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `hasil_research` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`image_path` TEXT NOT NULL,
`nama_project` VARCHAR(255) NOT NULL,
`deskripsi` VARCHAR(255) NOT NULL,
`link_project` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `partnership` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`nama_partner` VARCHAR(255) NOT NULL,
`image_path` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `faq` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`pertanyaan` TEXT NOT NULL,
`jawaban` TEXT NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
View File