from __future__ import annotations

import argparse

from ..context import CliContext


def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
    parser = subparsers.add_parser("chart", help="报表访问")
    chart_subparsers = parser.add_subparsers(dest="chart_command", required=True)

    get_parser = chart_subparsers.add_parser("get", help="读取报表数据")
    get_parser.add_argument("--chart-id", required=True)
    get_parser.set_defaults(handler=_handle_get, format_hint="chart_get")


def _handle_get(args: argparse.Namespace, context: CliContext) -> dict:
    return context.resource.chart_get(profile=args.profile, chart_id=args.chart_id)
