#!/usr/bin/env python3

from fdbk import __version__ as fdbk_version
from fdbk.utils import get_reporter_argparser
from fdbk_ruuvi_reporter import __version__ as fdbk_ruuvi_reporter_version
from fdbk_ruuvi_reporter.main import add_topic_id, create_topic, start_reporting, read_data_from_db, update_topics

parser = get_reporter_argparser()
parser.add_argument("--save-topic", nargs=2, type=str, metavar=("MAC", "TOPIC_ID",), help="Save topic id for mac")
parser.add_argument("--create-topic", nargs=2, type=str, metavar=("NAME", "MAC",), help="Create topic for name and mac")
parser.add_argument("--pull-topics", action="store_true", help="Pull topics data from DB")
parser.add_argument("--update-topics", action="store_true", help="Update topics in the DB to the latest version")
parser.add_argument("--version", action="store_true", help="Print package version")

args = parser.parse_args()

if args.version:
    print(f"fdbk {fdbk_version}")
    print(f"fdbk_ruuvi_reporter {fdbk_ruuvi_reporter_version}")
    exit()
if args.save_topic:
    add_topic_id(*args.save_topic)
elif args.create_topic:
    create_topic(args.db_connection, args.db_parameters, *args.create_topic)
elif args.pull_topics:
    read_data_from_db(args.db_connection, args.db_parameters)
elif args.update_topics:
    update_topics(args.db_connection, args.db_parameters)
else:
    start_reporting(db_plugin=args.db_connection, db_parameters=args.db_parameters, interval=args.interval, num_samples=args.num_samples, verbose=args.verbose)
