import * as yup from 'yup'

export const loginSchema = yup.object({
    username: yup.string()
        .required("وارد کردن نام کاربری الزامی میباشد")
        .min(10, "نام کاربری نمیتوند کمتر از 10 رقم باشد")
        .max(10, "نام کاربری نمیتواند بیشتر از 10 رقم باشد")
        .matches(/^[0-9]{10}$/, "شماره تماس نامعتبر"),
    password: yup.string()
        .required("وارد کردن رمزعبور الزامی میباشد")
        .min(8, "رمزعبور نمیتواند کمتر از 8 کاراکتر باشد")
})

export const resetPasswordSchema = yup.object({
    password: yup.string().min(8, "رمز عبور نمیتواند کمتر از 8 کاراکتر باشد").required("رمز عبور الزامی میباشد"),
    repeatPassword: yup.string()
        .oneOf([yup.ref('password')], "رمز عبور و تکرار آن باید یکسان باشند")
        .required("تکرار رمز عبور الزامی میباشد"),
})

export const forgotPasswordSchema = yup.object({
    phoneNumber: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(11, "شماره تماس نمیتوند کمتر از 11 رقم باشد")
        .max(11, "شماره تماس نمیتواند بیشتر از 11 رقم باشد")
        .matches(/^[0-9]{11}$/, "شماره تماس نامعتبر"),
})

export const LoginWithCodeSchema = yup.object({
    phoneNumber: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(11, "شماره تماس نمیتوند کمتر از 11 رقم باشد")
        .max(11, "شماره تماس نمیتواند بیشتر از 11 رقم باشد")
        .matches(/^[0-9]{11}$/, "شماره تماس نامعتبر"),
})

export const ResetPasswordCodeSchema = yup.object({
    code: yup.string()
        .required("وارد کردن کد الزامی میباشد")
        .min(5, "کد نمیتوند کمتر از 5 رقم باشد")
        .max(5, "کد نمیتواند بیشتر از 5 رقم باشد")
        .matches(/^[0-9]{5}$/, "کد نامعتبر"),
})

export const LoginCodeSchema = yup.object({
    code: yup.string()
        .required("وارد کردن کد الزامی میباشد")
        .min(5, "کد نمیتوند کمتر از 5 رقم باشد")
        .max(5, " کد نمیتواند بیشتر از 5 رقم باشد")
        .matches(/^[0-9]{5}$/, "کد نامعتبر"),
})

export const RegisterSchema = yup.object({
    name: yup.string().required("وارد کردن نام الزامی میباشد").min(3, "نام نمیتواند کمتر از 3 کاراکتر باشد").max(20, "نام نمیتواند بیشتر از 20 کاراکتر باشد"),
    family: yup.string().required("وارد کردن نام خانوادگی الزامی میباشد").min(3, "نام خانوادگی نمیتواند کمتر از 3 کاراکتر باشد").max(25, "نام خانوادگی نمیتواند بیشتر از 25 کاراکتر باشد"),
    city: yup.object().required("وارد کردن شهر الزامی مباشد"),
    capCity: yup.object().required("وارد کردن استان الزامی مباشد"),
    marketName: yup.string().required("وارد کردن نام فروشگاه الزامی میباشد").min(2, "نام فروشگاه نمیتواند کمتر از 3 کاراکتر باشد").max(30, "نام فروشگاه نمیتواند بیشتر از 30 کاراکتر باشد"),
    phoneNumber: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(11, "شماره تماس نمیتوند کمتر از 11 رقم باشد")
        .max(11, "شماره تماس نمیتواند بیشتر از 11 رقم باشد")
        .matches(/^[0-9]{11}$/, "شماره تماس نامعتبر"),
    password: yup.string().min(8, "رمز عبور نمیتواند کمتر از 8 کاراکتر باشد").required("رمز عبور الزامی میباشد"),
    repeatPassword: yup.string()
        .oneOf([yup.ref('password')], "رمز عبور و تکرار آن باید یکسان باشند")
        .required("تکرار رمز عبور الزامی میباشد"),
})

