<?php

namespace App\Http\Controllers\Cartograhie\DataChecker;

use Illuminate\Support\Collection;

class DataCheckerController
{
    public function checkIfOneDataIsNull($data): bool
    {
        if(is_null($data)) {
            return true;
        }

        if(is_int($data) && $data === 0) {
            return true;
        }

        if(is_array($data) && empty($data)) {
            return true;
        }

        if(is_array($data)) {
            foreach($data as $value) {
                if($this->checkIfOneDataIsNull($value)) {
                    return true;
                }
            }
        }

        if(is_object($data)) {
            if (isset($data->hors_marche) && isset($data->marche) && isset($data->segment)) {
                if (is_null($data->hors_marche) || is_null($data->marche) || is_null($data->segment)) {
                    return true;
                }
            } else {
                foreach($data as $value) {
                    if($this->checkIfOneDataIsNull($value)) {
                        return true;
                    }
                }
            }
        }

        if($data instanceof Collection) {
            if($data->isEmpty()) {
                return true;
            }
            foreach($data as $item) {
                if($this->checkIfOneDataIsNull($item)) {
                    return true;
                }
            }
        }
        return false;
    }
}
