<?php

namespace App\Torrentio\Framework\Controller;

use App\Torrentio\Client\Torrentio;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

final class ApiController extends AbstractController
{
    public function __construct(
        private readonly Torrentio $torrentio,
    ) {}

    #[Route('/api/torrentio/{imdbId}/{season?}/{episode?}', name: 'api_torrentio')]
    public function api(string $imdbId, ?int $season, ?int $episode): Response
    {
        if (null !== $season && null !== $episode) {
            return $this->json(
                $this->torrentio->fetchEpisodeResults($imdbId, $season, $episode, false)
            );
        }
        return $this->json(
            $this->torrentio->search($imdbId, 'movies', false),
        );
    }
}
