"""Structured logger helpers for the platform layer."""

from __future__ import annotations

import json
import logging
from pathlib import Path


def get_platform_logger(name: str = "platform") -> logging.Logger:
    """Return a logger writing JSON lines into ``logs/platform``."""
    logger = logging.getLogger(f"platform.{name}")
    if logger.handlers:
        return logger

    logger.setLevel(logging.INFO)
    log_dir = Path("/var/www/html/flask_server/logs/platform")
    log_dir.mkdir(parents=True, exist_ok=True)
    handler = logging.FileHandler(log_dir / f"{name}.log")
    handler.setFormatter(logging.Formatter("%(message)s"))
    logger.addHandler(handler)
    return logger


def log_structured(logger: logging.Logger, event: str, **fields) -> None:
    """Emit a structured JSON log entry."""
    payload = {"event": event, **fields}
    logger.info(json.dumps(payload, sort_keys=True, default=str))

