<?php

namespace App\Models\Backoffice\Support\Collections;

use Illuminate\Database\Eloquent\Collection as EloquentCollection;

class BaseCollection extends EloquentCollection
{
    public function hasItem($fieldName, $value)
    {
        $result = $this->getByFieldName($fieldName, $value);
        return !empty($result);
    }

    public function hasNoItem($fieldName, $value)
    {
        $result = $this->filter(function ($model) use ($fieldName, $value) {
            return $model->$fieldName != $value;
        })->first();
        return !empty($result);
    }

    public function getByFieldName($fieldName, $value)
    {
        $result = $this->filter(function ($model) use ($fieldName, $value) {
            if (is_array($value)) {
                return in_array($model->$fieldName, $value);
            } else {
                return $model->$fieldName == $value;
            }
        })->first();

        return $result;
    }
}
