# import json # with open("static/files/origin-codes.json", "r", encoding="utf-8") as file: # origin_codes = json.load(file) # def get_origin_id_and_code(origin: str): # for x in origin_codes: # if x and x.get("name"): # if origin == x["name"]: # id = x["id"], # code = x["code"] # id = id[0] if isinstance(id, tuple) else id # return id, code # return None, None import json import os from typing import Optional, Tuple 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): return [] def get_origin_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") return None, None