UNPKG

@ozmap/ozn-sdk

Version:

OZN SDK is a powerful tool for developers to build their own applications on top of OZN using TMForum pattern.

81 lines (68 loc) 2.37 kB
import { z } from 'zod'; import { externalSystemsSchema, ResourceSpecificationSchema } from './shared'; export const serviceQualificationByIdInputSchema = z.object({ serviceQualificationItem: z .array( z.object({ service: z.object({ place: externalSystemsSchema, }), }), ) .nonempty(), }); const GeographicLocationSchema = z.object({ name: z.string(), type: z.string(), geometry: z.array( z.object({ x: z.number(), y: z.number(), z: z.number().or(z.null()), }), ), }); export const ServiceQualificationAddressSchema = z.object({ type: z.string(), geographicLocation: GeographicLocationSchema, }); const ResourceLocationSchema = z.object({ type: z.string(), labelType: z.string(), name: z.string(), description: z.string().or(z.null()), parentLocation: z.string(), address: ServiceQualificationAddressSchema, }); export const EligibilityUnavailabilityReasonSchema = z.object({ code: z.string().or(z.null()).nullable(), label: z.string().or(z.null()).nullable(), }); const CharacteristicSchema = z.object({ name: z.string(), valueType: z.string(), value: z.string(), }); export const RelatedEntitySchema = z.object({ '@type': z.string(), qualificationResult: z.string(), characteristic: z.array(CharacteristicSchema), resourceSpecification: ResourceSpecificationSchema, resourceLocation: ResourceLocationSchema, eligibilityUnavailabilityReason: z.array(EligibilityUnavailabilityReasonSchema), }); const ServiceSchema = z.object({ serviceCharacteristic: z.array(CharacteristicSchema), relatedEntity: z.array(RelatedEntitySchema), }); const ServiceQualificationItemSchema = z.object({ qualificationResult: z.string(), service: ServiceSchema, eligibilityUnavailabilityReason: z.array(EligibilityUnavailabilityReasonSchema), }); export const serviceQualificationOutputSchema = z.object({ provideUnavailabilityReason: z.boolean(), serviceQualificationItem: z.array(ServiceQualificationItemSchema), }); export type ServiceQualificationByIdInput = z.infer<typeof serviceQualificationByIdInputSchema>; export type ServiceQualificationOutput = z.infer<typeof serviceQualificationOutputSchema>;