use tvai_sdk::{TvaiSdk, TemplateBuilder};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    println!("🚀 快速验证内置配置功能...\n");

    // 创建 SDK
    let sdk = TvaiSdk::new();
    println!("✓ SDK 创建成功");

    // 验证音频编解码器
    let audio_count = sdk.ffmpeg_generator.get_available_audio_codecs().len();
    println!("✓ 加载了 {} 个音频编解码器", audio_count);

    // 验证视频编码器
    let video_count = sdk.ffmpeg_generator.get_available_video_encoders().len();
    println!("✓ 加载了 {} 个视频编码器", video_count);

    // 验证 AAC 编解码器
    if sdk.ffmpeg_generator.get_audio_codec("AAC").is_some() {
        println!("✓ AAC 编解码器可用");
    } else {
        println!("✗ AAC 编解码器不可用");
    }

    // 验证 H.264 编码器
    if sdk.ffmpeg_generator.get_video_encoder_by_name("H264").is_some() {
        println!("✓ H.264 编码器可用");
    } else {
        println!("✗ H.264 编码器不可用");
    }

    // 验证模型推荐
    let recommended = sdk.ffmpeg_generator.recommend_model_for_resolution(1080);
    if !recommended.is_empty() {
        println!("✓ 模型推荐功能正常: {:?}", recommended);
    } else {
        println!("✗ 模型推荐功能异常");
    }

    // 验证 FFmpeg 命令生成
    let template = TemplateBuilder::new("验证测试")
        .enable_enhancement("prob-4")
        .build()?;

    let command = sdk.generate_ffmpeg_command(&template, "test.mp4", "output.mp4")?;
    if command.contains("ffmpeg") && command.contains("tvai_up") {
        println!("✓ FFmpeg 命令生成正常");
    } else {
        println!("✗ FFmpeg 命令生成异常");
        println!("   命令: {}", command);
    }

    // 验证音频参数生成
    let audio_params = sdk.ffmpeg_generator.generate_audio_codec_params("AAC", Some(192));
    if audio_params.contains("-c:a") && audio_params.contains("192") {
        println!("✓ 音频参数生成正常");
    } else {
        println!("✗ 音频参数生成异常: {}", audio_params);
    }

    println!("\n🎉 所有核心功能验证通过！");
    println!("内置配置系统正常工作。");

    Ok(())
}
