#!/usr/bin/env python3
"""Test the full Image → Video pipeline with Google Flow + Veo."""
import logging
import sys
import os

sys.path.insert(0, os.path.dirname(__file__))

from dotenv import load_dotenv
load_dotenv()

logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")

from providers.google_flow_provider import GoogleFlowImageProvider
from providers.google_veo_provider import GoogleVeoVideoProvider

# Step 1: Generate image and get mediaId
print("=" * 60)
print("Step 1: Generating image with GoogleFlowImageProvider...")
print("=" * 60)

with GoogleFlowImageProvider() as img_provider:
    img_path, media_id = img_provider.generate_with_media_id(
        prompt="A cute orange cat sitting on a sunny windowsill, photorealistic, warm lighting",
        output_path="output/test_frame.png",
    )
    print(f"Image saved: {img_path}")
    print(f"Media ID: {media_id[:50]}...")

# Step 2: Generate video using the image as start frame
print("\n" + "=" * 60)
print("Step 2: Generating video with GoogleVeoVideoProvider...")
print("=" * 60)

with GoogleVeoVideoProvider() as veo:
    video_path = veo.generate(
        prompt="The cat slowly turns its head and blinks, cinematic movement",
        output_path="output/test_video.mp4",
        start_image_media_id=media_id,
    )
    print(f"\nVideo saved: {video_path} ({video_path.stat().st_size} bytes)")
