UNPKG

@tmlmobilidade/types

Version:
35 lines (34 loc) 1.29 kB
/* * */ import { OperationalDateSchema } from '../../index.js'; import { UnixTimestampSchema } from '@tmlmobilidade/go-types-shared'; import { z } from 'zod'; /* * */ export const SimplifiedVehicleEventSchema = z.object({ // Required Fields _id: z.string(), agency_id: z.string(), created_at: UnixTimestampSchema, geohash: z.string().nullish(), latitude: z.number() .min(-90) .max(90) .refine(value => value.toFixed(6) === value.toString()), longitude: z.number() .min(-180) .max(180) .refine(value => value.toFixed(6) === value.toString()), operational_date: OperationalDateSchema, received_at: UnixTimestampSchema, trip_id: z.string(), vehicle_id: z.string(), // Optional Fields bearing: z.number().nullable().default(null), current_status: z.enum(['INCOMING_AT', 'STOPPED_AT', 'IN_TRANSIT_TO']).nullable().default(null), door: z.string().nullable().default(null), driver_id: z.string().nullable().default(null), extra_trip_id: z.string().nullable().default(null), odometer: z.number().nullable().default(null), pattern_id: z.string().nullable().default(null), speed: z.number().nullable().default(null), stop_id: z.string().nullable().default(null), });