from __future__ import annotations

import argparse
import logging

from src.config.config_show import build_human_config_report
from src.logging_setup import log_event

logger = logging.getLogger(__name__)


def register(sub: argparse._SubParsersAction) -> None:
    cfg = sub.add_parser("config", help="Configuration helpers (env + optional config file).")
    cfg_sub = cfg.add_subparsers(dest="config_cmd", required=True)

    show = cfg_sub.add_parser("show", help="Show config status (does not print secrets).")
    show.set_defaults(_handler=_run_show)


def _run_show(_args: argparse.Namespace) -> int:
    log_event(logger, "command.start", command="config.show")
    print(build_human_config_report())
    log_event(logger, "command.complete", command="config.show")
    return 0
