import {
  Entity, PrimaryGeneratedColumn, Column,
  ManyToOne, JoinColumn, CreateDateColumn
} from 'typeorm';
import { User } from '../../users/entities/user.entity';

export enum HolidayScope {
  ALL = 'all',
  SPECIFIC_TEAM = 'specific_team',
}

@Entity('public_holidays')
export class PublicHoliday {
  @PrimaryGeneratedColumn({ unsigned: true })
  id: number;

  @Column({ type: 'date', unique: true })
  date: Date;

  @Column({ length: 100 })
  label: string;

  @Column({ default: false })
  is_exceptional: boolean;

  @Column({ type: 'enum', enum: HolidayScope, default: HolidayScope.ALL })
  applies_to: HolidayScope;

  @ManyToOne(() => User, { nullable: true })
  @JoinColumn({ name: 'created_by' })
  created_by: User;

  @CreateDateColumn()
  created_at: Date;
}