<?php

namespace App\Libs\Services;

use App\Models\Document;
use Illuminate\Support\Facades\Auth;

class FileService
{
    public function storeFile($data)
    {
        if ($data['fileType'] === 'image') {
            $folder = 'public';
        } else {
            $folder = 'private';
        }

        $uniqueName = md5(pathinfo($data['file']->getClientOriginalName(), PATHINFO_FILENAME) . microtime(true));
        $tempFileName = $uniqueName . '.' . $data['file']->getClientOriginalExtension();
        $data['file']->storeAs('temp_' . $data['fileType'], $tempFileName, $folder);
        return $tempFileName;
    }

    public function findDocumentFile($slug)
    {
        $query = Document::full()
            ->where('status', 'published')
            ->where('lang_slug', $slug)
            ->where(function ($query) {
                $query->whereNull('publish_date')
                    ->orWhere('publish_date', '<=', now()->tz('Europe/Berlin'));
            })->where(function ($query) {
                $query->whereNull('expiration_date')
                    ->orWhere('expiration_date', '>', now()->tz('Europe/Berlin'));
            });

        $query->with([
            'documentFile',
        ]);

        return $query->first();
    }
}