export const MyAccountSchema = yup.object({
    phoneNumber: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(11, "شماره تماس نمیتوند کمتر از 11 رقم باشد")
        .max(11, "شماره تماس نمیتواند بیشتر از 11 رقم باشد")
        .matches(/^[0-9]{11}$/, "شماره تماس نامعتبر"),
    marketName: yup.string().required("وارد کردن نام فروشگاه الزامی میباشد").min(2, "نام فروشگاه نمیتواند کمتر از 3 کاراکتر باشد").max(30, "نام فروشگاه نمیتواند بیشتر از 30 کاراکتر باشد"),
    name: yup.string().required("وارد کردن نام الزامی میباشد").min(3, "نام نمیتواند کمتر از 3 کاراکتر باشد").max(20, "نام نمیتواند بیشتر از 20 کاراکتر باشد"),
    family: yup.string().required("وارد کردن نام خانوادگی الزامی میباشد").min(3, "نام خانوادگی نمیتواند کمتر از 3 کاراکتر باشد").max(25, "نام خانوادگی نمیتواند بیشتر از 25 کاراکتر باشد"),
    city: yup.object().required("وارد کردن شهر الزامی مباشد"),
    capCity: yup.object().required("وارد کردن استان الزامی مباشد"),
    address: yup.string().required("وارد کردن آدرس الزامی میباشد"),
    phoneNumber1: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(11, "شماره تماس نمیتوند کمتر از 11 رقم باشد")
        .max(11, "شماره تماس نمیتواند بیشتر از 11 رقم باشد")
        .matches(/^[0-9]{11}$/, "شماره تماس نامعتبر"),
    staticNumber: yup.string()
        .required("وارد کردن شماره تماس الزامی میباشد")
        .min(8, "شماره تماس نمیتوند کمتر از 8 رقم باشد")
        .max(8, "شماره تماس نمیتواند بیشتر از 8 رقم باشد")
        .matches(/^[0-9]{8}$/, "شماره تماس نامعتبر"),
    date: yup.string().required("وارد کردن تاریخ الزامی میباشد"),
    currentPassword: yup.string().required("وارد کردن رمز عبور فعلی الزامی میباشد"),
    newPassword: yup.string().min(8, "رمز عبور نمیتواند کمتر از 8 کاراکتر باشد").required("رمز عبور الزامی میباشد"),
    repeatPassword: yup.string()
        .oneOf([yup.ref('newPassword')], "رمز عبور و تکرار آن باید یکسان باشند")
        .required("تکرار رمز عبور الزامی میاشد"),
})

export const AddNewCardSchema = yup.object({
    name: yup.string().required("وارد کردن نام الزامی میباشد").min(3, "نام نمیتواند کمتر از 3 کاراکتر باشد").max(20, "نام نمیتواند بیشتر از 20 کاراکتر باشد"),
    family: yup.string().required("وارد کردن نام خانوادگی الزامی میباشد").min(3, "نام خانوادگی نمیتواند کمتر از 3 کاراکتر باشد").max(25, "نام خانوادگی نمیتواند بیشتر از 25 کاراکتر باشد"),
    PAN: yup.string()
        .required("وارد کردن شماره کارت الزامی میباشد")
        .min(16, "شماره کارت نمیتوند کمتر از 16 رقم باشد")
        .max(16, " شماره کارت نمیتواند بیشتر از 16 رقم باشد")
        .matches(/^[0-9]{16}$/, "شماره کارت نامعتبر"),
    IBAN: yup.string()
        .required("وارد کردن شماره شبا الزامی میباشد")
        .min(26, "شماره شبا نمیتوند کمتر از 26 رقم باشد")
        .max(26, " شماره شبا نمیتواند بیشتر از 26 رقم باشد")
        .matches(/^IR[0-9]{24}$/, "شماره شبا نامعتبر"),
})