UNPKG

@tmlmobilidade/types

Version:
61 lines (60 loc) 3.09 kB
/* * */ import { RideAcceptanceStatusSchema } from './ride-acceptance.js'; import { RideAnalysisGradeSchema } from './ride-analysis.js'; import { DelayStatusSchema, OperationalStatusSchema, SeenStatusSchema, TicketingStatusSchema, UnixTimestampSchema } from '@tmlmobilidade/go-types-shared'; import { z } from 'zod'; /* * */ const RideAnalysisGradeWithNoneSchema = RideAnalysisGradeSchema.or(z.literal('none')); /* * */ export const GetRidesBatchQuerySchema = z.object({ search: z .string() .optional(), /* * */ agency_ids: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(id => id.trim()) : [], z.array(z.string())) .default([]), date_end: UnixTimestampSchema, date_start: UnixTimestampSchema, /* * */ analysis_ended_at_last_stop_grade: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(grade => grade.trim()) : [], z.array(RideAnalysisGradeWithNoneSchema)) .optional(), analysis_expected_apex_validation_interval: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(grade => grade.trim()) : [], z.array(RideAnalysisGradeWithNoneSchema)) .optional(), analysis_simple_three_vehicle_events_grade: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(grade => grade.trim()) : [], z.array(RideAnalysisGradeWithNoneSchema)) .optional(), analysis_transaction_sequentiality: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(grade => grade.trim()) : [], z.array(RideAnalysisGradeWithNoneSchema)) .optional(), /* * */ delay_statuses: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(status => status.trim()) : [], z.array(DelayStatusSchema)) .optional(), operational_statuses: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(status => status.trim()) : [], z.array(OperationalStatusSchema)) .optional(), seen_statuses: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(status => status.trim()) : [], z.array(SeenStatusSchema)) .optional(), /* * */ line_ids: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(id => id.trim()) : [], z.array(z.string())) .optional(), stop_ids: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(id => id.trim()) : [], z.array(z.string())) .optional(), /* * */ acceptance_status: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(status => status.trim()) : [], z.array(z.enum([...RideAcceptanceStatusSchema.options, 'none']))) .optional(), /* * */ favorites: z .boolean() .optional(), ticketing_status: z .preprocess((val) => (val && typeof val === 'string') ? val.split(',').map(status => status.trim()) : [], z.array(TicketingStatusSchema)) .optional(), });