import { Column, ColumnType, Entity, ManyToOne, PrimaryColumn } from "typeorm";
import { member } from "./member";
import { executivePosition } from "../../settings/executivePosition";
import { getTypeByORM } from "../../../migrations/ormHelper";

@Entity()
export class memberExecutivePositions {
  @PrimaryColumn({ generated: "increment", type: "int" })
  id: number;

  @Column({ type: "varchar", length: 255, nullable: true })
  note?: string;

  @Column({ type: getTypeByORM("date").type as ColumnType })
  start: Date;

  @Column({ type: getTypeByORM("date").type as ColumnType, nullable: true })
  end?: Date;

  @Column()
  memberId: string;

  @Column()
  executivePositionId: number;

  @ManyToOne(() => member, (member) => member.awards, {
    nullable: false,
    onDelete: "CASCADE",
    onUpdate: "RESTRICT",
  })
  member: member;

  @ManyToOne(() => executivePosition, (executivePosition) => executivePosition.members, {
    nullable: false,
    onDelete: "RESTRICT",
    onUpdate: "RESTRICT",
    cascade: ["insert"],
  })
  executivePosition: executivePosition;
}