use crate::core::{urlencode_path, DeviceResponse, Result};
device_service! {
/// Veículos por placa (device-based): `POST /vehicles/{action}`.
VehiclesService("vehicles") {
/// Dados do veículo pela placa: `POST /vehicles/dados` body
/// `{"placa": "..."}`.
dados => "dados",
/// FIPE pela placa: `POST /vehicles/fipe` body `{"placa": "..."}`.
fipe => "fipe",
/// Base nacional: `POST /vehicles/base/000/dados`.
base_dados => "base/000/dados",
/// FIPE na base nacional: `POST /vehicles/base/000/fipe`.
base_fipe => "base/000/fipe",
}
}
impl VehiclesService {
/// Consulta a FIPE por placa na rota dedicada:
/// `POST /vehicles/consultafipe/{placa}`.
pub async fn consulta_fipe(&self, placa: &str) -> Result<DeviceResponse> {
self.base
.request(&format!("consultafipe/{}", urlencode_path(placa)), None)
.await
}
}