"""CLI wrapper para el orquestador principal."""
from __future__ import annotations

import argparse
from whisper_project.logging_config import configure_logging
import logging
from whisper_project.usecases.orchestrator import Orchestrator


def main():
    p = argparse.ArgumentParser(prog="orchestrator", description="Orquestador multimedia: transcribe -> tts -> burn")
    p.add_argument("src_video", help="Vídeo de entrada")
    p.add_argument("out_dir", help="Directorio de salida")
    p.add_argument("--dry-run", action="store_true", dest="dry_run", help="No ejecutar pasos que cambien archivos")
    p.add_argument("--translate", action="store_true", help="Traducir SRT antes de TTS (experimental)")
    p.add_argument("--tts-model", default="kokoro", help="Modelo TTS a usar (por defecto: kokoro)")
    p.add_argument("--verbose", action="store_true", help="Mostrar logs detallados")
    args = p.parse_args()

    # configurar logging (archivos y consola)
    configure_logging(args.verbose)

    orb = Orchestrator(dry_run=args.dry_run, tts_model=args.tts_model, verbose=args.verbose)
    res = orb.run(args.src_video, args.out_dir, translate=args.translate)
    if args.verbose:
        logging.getLogger(__name__).debug(res)


if __name__ == "__main__":
    main()
