#!/usr/bin/env python3
"""Silicon Overdrive CI tokens and logo data URIs for report templates."""
from __future__ import annotations

import base64
import mimetypes
from pathlib import Path

# Primary CI colours (Silicon Overdrive CI Guidelines V1.3)
SO_BLUE = "#0089D6"
SO_NAVY = "#002A41"
SO_BLACK = "#000000"
SO_LIGHT = "#EDEDED"
SO_SKY = "#31B0F5"
SO_WHITE = "#FFFFFF"

LOGO_DARK = "logo-dark.png"
LOGO_WHITE = "logo-white.png"


def reports_assets_dir(reports_dir: Path) -> Path:
    return reports_dir / "assets"


def _file_data_uri(path: Path) -> str:
    if not path.is_file():
        return ""
    mime = mimetypes.guess_type(path.name)[0] or "application/octet-stream"
    b64 = base64.standard_b64encode(path.read_bytes()).decode("ascii")
    return f"data:{mime};base64,{b64}"


def report_logo_context(reports_dir: Path) -> dict[str, str]:
    """Inline logo URIs for email/PDF (portable; no external hosting required)."""
    assets = reports_assets_dir(reports_dir)
    dark = _file_data_uri(assets / LOGO_DARK)
    white = _file_data_uri(assets / LOGO_WHITE)
    return {
        "logo_dark_src": dark,
        "logo_white_src": white,
        "brand_blue": SO_BLUE,
        "brand_navy": SO_NAVY,
        "brand_black": SO_BLACK,
        "brand_light": SO_LIGHT,
        "brand_sky": SO_SKY,
        "brand_white": SO_WHITE,
    }
