<?php

declare(strict_types=1);

namespace App\Framework\View\Loading\Resolvers;

use App\Framework\Core\PathProvider;

final readonly class LayoutResolver implements TemplateResolverStrategy
{
    public const string TEMPLATE_EXTENSION = '.view.php';

    public function __construct(
        private PathProvider $pathProvider,
        private string $templatePath = '/src/Framework/View/templates'
    ) {
    }

    public function resolve(string $template, ?string $controllerClass = null): ?string
    {
        $path = $this->pathProvider->resolvePath(
            $this->templatePath . '/layouts/' . $template . self::TEMPLATE_EXTENSION
        );

        return file_exists($path) ? $path : null;
    }
}
