<?php

namespace Lc\SovBundle\Field\Filter;


use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto;

/**
 * @author La clic ! <contact@laclic.fr>
 */
trait FilterTrait
{

    public function getFieldPropertySnake(string $fieldName): string
    {
        return str_replace('.', '_', $fieldName);
    }

    public function getFieldPropertyBase(string $fieldName): string
    {
        return str_replace('_', '.', $fieldName);
    }

    public function isRelationField(string $fieldName, string $needle = "."): bool
    {
        return strpos($fieldName, $needle) !== false;
    }

    public function getFieldPropertyWithoutRelation(string $fieldName, string $needle = '.'): string
    {
        return substr($fieldName, strpos($fieldName, $needle) + 1);
    }

    public function getFieldPropertyRelationAlias(string $fieldName, string $needle = '.'): string
    {
        return substr($fieldName, 0, strpos($fieldName, $needle));
    }


    public function getFieldProperty(FieldDto $fieldDto)
    {
        $property = $fieldDto->getProperty();
        //TODO pas forcément utile, à discuter
//        if ($fieldDto->getCustomOption('filter_on')) {
//            $property = $property . '.' . $fieldDto->getCustomOption('filter_on');
//        }
        return $property;
    }

}
