<?php

namespace Tests\Unit\Services;

use App\Services\AI\GeminiVeoVideoAvatarProvider;
use App\Services\AI\OpenAiSoraVideoAvatarProvider;
use App\Services\AI\VideoAvatarProviderFactory;
use Tests\TestCase;

class VideoAvatarProviderFactoryTest extends TestCase
{
    public function test_it_routes_short_durations_to_veo(): void
    {
        $provider = app(VideoAvatarProviderFactory::class)->forDuration(8);

        $this->assertInstanceOf(GeminiVeoVideoAvatarProvider::class, $provider);
    }

    public function test_it_routes_long_durations_to_sora(): void
    {
        $provider = app(VideoAvatarProviderFactory::class)->forDuration(15);

        $this->assertInstanceOf(OpenAiSoraVideoAvatarProvider::class, $provider);

        $provider = app(VideoAvatarProviderFactory::class)->forDuration(30);

        $this->assertInstanceOf(OpenAiSoraVideoAvatarProvider::class, $provider);
    }

    public function test_veo_max_duration_boundary_is_configurable(): void
    {
        config(['creative.veo_max_duration' => 20]);

        $provider = app(VideoAvatarProviderFactory::class)->forDuration(15);

        $this->assertInstanceOf(GeminiVeoVideoAvatarProvider::class, $provider);
    }
}
