import { oc } from '@orpc/contract' import { createInsertSchema, createSelectSchema, createUpdateSchema, } from 'drizzle-zod' import { z } from 'zod' import { todoTable } from '@/db/schema' const selectSchema = createSelectSchema(todoTable) const insertSchema = createInsertSchema(todoTable).omit({ id: true, createdAt: true, updatedAt: true, }) const updateSchema = createUpdateSchema(todoTable).omit({ id: true, createdAt: true, updatedAt: true, }) export const list = oc.input(z.void()).output(z.array(selectSchema)) export const create = oc.input(insertSchema).output(selectSchema) export const update = oc .input( z.object({ id: z.uuid(), data: updateSchema, }), ) .output(selectSchema) export const remove = oc .input( z.object({ id: z.uuid(), }), ) .output(z.void())