/*
|--------------------------------------------------------------------------
| Preloaded File
|--------------------------------------------------------------------------
|
| Any code written inside this file will be executed during the application
| boot.
https://issuehunt.io/r/adonisjs/validator/issues/84
|
*/
// import { string } from '@ioc:Adonis/Core/Helpers';
import { validator } from '@ioc:Adonis/Core/Validator';

validator.rule(
    'translatedLanguage',
    (value, [mainLanguageField, typeField], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => {
        if (typeof value !== 'string') {
            return;
        }
        // const fieldValue = validator. getValue(data, field)
        // this should return the "category_id" value present in "root", but i got undefined
        const mainLanguage = validator.helpers.getFieldValue(mainLanguageField, root, tip);
        const type = validator.helpers.getFieldValue(typeField, root, tip);

        if (type && type == 'Translated') {
            if (value == mainLanguage) {
                errorReporter.report(
                    pointer,
                    'translatedLanguage', // Keep an eye on this
                    'translatedLanguage validation failed',
                    arrayExpressionPointer,
                    { mainLanguage },
                );
            }
        }

        // if (value !== string.camelCase(value)) {
        //     options.errorReporter.report(
        //         options.pointer,
        //         'camelCase',
        //         'camelCase validation failed',
        //         options.arrayExpressionPointer
        //     );
        // }
    },
);
