| import { z } from 'zod/v4' | |
| import { lazySchema } from '../lazySchema.js' | |
| const TodoStatusSchema = lazySchema(() => | |
| z.enum(['pending', 'in_progress', 'completed']), | |
| ) | |
| export const TodoItemSchema = lazySchema(() => | |
| z.object({ | |
| content: z.string().min(1, 'Content cannot be empty'), | |
| status: TodoStatusSchema(), | |
| activeForm: z.string().min(1, 'Active form cannot be empty'), | |
| }), | |
| ) | |
| export type TodoItem = z.infer<ReturnType<typeof TodoItemSchema>> | |
| export const TodoListSchema = lazySchema(() => z.array(TodoItemSchema())) | |
| export type TodoList = z.infer<ReturnType<typeof TodoListSchema>> | |