import { api } from './client'; import type { FlightParameters, RawPrediction } from '$domain'; /** * GFS datasets are published every 6 hours with a ~6 hour processing lag. * Round down to the most recent available slot. */ export function getLatestDataset(now: Date = new Date()): string { // const rounded = new Date(now); // rounded.setUTCHours(Math.floor(rounded.getUTCHours() / 6) * 6, 0, 0, 0); // rounded.setUTCHours(rounded.getUTCHours() - 6); // return rounded.toISOString(); return "2025-04-06T00:00:00Z"; } export function buildLaunchDateTime(date: string, time: string): string { const fullTime = time.split(':').length === 2 ? `${time}:00` : time; return new Date(`${date}T${fullTime}Z`).toISOString(); } export interface PredictionResponse { result: RawPrediction; } export const predictionsApi = { run: (params: FlightParameters, launchDateTime: string) => { const payload: FlightParameters & { launch_datetime: string } = { ...params, dataset: params.dataset || getLatestDataset(), launch_datetime: launchDateTime, }; if (payload.start_point === -1) delete payload.start_point; return api.post('/predictions/', payload); }, };