import { z } from "zod";

export const userSchema = z
  .object({
    id: z.nullable(z.string()).optional(),
    roles: z.array(z.string()).optional(),
    status: z.coerce.string().optional(),
    name: z
      .string({
        required_error: "User name required",
      })
      .min(1, { message: "Name must have at least 2 character(s)" }),
    email: z.nullable(z.string().optional()),
    username: z
      .string()
      .min(2, { message: "Username min length 2 character(s)" }),
    password: z
      .string({
        required_error: "Password field is required",
      })
      .min(8, { message: "Password min length 8 character(s)" })
      .optional(),
    confirm: z.string().optional(),
  })
  .refine((data) => data.password === data.confirm, {
    message: "Confirm password don't match",
    path: ["confirm"],
  });

export type TSuserSchema = z.infer<typeof userSchema>;
