@tmlmobilidade/types
Version:
24 lines (23 loc) • 979 B
JavaScript
/* * */
import { DocumentSchema } from './_common/document.js';
import { operationalDateSchema } from './_common/operational-date.js';
import { z } from 'zod';
/* * */
export const AgencySchema = DocumentSchema.extend({
contact_emails_pta: z.array(z.string().email()).default([]),
contact_emails_pto: z.array(z.string().email()).default([]),
fare_url: z.string().url(),
financials: z.object({
price_per_km: z.coerce.number(),
vkm_per_month: z.array(z.coerce.number()).length(12),
}),
name: z.string(),
operation_start_date: operationalDateSchema.nullable().default(null),
phone: z.string(),
public_email: z.string().email(),
short_name: z.string(),
timezone: z.string().default('Europe/Lisbon'),
website_url: z.string().url(),
});
export const CreateAgencySchema = AgencySchema.omit({ created_at: true, updated_at: true });
export const UpdateAgencySchema = CreateAgencySchema.omit({ created_by: true }).partial();