// Implementação HTTP — o backend NestJS da fase 1.
//
// Continua aqui porque `MG-9` ainda não desligou o servidor antigo: enquanto a
// migração não é verificada ponta a ponta (`MG-8`), poder voltar para ele é o
// que separa "trocamos o backend" de "não temos backend".
import '../../../core/api/api_client.dart';
import 'ranking_repository.dart';

class RankingRepositoryHttp implements RankingRepository {
  RankingRepositoryHttp(this._api);

  final ApiClient _api;

  /// Página do ranking geral. O total vem na resposta, então quem chama sabe
  /// quando parou — sem isso a tela pediria página vazia para sempre.
  @override
  Future<Ranking> geral(String poolId, {int limit = 50, int offset = 0}) async {
    final r = await _api.get<Map<String, dynamic>>(
      '/pools/$poolId/ranking',
      query: {'limit': limit, 'offset': offset},
    );
    return Ranking.doJson(r);
  }

  @override
  Future<RankingRodada> daRodada(String poolId, int matchday) async {
    final r = await _api.get<Map<String, dynamic>>(
      '/pools/$poolId/matchdays/$matchday/ranking',
    );
    return RankingRodada.doJson(r);
  }

  @override
  Future<Extrato> extrato(String poolId, int matchday) async {
    final r = await _api.get<Map<String, dynamic>>(
      '/pools/$poolId/matchdays/$matchday/statement',
    );
    return Extrato.doJson(r);
  }
}
