@tmlmobilidade/types
Version:
25 lines (24 loc) • 1.05 kB
JavaScript
/* * */
import { DocumentSchema } from '../_common/document.js';
import { ProcessingStatusSchema } from '../_common/status.js';
import { UnixTimeStampSchema } from '../_common/unix-timestamp.js';
import { SamAnalysisSchema } from './sam-analysis.js';
import { z } from 'zod';
/* * */
export const SamSchema = DocumentSchema
.omit({ is_locked: true })
.extend({
_id: z.number(),
agency_id: z.string(),
analysis: z.array(SamAnalysisSchema).default([]),
latest_apex_version: z.string().nullable(),
remarks: z.string().nullable().default(null),
seen_first_at: UnixTimeStampSchema.nullable(),
seen_last_at: UnixTimeStampSchema.nullable(),
system_status: ProcessingStatusSchema.default('waiting'),
transactions_expected: z.number().nullable(),
transactions_found: z.number().nullable(),
transactions_missing: z.number().nullable(),
});
export const CreateSamSchema = SamSchema.omit({ created_at: true, updated_at: true });
export const UpdateSamSchema = CreateSamSchema.omit({ created_by: true }).partial();