from __future__ import annotations

import json
from pathlib import Path

from config import DATA_DIR

DEFAULT_EXCEL = Path(
    r"c:\Users\stess\Downloads\test-papa\Liste Copropriétaires et Occupants 05-06-2026.xlsx"
)
IMPORT_CONFIG_PATH = DATA_DIR / "import-config.json"
TEST_DB_PATH = DATA_DIR / "import-test.db"
PROD_DB_PATH = DATA_DIR / "copropriete.db"
BACKUPS_DIR = DATA_DIR / "backups"
REPORTS_DIR = DATA_DIR / "import-reports"

SHEET_INFO = "Info propriétaires & occupants "
SHEET_SURFACES = "Surfaces Habitables"
SHEET_CAVES = "Affectation lot & cave "
SHEET_EAU_FROIDE = "Relevé Eau Froide"
SHEET_EAU_CHAUDE = "Relevé Eau chaude"

# Corrections n° lot copro (clé = n° lot syndic)
SYNDIC_LOT_COPRO_OVERRIDE: dict[str, str] = {
    "P042000": "42",
    "P004200": "4",
}

CONTEXT_ORDER = ("copropriete", "personnes", "lots", "roles", "autres")


def load_import_config(path: Path | None = None) -> dict:
    cfg_path = path or IMPORT_CONFIG_PATH
    if not cfg_path.is_file():
        return {"reponses": {}}
    return json.loads(cfg_path.read_text(encoding="utf-8"))


def config_value(config: dict, key: str, default: str = "") -> str:
    entry = config.get("reponses", {}).get(key, {})
    return (entry.get("valeur") or default).strip()


def copropriete_nom(config: dict) -> str:
    return config_value(config, "copropriete_nom", "Copro Lucas Championnière")


def copropriete_adresse(config: dict) -> str:
    return config_value(config, "copropriete_adresse", "")
