import { v4 as uuidv4 } from 'uuid';
import { Injectable } from '@nestjs/common';
import { UsuariosService } from './usuarios.service';

export class Partida {
  constructor(
    public uuid: string,
    public uuidJugadorA: string,
    public nickJugadorA: string = '',
    public uuidJugadorB: string = null,
    public nickJugadorB: string = null,
    public abierta: boolean = true,
  ) {}
}

@Injectable()
export class PartidasService {
  private _partidas: Map<string, Partida> = new Map<string, Partida>();

  constructor(private readonly usuariosService: UsuariosService) {}

  get partidasAbiertas(): Partida[] {
    return Array.from(this._partidas.values()).filter(
      (partida) => partida.abierta,
    );
  }

  creaPartida(uuidJugadorA: string) {
    const uuid = uuidv4();
    const nickJugadorA=this.usuariosService.usuarios.get(uuidJugadorA).nickname;
    const partida = new Partida(uuid, uuidJugadorA,nickJugadorA);
    this._partidas.set(uuid, partida);
    return partida;
  }
}
