<?php

namespace App\Services\AI;

use App\Contracts\VideoAvatarProvider;
use Illuminate\Contracts\Container\Container;

/**
 * Routes to a video vendor by requested duration: Veo (config('creative.video_provider'))
 * hard-caps a single clip at 8s, so anything longer than config('creative.veo_max_duration')
 * is routed to Sora (config('creative.video_provider_long')) instead — see config/creative.php.
 */
class VideoAvatarProviderFactory
{
    public function __construct(private Container $container) {}

    public function forDuration(int $duration): VideoAvatarProvider
    {
        $class = $duration <= (int) config('creative.veo_max_duration', 8)
            ? config('creative.video_provider')
            : config('creative.video_provider_long');

        return $this->container->make($class);
    }
}
