UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

97 lines 3.42 kB
import { z } from 'zod'; import { BaseResponseSchema } from '../../../core/schemas'; /** * MySQL datetime pattern for validation */ const mysqlDatetimePattern = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/; /** * Import data schema representing a single import record from P21 SISM */ export const ImportSchema = z.object({ importUid: z.number().int().describe('Unique identifier for the import'), scheduledImportMasterUid: z.number().int().describe('Reference to scheduled import master'), dateCreated: z .string() .regex(mysqlDatetimePattern, 'Must be MySQL datetime format: YYYY-MM-DD HH:mm:ss') .describe('MySQL datetime format: YYYY-MM-DD HH:mm:ss'), dateLastModified: z .string() .regex(mysqlDatetimePattern, 'Must be MySQL datetime format: YYYY-MM-DD HH:mm:ss') .describe('MySQL datetime format: YYYY-MM-DD HH:mm:ss'), sourceName: z.string().max(25).nullable().describe('Source name for the import'), sourceId: z.number().int().describe('Source identifier'), importState: z.string().max(30).describe('Current state of the import'), jsonData: z.string().max(16777215).nullable().describe('JSON data payload for the import'), importStatusCd: z.number().int().describe('Import status code'), importResults: z.string().max(16777215).nullable().describe('Import processing results'), referenceNo: z.string().max(255).nullable().describe('Reference number for tracking'), }); /** * Parameters for listing imports with filtering and pagination */ export const ImportListParamsSchema = z.object({ importState: z .enum(['initial', 'hold', 'delivered']) .optional() .describe('Import State [initial|hold|delivered](Default: initial)'), limit: z .number() .int() .positive() .max(1000) .optional() .describe('limit number of results (Default: 12)'), offset: z.number().int().min(0).optional().describe('offset (Default: 0)'), orderBy: z.string().optional().describe('Order By field (Default: import_uid|DESC)'), q: z.string().optional().describe('Search query to filter imports'), }); /** * Parameters for recent imports query */ export const ImportRecentParamsSchema = z.object({ hours: z .number() .int() .positive() .max(168) .optional() .describe('Hours since created (Default: 48)'), limit: z .number() .int() .positive() .max(1000) .optional() .describe('limit number of results (Default: 1000)'), }); /** * Parameters for stuck imports query */ export const ImportStuckParamsSchema = z.object({ hours: z .number() .int() .positive() .max(168) .optional() .describe('Hours since stuck (Default: 48)'), limit: z .number() .int() .positive() .max(1000) .optional() .describe('limit number of results (Default: 1000)'), }); /** * Parameters for import detail operations */ export const ImportDetailParamsSchema = z.object({ importUid: z.string().describe('import.import_uid'), }); /** * Response schemas for import operations */ export const ImportResponseSchema = BaseResponseSchema(ImportSchema); export const ImportListResponseSchema = BaseResponseSchema(z.array(ImportSchema)); //# sourceMappingURL=import.js.map