from __future__ import annotations

import logging
import sys
from pathlib import Path


def setup_logging(log_dir: Path) -> logging.Logger:
    logger = logging.getLogger("import_situations")
    logger.setLevel(logging.DEBUG)
    logger.handlers.clear()

    detailed_log_path = log_dir / "import_situations_api.log"
    detailed_handler = logging.FileHandler(detailed_log_path, mode="w", encoding="utf-8")
    detailed_handler.setLevel(logging.DEBUG)
    detailed_handler.setFormatter(logging.Formatter(
        "%(asctime)s [%(levelname)s] %(name)s - %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    ))
    logger.addHandler(detailed_handler)

    essential_log_path = log_dir / "intecmar.log"
    essential_handler = logging.FileHandler(essential_log_path, mode="a", encoding="utf-8")
    essential_handler.setLevel(logging.WARNING)
    essential_handler.setFormatter(logging.Formatter(
        "%(asctime)s [%(levelname)s] %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    ))
    logger.addHandler(essential_handler)

    console_handler = logging.StreamHandler(sys.stdout)
    console_handler.setLevel(logging.INFO)
    console_handler.setFormatter(logging.Formatter(
        "%(asctime)s [%(levelname)s] %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    ))
    logger.addHandler(console_handler)
    return logger
