import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { ProfileDevelopment } from "./ProfileDevelopment";
import { ProfileDevelopmentHistory } from "./ProfileDevelopmentHistory";
import { DevelopmentRequest } from "./DevelopmentRequest";

@Entity("developmentProject")
export class DevelopmentProject extends EntityBase {
  @Column({
    // TRAINING = การอบรม
    // MEETING = การประชุม
    // SEMINAR = การสัมมนา
    // STUDY_TOUR = การศึกษาดูงาน
    // ACADEMIC_SEMINAR = การสัมมนาทางวิชาการ
    // WORKSHOP = การสัมมนาเชิงปฏิบัติการ
    // SPECIAL_LECTURE = การบรรยายพิเศษ
    // LECTURE = การบรรยาย
    // STUDY_TRAINING = การฝึกศึกษา
    // OTHER = อื่น
    nullable: true,
    comment: "เทคนิควิธีการที่ใช้ในการพัฒนา",
    default: null,
  })
  name: string;

  @Column({
    nullable: true,
    comment: "โครงการ/หลักสูตรการฝึกอบรม",
    default: null,
  })
  profileDevelopmentId: string;

  @ManyToOne(
    () => ProfileDevelopment,
    (profileDevelopment) => profileDevelopment.developmentProjects,
  )
  @JoinColumn({ name: "profileDevelopmentId" })
  profileDevelopment: ProfileDevelopment;

  @Column({
    nullable: true,
    comment: "โครงการ/หลักสูตรการฝึกอบรม",
    default: null,
  })
  profileDevelopmentHistoryId: string;

  @ManyToOne(
    () => ProfileDevelopmentHistory,
    (profileDevelopmentHistory) => profileDevelopmentHistory.developmentProjects,
  )
  @JoinColumn({ name: "profileDevelopmentHistoryId" })
  profileDevelopmentHistory: ProfileDevelopmentHistory;

  @Column({
    nullable: true,
    comment: "โครงการ/หลักสูตรการฝึกอบรม",
    default: null,
  })
  developmentRequestId: string;

  @ManyToOne(
    () => DevelopmentRequest,
    (developmentRequest) => developmentRequest.developmentProjects,
  )
  @JoinColumn({ name: "developmentRequestId" })
  developmentRequest: DevelopmentRequest;
}
export class CreateDevelopmentProject {
  @Column()
  name: string;
}
