import gleam/dynamic/decode.{type Decoder} import spacetraders_models/ship_nav_route_waypoint.{type ShipNavRouteWaypoint} import spacetraders_models/timestamp.{type Timestamp} pub type ShipNavRoute { ShipNavRoute( destination: ShipNavRouteWaypoint, origin: ShipNavRouteWaypoint, departure_time: Timestamp, arrival: Timestamp, ) } 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", timestamp.decoder()) use arrival <- decode.field("arrival", timestamp.decoder()) decode.success(ShipNavRoute(destination:, origin:, departure_time:, arrival:)) }