<?php

declare(strict_types=1);

namespace Mirzaev\Feip\Params;

use Mirzaev\Feip\Error;

/**
 * Параметр имени
 * 
 * @property string $first_name Имя
 * 
 * @package Mirzaev\Feip\Params
 * @author Арсен Мирзаев <red@hood.su>
 */
trait FirstName
{
    /**
     * Имя: параметр
     * 
     * @var string
     */
    protected string $first_name = '';

    /**
     * Имя: фильтр
     * 
     * @param mixed $target Значение для фильтрации
     * 
     * @return array|null
     */
    public static function firstName($target): ?array
    {
        // Очистка
        if ($sanitized = filter_var($target, FILTER_SANITIZE_STRING)) {
            // Если очищение вернуло результат

            // Проверка
            if ($sanitized !== $target) {
                // Если очищенное значение не совпадает с отправленным
                new Error(200, __FUNCTION__);
            }

            return (array) $sanitized;
        } else {
            new Error(200, __FUNCTION__);
        }

        return null;
    }
}