841faca34a
- 新增项目规范文档,包含语言设置和 Git 提交规范 - 更新 .gitignore 文件,添加环境文件和数据目录 - 新增 Prettier 配置文件和忽略文件 - 更新 package.json,添加 prettier 和 prisma 相关依赖 - 新增 API 路由处理佣金和消费数据 这些更改为项目提供了更好的结构和代码风格规范。
43 lines
1.9 KiB
TypeScript
43 lines
1.9 KiB
TypeScript
import { z } from 'zod'
|
|
|
|
export const MediaSchema = z.object({
|
|
id: z.string(),
|
|
type: z.enum(['image', 'video']),
|
|
url: z.string().url('图片/视频 URL 格式不正确').or(z.string().min(1)),
|
|
})
|
|
|
|
export const CreateWaiterSchema = z.object({
|
|
name: z.string().min(1, '请输入姓名'),
|
|
avatar: z.string().optional(),
|
|
gallery: z.array(MediaSchema).optional().default([]),
|
|
specialty: z.string().min(1, '请输入擅长领域'),
|
|
commissionRate: z.number().min(0).max(100, '分成比例不能超过100%'),
|
|
status: z.enum(['上班中', '休息中', '禁用', '初始化']).optional(),
|
|
})
|
|
|
|
export const UpdateWaiterSchema = CreateWaiterSchema.partial()
|
|
|
|
export const CreateReservationSchema = z.object({
|
|
customerName: z.string().min(1, '请输入顾客姓名'),
|
|
date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, '日期格式不正确'),
|
|
time: z.string().regex(/^\d{2}:\d{2}$/, '时间格式不正确'),
|
|
waiterId: z.string().min(1, '请选择服务员'),
|
|
package: z.string().optional(),
|
|
note: z.string().optional(),
|
|
state: z.enum(['待分账', '已分账']).optional().default('待分账'),
|
|
})
|
|
|
|
export const CreateConsumptionSchema = z.object({
|
|
customerName: z.string().min(1, '请输入顾客姓名'),
|
|
date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/, '日期格式不正确'),
|
|
time: z.string().regex(/^\d{2}:\d{2}$/, '时间格式不正确'),
|
|
waiterId: z.string().min(1, '请选择服务员'),
|
|
amount: z.number().positive('消费金额必须大于0'),
|
|
state: z.enum(['待分账', '已分账']).optional().default('待分账'),
|
|
})
|
|
|
|
export type CreateWaiterInput = z.infer<typeof CreateWaiterSchema>
|
|
export type UpdateWaiterInput = z.infer<typeof UpdateWaiterSchema>
|
|
export type CreateReservationInput = z.infer<typeof CreateReservationSchema>
|
|
export type CreateConsumptionInput = z.infer<typeof CreateConsumptionSchema>
|