@tmlmobilidade/types
Version:
19 lines (18 loc) • 756 B
JavaScript
/* * */
import { DocumentSchema } from '@tmlmobilidade/go-types-shared';
import { ApprovalStatusSchema } from '@tmlmobilidade/go-types-shared';
import { z } from 'zod';
/* * */
//
// 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();