From 01f176f0cc5146779926e4ce72a78bb3f04f10bf Mon Sep 17 00:00:00 2001
From: Chiquita Ahsanunnisa <16521248@mahasiswa.itb.ac.id>
Date: Fri, 3 May 2024 14:05:30 +0700
Subject: [PATCH] feat: new schema for kontak n keahlian

---
 src/dosen-bimbingan/dosen-bimbingan.dto.ts    |  1 +
 .../dosen-bimbingan.service.ts                |  1 +
 src/entities/pengguna.entity.ts               | 28 ++++++++++++--
 src/registrasi-tesis/registrasi-tesis.dto.ts  |  6 ++-
 .../registrasi-tesis.service.ts               | 38 ++++++++++++-------
 5 files changed, 56 insertions(+), 18 deletions(-)

diff --git a/src/dosen-bimbingan/dosen-bimbingan.dto.ts b/src/dosen-bimbingan/dosen-bimbingan.dto.ts
index 23c823e..16e493a 100644
--- a/src/dosen-bimbingan/dosen-bimbingan.dto.ts
+++ b/src/dosen-bimbingan/dosen-bimbingan.dto.ts
@@ -14,4 +14,5 @@ export class GetDosbimResDto extends PickType(Pengguna, [
   "id",
   "email",
   "nama",
+  "keahlian",
 ] as const) {}
diff --git a/src/dosen-bimbingan/dosen-bimbingan.service.ts b/src/dosen-bimbingan/dosen-bimbingan.service.ts
index 88f0f9d..9d9039a 100644
--- a/src/dosen-bimbingan/dosen-bimbingan.service.ts
+++ b/src/dosen-bimbingan/dosen-bimbingan.service.ts
@@ -16,6 +16,7 @@ export class DosenBimbinganService {
         id: true,
         nama: true,
         email: true,
+        keahlian: true,
       },
       where: {
         roles: ArrayContains([RoleEnum.S2_PEMBIMBING]),
diff --git a/src/entities/pengguna.entity.ts b/src/entities/pengguna.entity.ts
index 1b4971a..c6011ee 100644
--- a/src/entities/pengguna.entity.ts
+++ b/src/entities/pengguna.entity.ts
@@ -1,4 +1,3 @@
-import { IsString } from "@nestjs/class-validator";
 import {
   ApiHideProperty,
   ApiProperty,
@@ -6,6 +5,7 @@ import {
 } from "@nestjs/swagger";
 import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from "typeorm";
 import { PendaftaranTesis } from "./pendaftaranTesis.entity";
+import { DosenBimbingan } from "./dosenBimbingan.entity";
 
 export enum RoleEnum {
   ADMIN = "ADMIN",
@@ -51,9 +51,28 @@ export class Pengguna {
   roles: RoleEnum[];
 
   @ApiPropertyOptional()
-  @IsString()
   @Column({ type: "text", nullable: true })
-  kontak: string;
+  kontakWhatsApp: string;
+
+  @ApiPropertyOptional()
+  @Column({ type: "text", nullable: true })
+  kontakMsTeams: string;
+
+  @ApiPropertyOptional()
+  @Column({ type: "text", nullable: true })
+  kontakEmail: string;
+
+  @ApiPropertyOptional()
+  @Column({ type: "text", nullable: true })
+  kontakTelp: string;
+
+  @ApiPropertyOptional()
+  @Column({ type: "text", nullable: true })
+  kontakLainnya: string;
+
+  @ApiPropertyOptional()
+  @Column({ type: "text", nullable: true })
+  keahlian: string;
 
   @ApiHideProperty()
   @Column({ type: "boolean", default: true })
@@ -61,4 +80,7 @@ export class Pengguna {
 
   @OneToMany(() => PendaftaranTesis, (pendaftaran) => pendaftaran.mahasiswa)
   pendaftaranTesis: PendaftaranTesis[];
+
+  @OneToMany(() => DosenBimbingan, (dosen) => dosen.dosen)
+  dosenBimbingan: DosenBimbingan[];
 }
diff --git a/src/registrasi-tesis/registrasi-tesis.dto.ts b/src/registrasi-tesis/registrasi-tesis.dto.ts
index cc9541b..7d5d1bf 100644
--- a/src/registrasi-tesis/registrasi-tesis.dto.ts
+++ b/src/registrasi-tesis/registrasi-tesis.dto.ts
@@ -171,7 +171,11 @@ export class UpdatePembimbingBodyDto {
 class DosenPembimbingDto extends PickType(Pengguna, [
   "id",
   "nama",
-  "kontak",
+  "kontakWhatsApp",
+  "kontakMsTeams",
+  "kontakEmail",
+  "kontakTelp",
+  "kontakLainnya",
 ] as const) {}
 
 export class GetByIdRespDto extends PickType(PendaftaranTesis, [
diff --git a/src/registrasi-tesis/registrasi-tesis.service.ts b/src/registrasi-tesis/registrasi-tesis.service.ts
index 496af6f..17e59c6 100644
--- a/src/registrasi-tesis/registrasi-tesis.service.ts
+++ b/src/registrasi-tesis/registrasi-tesis.service.ts
@@ -136,20 +136,30 @@ export class RegistrasiTesisService {
 
     const baseQuery = this.pendaftaranTesisRepository
       .createQueryBuilder("pt")
-      .select("pt.id")
-      .addSelect("pt.jadwalInterview")
-      .addSelect("pt.status")
-      .addSelect("pt.jalurPilihan")
-      .addSelect("pt.waktuPengiriman")
-      .addSelect("topik.judul")
-      .addSelect("topik.deskripsi")
-      .addSelect("penerima.id")
-      .addSelect("penerima.nama")
-      .addSelect("penerima.kontak")
-      .addSelect("dosenBimbingan")
-      .addSelect("dosen.id")
-      .addSelect("dosen.nama")
-      .addSelect("dosen.kontak")
+      .select([
+        "pt.id",
+        "pt.jadwalInterview",
+        "pt.status",
+        "pt.jalurPilihan",
+        "pt.waktuPengiriman",
+        "topik.judul",
+        "topik.deskripsi",
+        "penerima.id",
+        "penerima.nama",
+        "penerima.kontakWhatsApp",
+        "penerima.kontakMsTeams",
+        "penerima.kontakEmail",
+        "penerima.kontakTelp",
+        "penerima.kontakLainnya",
+        "dosenBimbingan",
+        "dosen.id",
+        "dosen.nama",
+        "dosen.kontakWhatsApp",
+        "dosen.kontakMsTeams",
+        "dosen.kontakEmail",
+        "dosen.kontakTelp",
+        "dosen.kontakLainnya",
+      ])
       .leftJoin("pt.topik", "topik")
       .leftJoin("pt.penerima", "penerima")
       .leftJoin("pt.dosenBimbingan", "dosenBimbingan")
-- 
GitLab