<?php

namespace App\Services\AI;

use App\Contracts\VideoAvatarProvider;
use App\DTOs\VideoRenderResult;
use App\Exceptions\ProviderNotConfiguredException;
use App\Models\Avatar;
use App\Models\Voice;

/**
 * Swap the `App\Contracts\VideoAvatarProvider` binding in CreativeServiceProvider
 * for a real adapter (HeyGen/Synthesia/D-ID/etc.) once a vendor is chosen.
 */
class NullVideoAvatarProvider implements VideoAvatarProvider
{
    public function render(Avatar $avatar, Voice $voice, array $script, array $storyboard, int $duration, string $ratio, ?string $style = null, ?callable $onProgress = null, ?array $context = null): VideoRenderResult
    {
        throw new ProviderNotConfiguredException(
            'No video-avatar provider is configured. Set config(creative.video_provider) to a real adapter to enable video creative generation.'
        );
    }
}
