import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  ManyToOne,
  JoinColumn,
  Index,
} from "typeorm"
import { BaseEntity } from "../../common/entities/base.entity"
import { Project } from "./project.entity"
import { ActivityType } from "../../activity-types/entities/activity-type.entity"

@Entity("project_activities")
@Index(["project_id", "activity_type_id"], { unique: true })
export class ProjectActivity extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number

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

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

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

  @ManyToOne(() => ActivityType, { onDelete: "CASCADE" })
  @JoinColumn({ name: "activity_type_id" })
  activityType: ActivityType
}
