feat: nambahin certificate system
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE `certificate` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`id_project` INTEGER NOT NULL,
|
||||
`id_user` INTEGER NOT NULL,
|
||||
`certificate_no` VARCHAR(255) NOT NULL,
|
||||
`issued_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
|
||||
UNIQUE INDEX `certificate_certificate_no_key`(`certificate_no`),
|
||||
INDEX `certificate_id_project_foreign`(`id_project`),
|
||||
INDEX `certificate_id_user_foreign`(`id_user`),
|
||||
UNIQUE INDEX `certificate_id_project_id_user_key`(`id_project`, `id_user`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `certificate` ADD CONSTRAINT `certificate_id_project_foreign` FOREIGN KEY (`id_project`) REFERENCES `project`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `certificate` ADD CONSTRAINT `certificate_id_user_foreign` FOREIGN KEY (`id_user`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
+22
-3
@@ -194,6 +194,7 @@ model User {
|
||||
lamaran_magang LamaranMagang @relation(fields: [id_lamaran_magang], references: [id], map: "user_id_lamaran_magang_foreign")
|
||||
project_members ProjectMember[]
|
||||
task_submissions TaskSubmission[]
|
||||
certificates Certificate[]
|
||||
|
||||
@@index([email])
|
||||
@@map("user")
|
||||
@@ -212,9 +213,10 @@ model Project {
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
admin Admin @relation(fields: [id_admin], references: [id], map: "project_id_admin_foreign")
|
||||
members ProjectMember[]
|
||||
tasks Task[]
|
||||
admin Admin @relation(fields: [id_admin], references: [id], map: "project_id_admin_foreign")
|
||||
members ProjectMember[]
|
||||
tasks Task[]
|
||||
certificates Certificate[]
|
||||
|
||||
@@index([id_admin], map: "project_id_admin_foreign")
|
||||
@@index([status])
|
||||
@@ -328,3 +330,20 @@ enum SubmissionType {
|
||||
file_upload
|
||||
url_link
|
||||
}
|
||||
|
||||
model Certificate {
|
||||
id Int @id @default(autoincrement())
|
||||
uuid String @unique @default(uuid()) @db.VarChar(36)
|
||||
id_project Int
|
||||
id_user Int
|
||||
certificate_no String @unique @db.VarChar(255)
|
||||
issued_at DateTime @default(now())
|
||||
|
||||
project Project @relation(fields: [id_project], references: [id], map: "certificate_id_project_foreign")
|
||||
user User @relation(fields: [id_user], references: [id], map: "certificate_id_user_foreign")
|
||||
|
||||
@@unique([id_project, id_user])
|
||||
@@index([id_project], map: "certificate_id_project_foreign")
|
||||
@@index([id_user], map: "certificate_id_user_foreign")
|
||||
@@map("certificate")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user