import pickle
import os

LABEL_ENCODER_PATH = "app/models/label_encoders.pkl"
SCALER_PATH = "app/models/scaler.pkl"
MODEL_PATH = "app/models/catboost_model.pkl"

# Load label encoders
try:
    with open(LABEL_ENCODER_PATH, "rb") as f:
        loaded_label_encoders = pickle.load(f)

    le_province = loaded_label_encoders["Province"]
    le_district = loaded_label_encoders["District"]
    le_case_contact = loaded_label_encoders["Case_or_Contact"]
    le_specimen_condition = loaded_label_encoders["Specimen_condition_on_receipt"]
    le_sore_throat = loaded_label_encoders["Sore Throat"]
    le_fatigue = loaded_label_encoders["Fatigue"]
    le_limb_discomfort = loaded_label_encoders["Limb Discomfort"]
    le_cell_culture_result = loaded_label_encoders["Final_cell_culture_result"]

except Exception as e:
    print("Error loading encoders:", e)
    loaded_label_encoders = None

# Load scaler
try:
    with open(SCALER_PATH, "rb") as f:
        loaded_scaler = pickle.load(f)
except Exception as e:
    print("Error loading scaler:", e)
    loaded_scaler = None

# Load CatBoost model
try:
    with open(MODEL_PATH, "rb") as f:
        loaded_catboost_model = pickle.load(f)
except Exception as e:
    print("Error loading model:", e)
    loaded_catboost_model = None

# Decode output classes
class_names_readable = {i: cls for i, cls in enumerate(le_cell_culture_result.classes_)}
