@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
100 lines • 3.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImportListResponseSchema = exports.ImportResponseSchema = exports.ImportDetailParamsSchema = exports.ImportStuckParamsSchema = exports.ImportRecentParamsSchema = exports.ImportListParamsSchema = exports.ImportSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("../../../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
*/
exports.ImportSchema = zod_1.z.object({
importUid: zod_1.z.number().int().describe('Unique identifier for the import'),
scheduledImportMasterUid: zod_1.z.number().int().describe('Reference to scheduled import master'),
dateCreated: zod_1.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: zod_1.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: zod_1.z.string().max(25).nullable().describe('Source name for the import'),
sourceId: zod_1.z.number().int().describe('Source identifier'),
importState: zod_1.z.string().max(30).describe('Current state of the import'),
jsonData: zod_1.z.string().max(16777215).nullable().describe('JSON data payload for the import'),
importStatusCd: zod_1.z.number().int().describe('Import status code'),
importResults: zod_1.z.string().max(16777215).nullable().describe('Import processing results'),
referenceNo: zod_1.z.string().max(255).nullable().describe('Reference number for tracking'),
});
/**
* Parameters for listing imports with filtering and pagination
*/
exports.ImportListParamsSchema = zod_1.z.object({
importState: zod_1.z
.enum(['initial', 'hold', 'delivered'])
.optional()
.describe('Import State [initial|hold|delivered](Default: initial)'),
limit: zod_1.z
.number()
.int()
.positive()
.max(1000)
.optional()
.describe('limit number of results (Default: 12)'),
offset: zod_1.z.number().int().min(0).optional().describe('offset (Default: 0)'),
orderBy: zod_1.z.string().optional().describe('Order By field (Default: import_uid|DESC)'),
q: zod_1.z.string().optional().describe('Search query to filter imports'),
});
/**
* Parameters for recent imports query
*/
exports.ImportRecentParamsSchema = zod_1.z.object({
hours: zod_1.z
.number()
.int()
.positive()
.max(168)
.optional()
.describe('Hours since created (Default: 48)'),
limit: zod_1.z
.number()
.int()
.positive()
.max(1000)
.optional()
.describe('limit number of results (Default: 1000)'),
});
/**
* Parameters for stuck imports query
*/
exports.ImportStuckParamsSchema = zod_1.z.object({
hours: zod_1.z
.number()
.int()
.positive()
.max(168)
.optional()
.describe('Hours since stuck (Default: 48)'),
limit: zod_1.z
.number()
.int()
.positive()
.max(1000)
.optional()
.describe('limit number of results (Default: 1000)'),
});
/**
* Parameters for import detail operations
*/
exports.ImportDetailParamsSchema = zod_1.z.object({
importUid: zod_1.z.string().describe('import.import_uid'),
});
/**
* Response schemas for import operations
*/
exports.ImportResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.ImportSchema);
exports.ImportListResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.array(exports.ImportSchema));
//# sourceMappingURL=import.js.map