@tmlmobilidade/types
Version:
25 lines (24 loc) • 1.14 kB
JavaScript
/* * */
import { SamAnalysisSchema } from './sam-analysis.js';
import { SamTimelineSummarySchema } from './sam-timeline-summary.js';
import { DocumentSchema, SystemStatusSchema, UnixTimestampSchema } from '@tmlmobilidade/go-types-shared';
import { z } from 'zod';
/* * */
export const SamSchema = DocumentSchema
.omit({ created_by: true, is_locked: true, updated_by: 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: SystemStatusSchema.default('waiting'),
timeline_summary: SamTimelineSummarySchema.default({ months: [] }).optional().nullable(),
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.partial();