#!/usr/bin/env python3
"""Entry point — load config and run the middleware (with web admin UI).

Usage:
    python run.py --config config.json

The config file may be missing or incomplete — the admin UI starts regardless so
it can be filled in from the browser at http://<admin_host>:<admin_port>/.
"""

from __future__ import annotations

import argparse

from lis_middleware.app import Application
from lis_middleware.config import load_or_default
from lis_middleware.logging_setup import setup_logging


def main() -> int:
    parser = argparse.ArgumentParser(description="Moon ERP LIS Analyzer Middleware")
    parser.add_argument("--config", "-c", default="config.json", help="path to config JSON")
    args = parser.parse_args()

    config = load_or_default(args.config)
    setup_logging(config.log_level, config.log_file)
    Application(config, args.config).run()
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
