diff --git a/src/app.module.ts b/src/app.module.ts index 0888e61b39de9a3a28e6154177a969d8b0cd02ca..b783ea53a60cf8640420a25453d4bf4ba6c64472 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -4,8 +4,6 @@ import { AppService } from "./app.service"; import { TypeOrmModule } from "@nestjs/typeorm"; import { Bimbingan } from "./entities/bimbingan.entity"; import { Pengguna } from "./entities/pengguna.entity"; -import { RangeJadwalSeminar } from "./entities/rangeJadwalSeminar.entity"; -import { Seminar } from "./entities/seminar.entity"; import { Topik } from "./entities/topik.entity"; import { AuditLog } from "./entities/auditLog.entity"; import { DosenBimbingan } from "./entities/dosenBimbingan.entity"; @@ -13,13 +11,9 @@ import { Kelas } from "./entities/kelas.entity"; import { MahasiswaKelas } from "./entities/mahasiswaKelas"; import { PengajarKelas } from "./entities/pengajarKelas.entity"; import { PendaftaranTesis } from "./entities/pendaftaranTesis.entity"; -import { RangeJadwalSidang } from "./entities/rangeJadwalSidang.entity"; -import { Ruangan } from "./entities/ruangan.entity"; -import { Sidang } from "./entities/sidang.entity"; +// import { Ruangan } from "./entities/ruangan.entity"; import { Tugas } from "./entities/tugas.entity"; -import { PembimbingSeminar } from "./entities/pembimbingSeminar.entity"; -import { PembimbingSidang } from "./entities/pembimbingSidang.entity"; -import { PengujiSidang } from "./entities/pengujiSidang.entity"; +import { PengujiSidsem } from "./entities/pengujiSidsem.entity"; import { RegistrasiTesisModule } from "./registrasi-tesis/registrasi-tesis.module"; import { ConfigModule } from "@nestjs/config"; import { AuthModule } from "./auth/auth.module"; @@ -35,6 +29,7 @@ import { SubmisiTugas } from "./entities/submisiTugas"; import { KelasModule } from "./kelas/kelas.module"; import { BerkasSubmisiTugas } from "./entities/berkasSubmisiTugas"; import { BerkasTugas } from "./entities/berkasTugas"; +import { PendaftaranSidsem } from "./entities/pendaftaranSidsem"; import { DosenBimbinganModule } from "./dosen-bimbingan/dosen-bimbingan.module"; @Module({ @@ -52,8 +47,7 @@ import { DosenBimbinganModule } from "./dosen-bimbingan/dosen-bimbingan.module"; BerkasBimbingan, Bimbingan, Pengguna, - RangeJadwalSeminar, - Seminar, + PendaftaranSidsem, Topik, AuditLog, DosenBimbingan, @@ -61,13 +55,9 @@ import { DosenBimbinganModule } from "./dosen-bimbingan/dosen-bimbingan.module"; MahasiswaKelas, PengajarKelas, PendaftaranTesis, - RangeJadwalSidang, - Ruangan, - Sidang, + // Ruangan, Tugas, - PembimbingSeminar, - PembimbingSidang, - PengujiSidang, + PengujiSidsem, Konfigurasi, MataKuliah, SubmisiTugas, diff --git a/src/dashboard/dashboard.controller.ts b/src/dashboard/dashboard.controller.ts index bb16aebd0a8cb044554d293950f8056baa3b6c4b..31a3a4cc1dc88afe12ba4b05e16bc015fd2a41e9 100644 --- a/src/dashboard/dashboard.controller.ts +++ b/src/dashboard/dashboard.controller.ts @@ -8,6 +8,7 @@ import { AuthDto } from "src/auth/auth.dto"; import { Request } from "express"; import { DashboardDto, + DashboardMahasiswaResDto, GetDashboardDosbimQueryDto, JalurStatisticDto, } from "./dashboard.dto"; @@ -47,4 +48,16 @@ export class DashboardController { (request.user as AuthDto).id, ); } + + @UseGuards(CustomAuthGuard, RolesGuard) + @Roles(RoleEnum.S2_MAHASISWA) + @ApiOkResponse({ type: DashboardMahasiswaResDto }) + @Get("/mahasiswa") + async getDashboardMahasiswa( + @Req() request: Request, + ): Promise<DashboardMahasiswaResDto> { + return this.dashboardService.getDashboardMahasiswa( + (request.user as AuthDto).id, + ); + } } diff --git a/src/dashboard/dashboard.dto.ts b/src/dashboard/dashboard.dto.ts index 26fc7b8a907cc911108da94f0d34271f83643484..8d279937d0616eb007400145e622316c5d4b9012 100644 --- a/src/dashboard/dashboard.dto.ts +++ b/src/dashboard/dashboard.dto.ts @@ -1,7 +1,17 @@ -import { ApiProperty, ApiPropertyOptional, PickType } from "@nestjs/swagger"; -import { JalurEnum } from "../entities/pendaftaranTesis.entity"; +import { + ApiProperty, + ApiPropertyOptional, + OmitType, + PickType, +} from "@nestjs/swagger"; +import { + JalurEnum, + PendaftaranTesis, +} from "../entities/pendaftaranTesis.entity"; import { Topik } from "src/entities/topik.entity"; import { Pengguna } from "src/entities/pengguna.entity"; +import { Bimbingan } from "src/entities/bimbingan.entity"; +import { PendaftaranSidsem } from "src/entities/pendaftaranSidsem"; import { IsOptional } from "class-validator"; import { BimbinganStatus } from "src/entities/bimbingan.entity"; @@ -10,8 +20,38 @@ class PickedMhsDashboard extends PickType(Pengguna, [ "id", "nama", "nim", + "email", ] as const) {} +class OmittedTopikMhsDashboard extends OmitType(Topik, ["pengaju"] as const) {} + +class NoEmailUserDashboard extends OmitType(PickedMhsDashboard, [ + "email", +] as const) {} + +export class NoNIMUserDashboard extends OmitType(PickedMhsDashboard, [ + "nim", +] as const) {} + +class OmittedPendaftaranTesisMhsDashboard extends OmitType(PendaftaranTesis, [ + "mahasiswa", + "topik", + "penerima", +] as const) { + @ApiProperty() + topik: OmittedTopikMhsDashboard; + + @ApiProperty() + penerima: NoEmailUserDashboard; +} + +class SidsemWithPenguji extends OmitType(PendaftaranSidsem, [ + "penguji", +] as const) { + @ApiProperty({ type: [NoNIMUserDashboard] }) + penguji: NoNIMUserDashboard[]; +} + export class DashboardDto { @ApiProperty({ example: "550e8400-e29b-41d4-a716-446655440000" }) id: string; @@ -26,7 +66,7 @@ export class DashboardDto { topik: PickedTopikDashboard; @ApiProperty() - mahasiswa: PickedMhsDashboard; + mahasiswa: NoEmailUserDashboard; } export class JalurStatisticDto { @@ -37,6 +77,38 @@ export class JalurStatisticDto { count: number; } +export class DashboardMahasiswaResDto { + @ApiProperty() + mahasiswa: PickedMhsDashboard; + + @ApiProperty({ type: OmittedPendaftaranTesisMhsDashboard, nullable: true }) + pendaftaranTesis: OmittedPendaftaranTesisMhsDashboard; + + @ApiProperty({ type: [NoNIMUserDashboard] }) + dosenBimbingan: NoNIMUserDashboard[]; + + @ApiProperty({ type: [Bimbingan] }) + bimbingan: Bimbingan[]; + + @ApiProperty({ + type: PendaftaranSidsem, + nullable: true, + }) + seminarSatu: PendaftaranSidsem; + + @ApiProperty({ + type: SidsemWithPenguji, + nullable: true, + }) + seminarDua: SidsemWithPenguji; + + @ApiProperty({ + type: SidsemWithPenguji, + nullable: true, + }) + sidang: SidsemWithPenguji; +} + export class GetDashboardDosbimQueryDto { @ApiPropertyOptional({}) @IsOptional() diff --git a/src/dashboard/dashboard.module.ts b/src/dashboard/dashboard.module.ts index 160e96061fc16dbb1c6ee6f0328dcf31239e2dad..8f8f447d98f6ce5c3d40de228881aa244d364bba 100644 --- a/src/dashboard/dashboard.module.ts +++ b/src/dashboard/dashboard.module.ts @@ -6,11 +6,22 @@ import { PendaftaranTesis } from "../entities/pendaftaranTesis.entity"; import { Pengguna } from "../entities/pengguna.entity"; import { Topik } from "../entities/topik.entity"; import { Konfigurasi } from "src/entities/konfigurasi.entity"; +import { Bimbingan } from "src/entities/bimbingan.entity"; +import { PendaftaranSidsem } from "src/entities/pendaftaranSidsem"; +import { DosenBimbingan } from "src/entities/dosenBimbingan.entity"; import { BimbinganModule } from "src/bimbingan/bimbingan.module"; @Module({ imports: [ - TypeOrmModule.forFeature([PendaftaranTesis, Pengguna, Topik, Konfigurasi]), + TypeOrmModule.forFeature([ + PendaftaranTesis, + Pengguna, + Topik, + Konfigurasi, + Bimbingan, + PendaftaranSidsem, + DosenBimbingan, + ]), BimbinganModule, ], controllers: [DashboardController], diff --git a/src/dashboard/dashboard.service.ts b/src/dashboard/dashboard.service.ts index c4fce66ca46e0245a43efa486e49beea9ecf33df..c2bfcb12e4e7c8bbcbfdfacf6b77a224c475a5b1 100644 --- a/src/dashboard/dashboard.service.ts +++ b/src/dashboard/dashboard.service.ts @@ -7,7 +7,18 @@ import { } from "../entities/pendaftaranTesis.entity"; import { Pengguna } from "../entities/pengguna.entity"; import { Konfigurasi } from "src/entities/konfigurasi.entity"; -import { DashboardDto, JalurStatisticDto } from "./dashboard.dto"; +import { Bimbingan } from "src/entities/bimbingan.entity"; +import { + DashboardDto, + DashboardMahasiswaResDto, + JalurStatisticDto, + NoNIMUserDashboard, +} from "./dashboard.dto"; +import { + PendaftaranSidsem, + TipeSidsemEnum, +} from "src/entities/pendaftaranSidsem"; +import { DosenBimbingan } from "src/entities/dosenBimbingan.entity"; import { BimbinganService } from "src/bimbingan/bimbingan.service"; @Injectable() @@ -19,6 +30,12 @@ export class DashboardService { private penggunaRepository: Repository<Pengguna>, @InjectRepository(Konfigurasi) private konfigurasiRepository: Repository<Konfigurasi>, + @InjectRepository(Bimbingan) + private bimbinganRepository: Repository<Bimbingan>, + @InjectRepository(PendaftaranSidsem) + private pendaftaranSidsemRepository: Repository<PendaftaranSidsem>, + @InjectRepository(DosenBimbingan) + private dosenBimbinganRepository: Repository<DosenBimbingan>, private bimbinganService: BimbinganService, ) {} @@ -131,4 +148,126 @@ export class DashboardService { return statistics as JalurStatisticDto[]; } + + async getDashboardMahasiswa( + mahasiswaId: string, + ): Promise<DashboardMahasiswaResDto> { + const currentPeriode = await this.konfigurasiRepository.findOne({ + where: { key: process.env.KONF_PERIODE_KEY }, + }); + + const mahasiswaQuery = this.penggunaRepository + .createQueryBuilder("pengguna") + .select([ + "pengguna.id", + "pengguna.nama", + "pengguna.email", + "pengguna.nim", + ]) + .where("pengguna.id = :id", { id: mahasiswaId }); + const pendaftaranTesisQuery = this.pendaftaranTesisRepository + .createQueryBuilder("pendaftaranTesis") + .select([ + "pendaftaranTesis.id", + "pendaftaranTesis.jalurPilihan", + "pendaftaranTesis.waktuPengiriman", + "pendaftaranTesis.jadwalInterview", + "pendaftaranTesis.waktuKeputusan", + "pendaftaranTesis.status", + "penerima.id", + "penerima.nama", + "penerima.email", + ]) + .leftJoin("pendaftaranTesis.mahasiswa", "mahasiswa") + .leftJoinAndSelect("pendaftaranTesis.topik", "topik") + .leftJoin("pendaftaranTesis.penerima", "penerima") + .where("mahasiswa.id = :id", { id: mahasiswaId }) + .andWhere("topik.periode = :periode", { periode: currentPeriode.value }) + .orderBy("pendaftaranTesis.waktuPengiriman", "DESC"); + + const [mahasiswa, pendaftaranTesis] = await Promise.all([ + mahasiswaQuery.getOne(), + pendaftaranTesisQuery.getOne(), + ]); + + let dosenBimbingan: DosenBimbingan[] = []; + let bimbingan: Bimbingan[] = []; + let seminarSatu: PendaftaranSidsem | null = null; + let seminarDua: PendaftaranSidsem | null = null; + let sidang: PendaftaranSidsem | null = null; + + if (pendaftaranTesis) { + const dosenBimbinganQuery = this.dosenBimbinganRepository + .createQueryBuilder("dosenBimbingan") + .select(["dosen.id", "dosen.nama", "dosen.email"]) + .leftJoin("dosenBimbingan.dosen", "dosen") + .where("dosenBimbingan.idPendaftaran = :id", { + id: pendaftaranTesis.id, + }); + const bimbinganQuery = this.bimbinganRepository + .createQueryBuilder("bimbingan") + .leftJoinAndSelect("bimbingan.berkas", "berkas") + .where("bimbingan.pendaftaranId = :id", { + id: pendaftaranTesis.id, + }); + const [seminarSatuQuery, seminarDuaQuery, sidangQuery] = Object.values( + TipeSidsemEnum, + ).map((tipe) => { + let temp = this.pendaftaranSidsemRepository + .createQueryBuilder("pendaftaranSidsem") + .leftJoinAndSelect("pendaftaranSidsem.ruangan", "ruangan") + .where("pendaftaranSidsem.pendaftaranTesisId = :id", { + id: pendaftaranTesis.id, + }) + .andWhere("pendaftaranSidsem.tipe = :tipe", { + tipe, + }) + .andWhere("NOT pendaftaranSidsem.ditolak"); + + if (tipe !== TipeSidsemEnum.SEMINAR_1) { + temp = temp + .leftJoinAndSelect("pendaftaranSidsem.penguji", "penguji") + .leftJoinAndSelect("penguji.dosen", "dosen"); + } + + return temp; + }); + + [dosenBimbingan, bimbingan, seminarSatu, seminarDua, sidang] = + await Promise.all([ + dosenBimbinganQuery.getMany(), + bimbinganQuery.getMany(), + seminarSatuQuery.getOne(), + seminarDuaQuery.getOne(), + sidangQuery.getOne(), + ]); + } + + return { + mahasiswa, + pendaftaranTesis, + dosenBimbingan: + dosenBimbingan.length > 0 + ? (dosenBimbingan as any as NoNIMUserDashboard[]) + : [pendaftaranTesis.penerima], + bimbingan, + seminarSatu, + seminarDua: { + ...seminarDua, + penguji: seminarDua?.penguji.map((p) => ({ + id: p.dosen.id, + nama: p.dosen.nama, + email: p.dosen.email, + })), + }, + sidang: { + ...sidang, + penguji: sidang?.penguji.map((p) => ({ + id: p.dosen.id, + nama: p.dosen.nama, + email: p.dosen.email, + })), + }, + }; + } } diff --git a/src/entities/pembimbingSidang.entity.ts b/src/entities/pembimbingSidang.entity.ts deleted file mode 100644 index a3d9dbec55b4d3e94d7a1e6d8b14262b10752e3d..0000000000000000000000000000000000000000 --- a/src/entities/pembimbingSidang.entity.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; -import { Sidang } from "./sidang.entity"; -import { Pengguna } from "./pengguna.entity"; - -@Entity() -export class PembimbingSidang { - @PrimaryGeneratedColumn("uuid") - id: string; - - @ManyToOne(() => Sidang, (sidang) => sidang.id) - sidang: Sidang; - - @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) - dosen: Pengguna; -} diff --git a/src/entities/pendaftaranSidsem.ts b/src/entities/pendaftaranSidsem.ts new file mode 100644 index 0000000000000000000000000000000000000000..a733c9cd7aedf8825202a92c3b509e271486847f --- /dev/null +++ b/src/entities/pendaftaranSidsem.ts @@ -0,0 +1,62 @@ +import { + Column, + Entity, + ManyToOne, + OneToMany, + PrimaryGeneratedColumn, +} from "typeorm"; +import { PendaftaranTesis } from "./pendaftaranTesis.entity"; +// import { Ruangan } from "./ruangan.entity"; +import { ApiProperty } from "@nestjs/swagger"; +import { PengujiSidsem } from "./pengujiSidsem.entity"; + +export enum TipeSidsemEnum { + SEMINAR_1 = "SEMINAR_1", + SEMINAR_2 = "SEMINAR_2", + SIDANG = "SIDANG", +} + +@Entity() +export class PendaftaranSidsem { + @ApiProperty({ example: "550e8400-e29b-41d4-a716-446655440000" }) + @PrimaryGeneratedColumn("uuid") + id: string; + + @ApiProperty({ enum: TipeSidsemEnum }) + @Column({ type: "enum", enum: TipeSidsemEnum }) + tipe: TipeSidsemEnum; + + @ApiProperty() + @Column({ type: "boolean", default: false }) + ditolak: boolean; + + @ApiProperty() + @Column({ type: "boolean", nullable: true }) + lulus: boolean; + + @ApiProperty() + @Column({ type: "timestamptz", nullable: true }) + waktuMulai: Date; + + @ApiProperty() + @Column({ type: "timestamptz", nullable: true }) + waktuSelesai: Date; + + @ApiProperty() + @Column({ type: "text", nullable: true }) + linkw2m: string; + + @ManyToOne(() => PendaftaranTesis, (pendaftaranTesis) => pendaftaranTesis.id) + pendaftaranTesis: PendaftaranTesis; + + // @ApiProperty({ type: Ruangan, nullable: true }) + // @ManyToOne(() => Ruangan, (ruangan) => ruangan.id) + // ruangan: Ruangan; + + @ApiProperty() + @Column({ type: "text", nullable: true }) + ruangan: string; + + @OneToMany(() => PengujiSidsem, (pengujiSidsem) => pengujiSidsem.sidsem) + penguji: PengujiSidsem[]; +} diff --git a/src/entities/pendaftaranTesis.entity.ts b/src/entities/pendaftaranTesis.entity.ts index 0d4c46157b1411288e0788be8d9b3052a1650a6e..e7414aabc036cdc7d2a2a1344bcbabb1fd7ace88 100644 --- a/src/entities/pendaftaranTesis.entity.ts +++ b/src/entities/pendaftaranTesis.entity.ts @@ -55,12 +55,15 @@ export class PendaftaranTesis { @Column({ type: "enum", enum: RegStatus, default: RegStatus.NOT_ASSIGNED }) status: RegStatus; + @ApiProperty() @ManyToOne(() => Topik, (topik) => topik.id) topik: Topik; + @ApiProperty() @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) mahasiswa: Pengguna; + @ApiProperty() @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) penerima: Pengguna; diff --git a/src/entities/pengguna.entity.ts b/src/entities/pengguna.entity.ts index dfffbb3f10f43a45724c49389c2df2c6cd457ae7..9039cf4295dcf27135972b7ba4fc82ce6206e7b6 100644 --- a/src/entities/pengguna.entity.ts +++ b/src/entities/pengguna.entity.ts @@ -1,3 +1,4 @@ +import { IsString } from "@nestjs/class-validator"; import { ApiHideProperty, ApiProperty, @@ -52,6 +53,7 @@ export class Pengguna { roles: RoleEnum[]; @ApiPropertyOptional() + @IsString() @Column({ type: "text", nullable: true }) kontak: string; } diff --git a/src/entities/pengujiSidang.entity.ts b/src/entities/pengujiSidang.entity.ts deleted file mode 100644 index dfcd36b5c2f5e06bebad302b3488aedff86338c7..0000000000000000000000000000000000000000 --- a/src/entities/pengujiSidang.entity.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; -import { Sidang } from "./sidang.entity"; -import { Pengguna } from "./pengguna.entity"; - -@Entity() -export class PengujiSidang { - @PrimaryGeneratedColumn("uuid") - id: string; - - @ManyToOne(() => Sidang, (sidang) => sidang.id) - sidang: Sidang; - - @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) - dosen: Pengguna; -} diff --git a/src/entities/pembimbingSeminar.entity.ts b/src/entities/pengujiSidsem.entity.ts similarity index 54% rename from src/entities/pembimbingSeminar.entity.ts rename to src/entities/pengujiSidsem.entity.ts index 024ebe5b57e6835441faa33d687137fb82565cbb..09aebe7c16acbb068ae8a26c341b02e996e6a7a3 100644 --- a/src/entities/pembimbingSeminar.entity.ts +++ b/src/entities/pengujiSidsem.entity.ts @@ -1,14 +1,17 @@ import { Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; -import { Seminar } from "./seminar.entity"; import { Pengguna } from "./pengguna.entity"; +import { PendaftaranSidsem } from "./pendaftaranSidsem"; @Entity() -export class PembimbingSeminar { +export class PengujiSidsem { @PrimaryGeneratedColumn("uuid") id: string; - @ManyToOne(() => Seminar, (seminar) => seminar.id) - seminar: Seminar; + @ManyToOne( + () => PendaftaranSidsem, + (pendaftaranSidsem) => pendaftaranSidsem.id, + ) + sidsem: PendaftaranSidsem; @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) dosen: Pengguna; diff --git a/src/entities/rangeJadwalSeminar.entity.ts b/src/entities/rangeJadwalSeminar.entity.ts deleted file mode 100644 index fa16bf749d40cdfeff7253f61bc098063a7348a3..0000000000000000000000000000000000000000 --- a/src/entities/rangeJadwalSeminar.entity.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Entity, PrimaryGeneratedColumn } from "typeorm"; - -@Entity() -export class RangeJadwalSeminar { - @PrimaryGeneratedColumn("uuid") - id: string; -} diff --git a/src/entities/rangeJadwalSidang.entity.ts b/src/entities/rangeJadwalSidang.entity.ts deleted file mode 100644 index 6479aef875d9d7b23cd9db1c00317af5e60756cd..0000000000000000000000000000000000000000 --- a/src/entities/rangeJadwalSidang.entity.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Entity, PrimaryGeneratedColumn } from "typeorm"; - -@Entity() -export class RangeJadwalSidang { - @PrimaryGeneratedColumn("uuid") - id: string; -} diff --git a/src/entities/ruangan.entity.ts b/src/entities/ruangan.entity.ts index 97df4c092f30bd329d8c3ece86d385bd0e6300c2..86dfaf804683751d50f397df3a55f00488dc0bfa 100644 --- a/src/entities/ruangan.entity.ts +++ b/src/entities/ruangan.entity.ts @@ -1,7 +1,13 @@ -import { Entity, PrimaryGeneratedColumn } from "typeorm"; +// import { ApiProperty } from "@nestjs/swagger"; +// import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; -@Entity() -export class Ruangan { - @PrimaryGeneratedColumn("uuid") - id: string; -} +// @Entity() +// export class Ruangan { +// @ApiProperty({ example: "550e8400-e29b-41d4-a716-446655440000" }) +// @PrimaryGeneratedColumn("uuid") +// id: string; + +// @ApiProperty() +// @Column({ type: "text" }) +// nama: string; +// } diff --git a/src/entities/seminar.entity.ts b/src/entities/seminar.entity.ts deleted file mode 100644 index 7b0e30b783be1e1401448e73f5fd078f7d4cdd0c..0000000000000000000000000000000000000000 --- a/src/entities/seminar.entity.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; -import { Pengguna } from "./pengguna.entity"; -import { RangeJadwalSeminar } from "./rangeJadwalSeminar.entity"; -import { Ruangan } from "./ruangan.entity"; - -@Entity() -export class Seminar { - @PrimaryGeneratedColumn("uuid") - id: string; - - @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) - mahasiswa: Pengguna; - - @ManyToOne( - () => RangeJadwalSeminar, - (rangeJadwalSeminar) => rangeJadwalSeminar.id, - ) - rangeJadwal: RangeJadwalSeminar; - - @ManyToOne(() => Ruangan, (ruangan) => ruangan.id) - ruangan: Ruangan; -} diff --git a/src/entities/sidang.entity.ts b/src/entities/sidang.entity.ts deleted file mode 100644 index c2dc57ecdca72af17a7496883e74a716f46dbf1c..0000000000000000000000000000000000000000 --- a/src/entities/sidang.entity.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; -import { Pengguna } from "./pengguna.entity"; -import { RangeJadwalSidang } from "./rangeJadwalSidang.entity"; -import { Ruangan } from "./ruangan.entity"; - -@Entity() -export class Sidang { - @PrimaryGeneratedColumn("uuid") - id: string; - - @ManyToOne(() => Pengguna, (pengguna) => pengguna.id) - mahasiswa: Pengguna; - - @ManyToOne( - () => RangeJadwalSidang, - (rangeJadwalSidang) => rangeJadwalSidang.id, - ) - rangeJadwal: RangeJadwalSidang; - - @ManyToOne(() => Ruangan, (ruangan) => ruangan.id) - ruangan: Ruangan; -}