@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
97 lines • 3.42 kB
JavaScript
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