import { z } from 'zod';
import { ALL_PERMISSIONS } from '@/lib/auth/permissions';

export const permissionEnum = z.enum(ALL_PERMISSIONS);

export const permissionTemplateSchema = z.object({
  code: z
    .string()
    .trim()
    .min(2, 'กรุณากรอกรหัส Template อย่างน้อย 2 ตัวอักษร')
    .max(50, 'รหัส Template ต้องไม่เกิน 50 ตัวอักษร'),
  name: z
    .string()
    .trim()
    .min(2, 'กรุณากรอกชื่อ Template อย่างน้อย 2 ตัวอักษร')
    .max(100, 'ชื่อ Template ต้องไม่เกิน 100 ตัวอักษร'),
  description: z.string().trim().max(500, 'รายละเอียดต้องไม่เกิน 500 ตัวอักษร').optional(),
  is_default: z.boolean(),
  is_active: z.boolean(),
  permissions: z.array(permissionEnum).min(1, 'กรุณาเลือกอย่างน้อย 1 สิทธิ์'),
  reason: z.string().trim().max(500, 'เหตุผลต้องไม่เกิน 500 ตัวอักษร').optional()
});

export type PermissionTemplateFormValues = z.infer<typeof permissionTemplateSchema>;
