@tmlmobilidade/types
Version:
19 lines (18 loc) • 736 B
JavaScript
/* * */
import { DocumentSchema } from './_common/document.js';
import { z } from 'zod';
import { ApprovalStatusSchema } from './_common/status.js';
/* * */
//
// Define constants for enum values for better maintainability
export const ScopeSchema = z.enum(['stop', 'lines']);
// Define schemas using constants
export const ProposedChangeSchema = DocumentSchema.extend({
curr_value: z.any(),
field: z.string(),
related_id: z.string(),
scope: ScopeSchema,
status: ApprovalStatusSchema,
});
export const CreateProposedChangeSchema = ProposedChangeSchema.omit({ _id: true, created_at: true, updated_at: true });
export const UpdateProposedChangeSchema = CreateProposedChangeSchema.omit({ created_by: true }).partial();