import { z } from 'zod';

// 前端特定的渠道表单验证Schema
// 这些Schema扩展了后端Schema，添加了前端特定的验证规则

// 创建渠道表单Schema
export const CreateChannelFormSchema = z.object({
  channelName: z.string().min(1, '渠道名称不能为空').max(100, '渠道名称不能超过100个字符'),
  channelType: z.string().max(50, '渠道类型不能超过50个字符').optional(),
  contactPerson: z.string().max(50, '联系人姓名不能超过50个字符').optional(),
  contactPhone: z.string().max(20, '联系电话不能超过20个字符').optional(),
  description: z.string().optional()
});

// 更新渠道表单Schema
export const UpdateChannelFormSchema = z.object({
  id: z.number().int().positive('渠道ID必须为正整数'),
  channelName: z.string().min(1, '渠道名称不能为空').max(100, '渠道名称不能超过100个字符').optional(),
  channelType: z.string().max(50, '渠道类型不能超过50个字符').optional(),
  contactPerson: z.string().max(50, '联系人姓名不能超过50个字符').optional(),
  contactPhone: z.string().max(20, '联系电话不能超过20个字符').optional(),
  description: z.string().optional()
});

// 搜索渠道表单Schema
export const SearchChannelFormSchema = z.object({
  name: z.string().min(1, '搜索关键词不能为空').max(100, '搜索关键词不能超过100个字符')
});

// 批量删除渠道表单Schema
export const BatchDeleteChannelFormSchema = z.object({
  ids: z.array(z.number().int().positive('渠道ID必须为正整数')).min(1, '至少选择一个渠道')
});

// 类型定义
export type CreateChannelFormData = z.infer<typeof CreateChannelFormSchema>;
export type UpdateChannelFormData = z.infer<typeof UpdateChannelFormSchema>;
export type SearchChannelFormData = z.infer<typeof SearchChannelFormSchema>;
export type BatchDeleteChannelFormData = z.infer<typeof BatchDeleteChannelFormSchema>;