import { Entity, ManyToOne, Property, Enum, Index } from '@mikro-orm/core';
import { BaseEntity } from '../../../common/entities/base.entity';
import { User } from '../../users/entities/user.entity';
import { Restaurant } from '../../restaurants/entities/restaurant.entity';
import { PagerStatus } from '../interface/pager';
import { Admin } from 'src/modules/admin/entities/admin.entity';

@Entity({ tableName: 'pagers' })
@Index({ properties: ['restaurant'] })
export class Pager extends BaseEntity {
  @Property({ type: 'string' })
  cookieId!: string;

  @ManyToOne(() => Restaurant)
  restaurant!: Restaurant;

  @Property({ type: 'string' })
  tableNumber!: string;

  @ManyToOne(() => User, { nullable: true })
  user?: User;

  @ManyToOne(() => Admin, { nullable: true })
  staff?: Admin;

  @Property({ type: 'string', nullable: true })
  message?: string;

  @Enum(() => PagerStatus)
  status: PagerStatus = PagerStatus.Pending;
}
