"""Normalize legacy location availability codes onto canonical master location registry codes."""

from __future__ import annotations

import argparse
import json
import sys

from db.location_availability_normalize import normalize_location_availability_codes
from db.session import get_session


def main() -> int:
    parser = argparse.ArgumentParser(description="Normalize master product location availability codes")
    parser.add_argument("--apply", action="store_true", help="Write changes")
    args = parser.parse_args()

    with get_session() as session:
        result = normalize_location_availability_codes(session, dry_run=not args.apply)
        if args.apply:
            session.commit()
    print(json.dumps(result, indent=2, default=str))
    return 0


if __name__ == "__main__":
    sys.exit(main())
