from __future__ import annotations

import argparse
import logging
from pathlib import Path

from src.exif.exif import read_exif
from src.logging_setup import log_event

logger = logging.getLogger(__name__)


def register(sub: argparse._SubParsersAction) -> None:
    exif = sub.add_parser("exif", help="Read EXIF datetime and GPS from an image.")
    exif.add_argument("--path", required=True, help="Image file path.")
    exif.set_defaults(_handler=_run)


def _run(args: argparse.Namespace) -> int:
    log_event(logger, "command.start", command="exif")
    result = read_exif(Path(args.path))
    print(result.to_json())
    log_event(logger, "command.complete", command="exif")
    return 0
