import { setLocale } from 'yup'

import { fields } from '@/constants/fields'

const label = (path) => fields[path] || path

setLocale({
  mixed: {
    required: ({ path }) => `فیلد ${label(path)} ضروری است`,
  },
  string: {
    min: ({ path, min }) => `فیلد ${label(path)} باید حداقل ${min} کاراکتر باشد`,
    max: ({ path, max }) => `فیلد ${label(path)} باید حداکثر ${max} کاراکتر باشد`,
    email: ({ path }) => `فیلد ${label(path)} باید یک ایمیل معتبر باشد`,
    url: ({ path }) => `فیلد ${label(path)} باید یک URL معتبر باشد`,
    length: ({ path, length }) => `فیلد ${label(path)} باید دقیقا ${length} کاراکتر باشد`,
  },
  array: {
    min: ({ path, min }) => `فیلد ${label(path)} باید حداقل ${min} آیتم داشته باشد`,
    max: ({ path, max }) => `فیلد ${label(path)} باید حداکثر ${max} آیتم داشته باشد`,
  },
})
