"""Content Engine — module manifest."""

from __future__ import annotations

from simorgh.apps.modules.registry import CapabilitySpec, FeatureSpec, ModuleManifest, register_module

register_module(
    ModuleManifest(
        name="content",
        version=1,
        domain="platform",
        label_key="content.module_label",
        description="Knowledge & Content Engine — unified content management for all content types",
        permissions=(
            "content.category.view",
            "content.category.manage",
            "content.item.view",
            "content.item.create",
            "content.item.update",
            "content.item.publish",
            "content.item.delete",
            "content.version.view",
        ),
        events=(
            "content.category_created",
            "content.category_updated",
            "content.category_deleted",
            "content.item_created",
            "content.item_updated",
            "content.item_submitted_for_review",
            "content.item_approved",
            "content.item_published",
            "content.item_archived",
            "content.item_reverted_to_draft",
            "content.version_created",
        ),
        capabilities=(
            CapabilitySpec(slug="management", label_key="content.capabilities.management",
                          description="Content management and workflow", icon="file-text"),
            CapabilitySpec(slug="search", label_key="content.capabilities.search",
                          description="Search and discovery", icon="search"),
            CapabilitySpec(slug="ai", label_key="content.capabilities.ai",
                          description="AI-powered features", icon="sparkles"),
            CapabilitySpec(slug="portal", label_key="content.capabilities.portal",
                          description="Public portal", icon="globe"),
        ),
        features=(
            FeatureSpec(
                code="management.content_management",
                label_key="content.features.content_management",
                scope="tenant",
                default_enabled=True,
                is_always_on=True,
                is_platform_internal=True,
                description="Core content CRUD operations",
            ),
            FeatureSpec(
                code="management.content_workflow",
                label_key="content.features.content_workflow",
                scope="tenant",
                default_enabled=True,
                description="Draft→Review→Approve→Publish→Archive workflow",
            ),
            FeatureSpec(
                code="management.content_versioning",
                label_key="content.features.content_versioning",
                scope="tenant",
                default_enabled=True,
                description="Immutable version snapshots on publish",
            ),
            FeatureSpec(
                code="search.content_search",
                label_key="content.features.content_search",
                scope="tenant",
                default_enabled=True,
                description="Global and semantic search integration",
            ),
            FeatureSpec(
                code="ai.content_ai",
                label_key="content.features.content_ai",
                scope="tenant",
                description="AI content generation, summarization, and metadata enrichment",
            ),
            FeatureSpec(
                code="portal.content_public_portal",
                label_key="content.features.content_public_portal",
                scope="tenant",
                description="Public-facing content portal",
            ),
        ),
    )
)
