<?php

namespace App\Classes\General;

use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Support\Facades\Log;

use Illuminate\Support\Str;

class Helper
{

    /**
     * @param string $methodName
     * @return string
     */
    static function getPropertyName(string $methodName){
        return Str::snake(str_replace('get', '', $methodName));
    }

    /**
     * @param string $className
     * @return array
     */
    static function getClassMethodsArray(string $className){
        return array_slice(get_class_methods($className), 1);
    }

    /**
     * @param $log
     * @return array
     */
    static function debugLogger($log){
        if($log && isset($log['message'])){
            $message = $log['message'];
            $substring = 'No data were found';
            if (isset($message)) {
                if (strpos($message, $substring) !== false) {
                    // Log::info('Message exist');
                } else {
                    Log::info($log['message']);
                }
            }
        }
    }

    /**
     * @param null|string $param
     * @return array
     */
    static function deserializeFilters($param): array {
        if(gettype($param) == "array"){
            $json = implode(',', $param);
        }
        else{
            $json = $param;
        }
        return $json !== null ? collect(json_decode($json))->toArray() : [];
    }

    /**
     * @param ResourceCollection $collection
     * @return array
     */
    static function collectionResponse(ResourceCollection $collection){
        return json_decode($collection->response()->getContent(), true);
    }

}
