surge_pricing 1.1.0
surge_pricing: ^1.1.0 copied to clipboard
SDK Flutter/Dart para o microserviço Surge Pricing v2 (MoveMe) — preço dinâmico por célula Uber H3 (GET /api/v1/price).
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-advancede/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.