<?php
namespace Helpers\Form;

use Helpers\Validator\Validator;

/**
 * WIP
 */
class Form
{

    /** @var FormInput[] */
    private array $listInput = [];

    private function __construct()
    {
    }

    /**
     * @param mixed $rawdata
     */
    public function validate(Validator $validator, $rawdata) :void
    {
        foreach ($this->listInput as $input) {
            foreach ($input->listValidator() as $callable) {
                $callable($validator, $input, $rawdata[ $input->getName() ], $rawdata);
            }
        }
    }

    // private function validatorProcess(
    //     Validator $validator,
    //     FormInput $input,
    //     string $method,
    //     array $param,
    //     $rawdata
    // ) {
    //     switch ($method) {
    //         case 'isStringSansEspace':
    //             $validator->isStringSansEspace(
    //                 $input->getLabel(),
    //                 $rawdata[ $input->getName() ],
    //                 $param['min'],
    //                 $param['max']
    //             );
    //             return;
    //         case 'isFloat':
    //             // TOOD
    //     }
    // }
}
