import { z } from 'zod'; import { createPageSchema, createPageSizeSchema, createPaginationSchema } from './pagination.js'; const isoDateTimeSchema = z.string().datetime(); const pageSchema = createPageSchema(); const pageSizeSchema = createPageSizeSchema(10); const paginationSchema = createPaginationSchema(); export const waitlistStatusSchema = z.enum(['PENDING', 'INVITED', 'JOINED', 'DECLINED']); export const WaitlistEntryDtoSchema = z.object({ id: z.string(), email: z.string(), name: z.string().nullable(), status: waitlistStatusSchema, createdAt: isoDateTimeSchema, updatedAt: isoDateTimeSchema, }); export type WaitlistEntryDto = z.output; export const WaitlistQuerySchema = z.object({ page: pageSchema, pageSize: pageSizeSchema, }); export type WaitlistQuery = z.output; export const WaitlistListSchema = z.object({ data: z.array(WaitlistEntryDtoSchema), pagination: paginationSchema, }); export type WaitlistList = z.output;