/* * Copyright (C) 2025 TomTom Navigation B.V. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { z } from "zod"; import { uiVisibilityParam } from "../shared/responseOptions"; import { coordinateSchema, routingOptionsSchema, sectionTypeSchema, vehicleSchema } from "./common"; export const tomtomRoutingSchema = { locations: z .array(coordinateSchema) .min(2) .describe( "Ordered list of coordinates [origin, ...intermediateStops, destination]. Minimum 2 (origin + destination); add intermediate positions for multi-stop routes. Use geocoding for accurate coordinates." ), ...uiVisibilityParam, ...routingOptionsSchema, ...vehicleSchema, sectionType: sectionTypeSchema, vehicleHeading: z .number() .min(0) .max(359) .optional() .describe( "Heading of the vehicle at the origin, in degrees clockwise from north (0-359), for a route that starts in the direction of travel." ), }; export type RoutingParams = z.input>;