Surge Pricing SDK (Flutter) — API v2

Cliente Dart/Flutter para o microserviço Surge Pricing v2 (células H3).

Instalação

dependencies:
  surge_pricing: ^1.1.0
flutter pub get

Uso rápido

import 'package:surge_pricing/surge_pricing.dart';

final client = SurgePricingClient(
  const SurgePricingConfig(
    baseUrl: 'http://localhost:8080', // ou URL de produção
  ),
);

// Recomendado (v2)
final price = await client.getPrice(
  latitude: -8.8714,
  longitude: 13.2911,
);
print(price.multiplier); // 1.0, 1.2, …
print(price.h3Cell);

// Compatível com código antigo (mapeia para AdvancedSurgeResponse)
final r = await client.getMultiplier(
  latitude: -8.8714,
  longitude: 13.2911,
);
print(r.multiplier);

client.close();

Rotas (v2)

Método SDK HTTP
getPrice GET /api/v1/price?latitude=&longitude=
getPriceBatch GET /api/v1/price/batch?h3_cells=
calculatePrice POST /api/v1/price/calculate
getMultiplier igual a getPrice (compat)
getWeather GET /api/v1/weather/current?...
getHealth GET /health

Nota: /api/v1/surge/calculate-advanced e /api/v1/zones/* eram da API Gin (v1) e não existem na v2.

Erros

try {
  await client.getPrice(latitude: -8.87, longitude: 13.29);
} on SurgePricingApiException catch (e) {
  print('${e.statusCode}: ${e.message}');
} on SurgePricingNetworkException catch (e) {
  print(e.message);
}

Licença

Uso proprietário MoveMe / appmoveme. Ver LICENSE.

Libraries

surge_pricing
SDK Flutter para o microserviço Surge Pricing & Weather.