Files
old.cms.fellies.org/packages/content/src/commissions.ts

41 lines
1.4 KiB
TypeScript

import { z } from "zod"
export const commissionStatusSchema = z.enum([
"new",
"scoped",
"in_progress",
"review",
"done",
"canceled",
])
export const createCustomerInputSchema = z.object({
name: z.string().min(1).max(180),
email: z.string().email().max(320).nullable().optional(),
phone: z.string().max(80).nullable().optional(),
instagram: z.string().max(120).nullable().optional(),
notes: z.string().max(4000).nullable().optional(),
isRecurring: z.boolean().default(false),
})
export const createCommissionInputSchema = z.object({
title: z.string().min(1).max(180),
description: z.string().max(4000).nullable().optional(),
status: commissionStatusSchema.default("new"),
customerId: z.string().uuid().nullable().optional(),
assignedUserId: z.string().max(120).nullable().optional(),
budgetMin: z.number().nonnegative().nullable().optional(),
budgetMax: z.number().nonnegative().nullable().optional(),
dueAt: z.date().nullable().optional(),
})
export const updateCommissionStatusInputSchema = z.object({
id: z.string().uuid(),
status: commissionStatusSchema,
})
export type CommissionStatus = z.infer<typeof commissionStatusSchema>
export type CreateCustomerInput = z.infer<typeof createCustomerInputSchema>
export type CreateCommissionInput = z.infer<typeof createCommissionInputSchema>
export type UpdateCommissionStatusInput = z.infer<typeof updateCommissionStatusInputSchema>