import {
  Entity, PrimaryGeneratedColumn, Column,
  ManyToOne, JoinColumn, CreateDateColumn
} from 'typeorm';
import { User } from './user.entity';

export enum CareerEventType {
  PROMOTION    = 'PROMOTION',
  MUTATION     = 'MUTATION',
  POSTE_CHANGE = 'POSTE_CHANGE',
  SALAIRE      = 'SALAIRE',
}

@Entity('career_history')
export class CareerHistory {
  @PrimaryGeneratedColumn({ unsigned: true })
  id: number;

  @ManyToOne(() => User)
  @JoinColumn({ name: 'user_id' })
  user: User;

  @Column({ type: 'enum', enum: CareerEventType })
  event_type: CareerEventType;

  @Column({ type: 'text' })
  description: string;

  @Column({ type: 'date' })
  effective_date: Date;

  @ManyToOne(() => User)
  @JoinColumn({ name: 'created_by' })
  created_by: User;

  @CreateDateColumn()
  created_at: Date;
}