import json import logging import os from typing import Optional, Tuple logger = logging.getLogger(__name__) ORIGIN_CODES_PATH = "static/files/origin-codes.json" def load_origin_codes() -> list[dict]: try: with open(ORIGIN_CODES_PATH, "r", encoding="utf-8") as file: return json.load(file) except (FileNotFoundError, json.JSONDecodeError): logger.error(f"Error loading origin codes from {ORIGIN_CODES_PATH}") return [] def get_city_id_and_code(origin_name: str) -> Tuple[Optional[int], Optional[str]]: """ Truy xuất province_id và province_code từ file JSON tĩnh theo tên tỉnh/thành phố. Args: origin_name (str): Tên thành phố gốc Returns: Tuple[province_id, province_code] hoặc (None, None) nếu không tìm thấy """ origin_name = origin_name.strip().lower() for entry in load_origin_codes(): name = entry.get("name", "").lower() if name == origin_name: return entry.get("id"), entry.get("code") logger.warning(f"ID and Code not found for name: {origin_name}") return None, None