import z from "zod";

export const CreateConsoleFeatureSchema = z.object({
  name: z.string().min(2, { message: "Feature Name is required" }),
  slug: z.string().min(2, { message: "Feature Unique slug is required" }),
});

export const CreateRoleSchema = z.object({
  name: z.string().min(2, { message: "Role Name is required" }),
  description: z.string().min(2, { message: "Description is required" }),
  privileges: z
    .array(
      z.object({
        featureId: z.string().min(1, "Missing Feature"),
        create: z.boolean(),
        read: z.boolean(),
        update: z.boolean(),
        delete: z.boolean(),
      }),
    )
    .optional(),
});

export const UpdateRoleSchema = z.object({
  name: z.string().optional(),
  description: z.string().optional(),
  privileges: z
    .array(
      z.object({
        featureId: z.string().min(1, "Missing Feature"),
        create: z.boolean(),
        read: z.boolean(),
        update: z.boolean(),
        delete: z.boolean(),
      }),
    )
    .optional(),
});

export const SearchRoleSchema = z.object({
  page: z.string().optional(),
  pageSize: z.string().optional(),
  searchTerm: z.string().optional(),
});
