import { object, string } from 'yup'

import { passwordRule } from '@/constants/rules/passwordRule'
import { phoneNumberRule } from '@/constants/rules/phoneNumberRule'
import { nationalCodeRule } from '@/constants/rules/nationalCodeRule'
import { passwordConfirmationRule } from '@/constants/rules/passwordConfirmationRule'

export const studentProfileSchema = object().shape({
  name: string().required().min(2),
  phone: phoneNumberRule,
  nationalCode: nationalCodeRule,
  birthday: string().nullable().notRequired(),
  marriageStatus: string().nullable().notRequired(),
  gender: string().nullable().notRequired(),
  provinceId: string().nullable().notRequired(),
  cityId: string().nullable().notRequired(),
  address: string().nullable().notRequired(),
  postalCode: string()
    .nullable()
    .notRequired()
    .matches(/^\d{10}$/, { message: 'کد پستی باید ۱۰ رقم باشد', excludeEmptyString: true }),
  virtualPhoneNumber: string()
    .nullable()
    .notRequired()
    .matches(/^\d{10,15}$/, {
      message: 'شماره تلفن مجازی باید فقط شامل ۱۰ تا ۱۵ رقم باشد',
      excludeEmptyString: true,
    }),
  seminaryCode: string().nullable().notRequired(),
  seminaryServiceCenterCode: string().nullable().notRequired(),
  childrenCount: string()
    .nullable()
    .notRequired()
    .matches(/^\d+$/, { message: 'تعداد فرزند باید عدد باشد', excludeEmptyString: true }),
})

export const studentResetPasswordSchema = object().shape({
  phone: phoneNumberRule,
  password: passwordRule,
  passwordConfirmation: passwordConfirmationRule,
})
