#pragma once #include #include #include #include #include namespace routes { struct DeviceInfo { std::string dongle_id; }; struct RouteInfo { std::string name; int64_t start_ms = 0; int64_t end_ms = 0; }; using DevicesCallback = std::function devices, bool success, int error_code)>; using RoutesCallback = std::function routes, bool success, int error_code)>; std::pair checkApiResponse(const std::string &result); int64_t nowUnixMs(); int64_t parseIsoToUnixMs(const std::string &s); std::string formatUnixMs(int64_t ms); std::vector parseDevices(const std::string &json); std::vector parseRoutes(const std::string &json, bool preserved); void fetchDevices(DevicesCallback callback); void fetchRoutes(const std::string &dongle_id, int period_days, RoutesCallback callback); }