<?php

if (!function_exists('getMediaUrl')) {
    /**
     * Generates thumb filename and url
     */

    function getMediaUrl($fileName = false, $fileNameSize = '')
    {

        if (!$fileName) {
            return "";
        }
        if ($fileNameSize) {
            $path = path_asset('path.frontend.thumbs');
            return $path.'/'.getFileNameSize($fileName, $fileNameSize);
        } else {
            $path = path_asset('path.frontend.media');
            return $path.'/'.$fileName;
        }
    }
}

if (!function_exists('getFileNameSize')) {
    function getFileNameSize($fileName = '', $sizeName = '')
    {
        if (empty($fileName)) {
            return "";
        }

        $pos = strrpos($fileName, ".");
        if (!empty($sizeName)) {
            if ($pos === false) {
                return "${fileName}_{$sizeName}";
            } else {
                return substr($fileName, 0, $pos)."_".$sizeName.substr($fileName, $pos);
            }
        } else {
            return $fileName;
        }
    }
}

if (!function_exists('getMediaByID')) {
    /**
     * Generates thumb filename and url by ID
     */

    function getMediaByID($mediaID = '', $fileNameSize = '')
    {
        $filename = '';

        $mediaItem = App\Models\MediaItem::find($mediaID);
        if (!empty($mediaItem->filename) && $mediaItem->filename != '') {
            $filename = getMediaUrl($mediaItem->filename, $fileNameSize);
        }

        return $filename;
    }
}

if (!function_exists('getImage')) {
    function getImage($imageItem = NULL, $imageSize = '')
    {
        if (!$imageItem) {
            return NULL;
        }

        return (object)[
            "url" => getMediaUrl($imageItem->filename, $imageSize),
            "alt" => $imageItem->alt
        ];
    }
}

if (!function_exists('getDocument')) {
    function getDocument($documentItem = NULL)
    {
        if (!$documentItem) {
            return NULL;
        }
        return (object)[
            "url" => getMediaUrl($documentItem->filename),
            "title" => $documentItem->title,
            "isExternal" => true,
        ];
    }
}
