from __future__ import annotations

from ..spec_models import SolutionSpec
from .icon_utils import encode_workspace_icon


def compile_package(spec: SolutionSpec) -> dict | None:
    if not spec.preferences.create_package or not spec.package.enabled:
        return None
    return {
        "tagName": spec.package.name or spec.solution_name,
        "tagIcon": encode_workspace_icon(
            icon=spec.package.icon,
            color=spec.package.color,
            title=spec.package.name or spec.solution_name,
            fallback_icon_name="files-folder",
        ),
        "ordinal": spec.package.ordinal,
    }
