import {z} from 'zod'; import {createAllStates, dateResolvable, defaultRemoveSchema} from './util'; const team = z.object({ id: z.string().uuid(), name: z.string(), key: z.string(), }); const label = z.object({ id: z.string().uuid(), name: z.string(), color: z.string(), }); const state = z.object({ id: z.string().uuid(), name: z.string(), color: z.string(), type: z.string(), }); const commons = z.object({ id: z.string().uuid(), createdAt: dateResolvable, updatedAt: dateResolvable, number: z.number().positive(), title: z.string(), description: z.string(), priority: z.number(), boardOrder: z.number(), sortOrder: z.number(), previousIdentifiers: z.array(z.string()), priorityLabel: z.string(), teamId: z.string().uuid(), stateId: z.string().uuid(), assigneeId: z.string().uuid().optional(), subscriberIds: z.array(z.string().uuid()), creatorId: z.string().uuid(), labelIds: z.array(z.string().uuid()), state, team, labels: z.array(label).optional(), }); export const issue = createAllStates(commons, defaultRemoveSchema).and( z.object({ type: z.literal('Issue'), url: z.string().url(), }), );