import birl.{type Time} import gleam/dynamic/decode.{type Decoder} import spacetraders_sdk/models/ship_nav_route_waypoint.{ type ShipNavRouteWaypoint, } import spacetraders_sdk/utils/api pub type ShipNavRoute { ShipNavRoute( destination: ShipNavRouteWaypoint, origin: ShipNavRouteWaypoint, departure_time: Time, arrival: Time, ) } pub fn decoder() -> Decoder(ShipNavRoute) { use destination <- decode.field( "destination", ship_nav_route_waypoint.decoder(), ) use origin <- decode.field("origin", ship_nav_route_waypoint.decoder()) use departure_time <- decode.field("departureTime", api.time_decoder()) use arrival <- decode.field("arrival", api.time_decoder()) decode.success(ShipNavRoute(destination:, origin:, departure_time:, arrival:)) }