180 lines
7.0 KiB
SQL
180 lines
7.0 KiB
SQL
/*
|
|
Warnings:
|
|
|
|
- You are about to drop the column `created_at` on the `accounts` table. All the data in the column will be lost.
|
|
- You are about to drop the column `updated_at` on the `accounts` table. All the data in the column will be lost.
|
|
- You are about to drop the column `created_at` on the `sessions` table. All the data in the column will be lost.
|
|
- You are about to drop the column `updated_at` on the `sessions` table. All the data in the column will be lost.
|
|
- You are about to drop the `user` table. If the table is not empty, all the data it contains will be lost.
|
|
- Added the required column `updatedAt` to the `accounts` table without a default value. This is not possible if the table is not empty.
|
|
- Added the required column `updatedAt` to the `sessions` table without a default value. This is not possible if the table is not empty.
|
|
|
|
*/
|
|
-- DropForeignKey
|
|
ALTER TABLE `accounts` DROP FOREIGN KEY `accounts_user_id_fkey`;
|
|
|
|
-- DropForeignKey
|
|
ALTER TABLE `sessions` DROP FOREIGN KEY `sessions_user_id_fkey`;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE `accounts` DROP COLUMN `created_at`,
|
|
DROP COLUMN `updated_at`,
|
|
ADD COLUMN `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
ADD COLUMN `updatedAt` DATETIME(3) NOT NULL;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE `sessions` DROP COLUMN `created_at`,
|
|
DROP COLUMN `updated_at`,
|
|
ADD COLUMN `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
ADD COLUMN `updatedAt` DATETIME(3) NOT NULL;
|
|
|
|
-- DropTable
|
|
DROP TABLE `user`;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `users` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`given_name` VARCHAR(191) NULL,
|
|
`family_name` VARCHAR(191) NULL,
|
|
`name` VARCHAR(50) NULL,
|
|
`email` VARCHAR(191) NULL,
|
|
`email_verified` DATETIME(3) NULL,
|
|
`password` VARCHAR(191) NULL,
|
|
`phone` VARCHAR(13) NULL,
|
|
`address` VARCHAR(191) NULL,
|
|
`image` VARCHAR(191) NULL,
|
|
`role` ENUM('Admin', 'Koas', 'Pasien') NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `users_name_key`(`name`),
|
|
UNIQUE INDEX `users_email_key`(`email`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `VerificationRequest` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`identifier` VARCHAR(191) NOT NULL,
|
|
`token` VARCHAR(191) NOT NULL,
|
|
`expires` DATETIME(3) NOT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `VerificationRequest_token_key`(`token`),
|
|
UNIQUE INDEX `VerificationRequest_identifier_token_key`(`identifier`, `token`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `koas-profile` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`koas_number` VARCHAR(191) NULL,
|
|
`faculty` VARCHAR(191) NULL,
|
|
`bio` VARCHAR(191) NULL,
|
|
`whatsapp_link` VARCHAR(191) NULL,
|
|
`status` ENUM('Rejected', 'Pending', 'Approved') NOT NULL DEFAULT 'Pending',
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `koas-profile_user_id_key`(`user_id`),
|
|
UNIQUE INDEX `koas-profile_koas_number_key`(`koas_number`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `pasien-profile` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`age` INTEGER NULL,
|
|
`gender` ENUM('Male', 'Female') NULL,
|
|
`bio` VARCHAR(191) NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `pasien-profile_user_id_key`(`user_id`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `posts` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`koas_id` VARCHAR(191) NOT NULL,
|
|
`treatment_id` VARCHAR(191) NOT NULL,
|
|
`title` VARCHAR(191) NOT NULL,
|
|
`desc` VARCHAR(191) NOT NULL,
|
|
`patient_requirement` JSON NULL,
|
|
`status` ENUM('Pending', 'Open', 'Close') NOT NULL DEFAULT 'Pending',
|
|
`published` BOOLEAN NOT NULL DEFAULT false,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
INDEX `user_id`(`user_id`),
|
|
INDEX `koas_id`(`koas_id`),
|
|
INDEX `treatment_id`(`treatment_id`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `likes` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`post_id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
INDEX `post_id`(`post_id`),
|
|
INDEX `user_id`(`user_id`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `notifications` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`message` VARCHAR(191) NOT NULL,
|
|
`is_read` BOOLEAN NOT NULL DEFAULT false,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
INDEX `user_id`(`user_id`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `treatment-types` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `accounts` ADD CONSTRAINT `accounts_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `sessions` ADD CONSTRAINT `sessions_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `koas-profile` ADD CONSTRAINT `koas-profile_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `pasien-profile` ADD CONSTRAINT `pasien-profile_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `posts` ADD CONSTRAINT `posts_koas_id_fkey` FOREIGN KEY (`koas_id`) REFERENCES `koas-profile`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `posts` ADD CONSTRAINT `posts_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `likes` ADD CONSTRAINT `likes_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `likes` ADD CONSTRAINT `likes_post_id_fkey` FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `notifications` ADD CONSTRAINT `notifications_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|