import {GameQueueTypes} from "../schemas/game-queue.schema";

export interface IStateInfo {
  state:string;
  value:string;
}

export interface IValidAnswerReceivedSocketEvent {
  telegramId: number;
  validAnswer: string;
  note: string;
}

export interface IUserInfoMinimal {
  telegramId: number;
}

export interface IUserBasicInfo extends IUserInfoMinimal {
  name: string;
}

export interface IVersusBeginSocketEvent {
  player1: number;
  player2: number;
  player1name: string;
  player2name: string;
}

export interface IVersusEndSocketEvent {
  winner: number;
}

export interface IScoreChangedSocketEvent  extends IUserInfoMinimal {
  newScore: number;
}

export interface IUserCardChangedEvent extends  IUserInfoMinimal {
  cards: string[];
}

export interface IEmptyNotification {}

export interface ISocketNotificationEvent {
  text: string;
  timeout: number;
}

export interface IUserPropertyChangedEvent {
  user: number;
  property: string;
  value: string;
}

export interface ICardPlayedSocketEvent extends IUserInfoMinimal{
  card: string;
  name: string;
  timeout: number;
}
export interface IGameQueueSocketEvent {
  _id: any;
  completed: boolean;
  target: number;
  type: GameQueueTypes;
  text: string;
}