import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  ManyToOne,
  JoinColumn,
} from "typeorm"
import { BaseEntity } from "../../common/entities/base.entity"
import { Project } from "./project.entity"
import { Employee } from "../../employees/entities/employee.entity"

@Entity("project_employees")
export class ProjectEmployee extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number

  @Column({ type: "int", nullable: false })
  project_id: number

  @Column({ type: "int", nullable: false })
  employee_id: number

  @Column({ type: "int", nullable: true })
  assigned_by: number

  @Column({
    type: "timestamp",
    nullable: false,
    default: () => "CURRENT_TIMESTAMP",
  })
  assigned_at: Date

  @ManyToOne(() => Project)
  @JoinColumn({ name: "project_id" })
  project: Project

  @ManyToOne(() => Employee)
  @JoinColumn({ name: "employee_id" })
  employee: Employee
}
