import {
  Entity, PrimaryGeneratedColumn, Column,
  ManyToOne, JoinColumn, CreateDateColumn
} from 'typeorm';
import { User } from '../../users/entities/user.entity';

export enum AnnouncementTarget {
  ALL    = 'all',
  AGENCY = 'agency',
  TEAM   = 'team',
}

@Entity('announcements')
export class Announcement {
  @PrimaryGeneratedColumn({ unsigned: true })
  id: number;

  @Column({ length: 200 })
  title: string;

  @Column({ type: 'text' })
  content: string;

  @ManyToOne(() => User)
  @JoinColumn({ name: 'author_id' })
  author: User;

  @Column({ type: 'enum', enum: AnnouncementTarget })
  target: AnnouncementTarget;

  @Column({ type: 'int', unsigned: true, nullable: true })
  target_id: number | null;

  @Column({ type: 'timestamp', nullable: true })
  published_at: Date | null;

  @Column({ default: false })
  is_published: boolean;

  @CreateDateColumn()
  created_at: Date;
}