"""Composition builder method for DeviceFrame component."""

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from chuk_motion.generator.composition_builder import CompositionBuilder


def add_to_composition(
    builder: "CompositionBuilder",
    start_time: float,
    duration: float,
    device: str = "phone",
    content: str = "",
    orientation: str = "portrait",
    scale: float = 1.0,
    glare: bool = True,
    shadow: bool = True,
    position: str = "center",
) -> "CompositionBuilder":
    """Add a DeviceFrame component to the composition.

    Args:
        builder: The composition builder instance
        start_time: Start time in seconds
        duration: Duration in seconds
        device: Type of device frame (phone, tablet, laptop)
        content: Content to display inside the device
        orientation: Device orientation (portrait, landscape)
        scale: Auto-scale factor (0.1 to 2.0)
        glare: Enable realistic screen glare effect
        shadow: Enable device shadow
        position: Position of device on screen

    Returns:
        The builder instance for method chaining
    """
    from chuk_motion.generator.composition_builder import ComponentInstance

    # Convert time to frames
    start_frame = builder.seconds_to_frames(start_time)
    duration_frames = builder.seconds_to_frames(duration)

    component = ComponentInstance(
        component_type="DeviceFrame",
        start_frame=start_frame,
        duration_frames=duration_frames,
        props={
            "device": device,
            "content": content,
            "orientation": orientation,
            "scale": scale,
            "glare": glare,
            "shadow": shadow,
            "position": position,
            "start_time": start_time,
            "duration": duration,
        },
        layer=5,
    )
    builder.components.append(component)
    return builder
