import z from "zod";

export const registerSchema = z.object({
  name: z.string().min(2).max(255),
  email: z.string().email().min(8).max(255),
  password: z.string().min(6).max(255),
});

export const loginSchema = z.object({
  email: z.string().email(),
  password: z.string(),
  code: z.optional(z.string()),
});

export const forgotPasswordSchema = z.object({
  email: z.string().email(),
});

export const newPasswordSchema = z
  .object({
    password: z.string().min(6).max(255),
    confirmPassword: z.string().min(6).max(255),
  })
  .refine((data) => data.password === data.confirmPassword, {
    message: "Passwords do not match",
    path: ["confirmPassword"], // This tells Zod which field to attach the error to
  });

export type registerSchemaType = z.infer<typeof registerSchema>;

export type loginSchemaType = z.infer<typeof loginSchema>;

export type forgotPasswordSchemaType = z.infer<typeof forgotPasswordSchema>;
export type newPasswordSchemaType = z.infer<typeof newPasswordSchema>;
