#!/usr/bin/env python3
"""Run transcription diagnostics for every pipeline_enabled BID."""
from __future__ import annotations

import subprocess
import sys

BASE_DIR = __file__.rsplit("/", 1)[0] if "/" in __file__ else "."
sys.path.insert(0, BASE_DIR)

from config import Config
from db_handler import DatabaseHandler


class ConfigWrapper:
    def __init__(self, cfg):
        self._cfg = cfg

    def get(self, key, default=None):
        return getattr(self._cfg, key, default)


def main() -> None:
    db = DatabaseHandler(ConfigWrapper(Config()))
    db.ensure_business_pipeline_config_table()
    bids = db.get_enabled_pipeline_bids()
    if not bids:
        print("No pipeline_enabled BIDs found.")
        sys.exit(1)
    print(f"Pipeline-enabled BIDs: {', '.join(bids)}\n")
    failed = False
    for bid in bids:
        rc = subprocess.call(
            [sys.executable, "diagnose_transcription.py", "--bid", str(bid)],
            cwd=BASE_DIR,
        )
        if rc != 0:
            failed = True
    sys.exit(1 if failed else 0)


if __name__ == "__main__":
    main()
