from simorgh.apps.modules.registry import (
    CapabilitySpec,
    CapabilitySpec,
    FeatureFlagSpec,
    FeatureSpec,
    ModuleManifest,
    register_module,
)

register_module(
    ModuleManifest(
        name="chat",
        version=1,
        domain="business",
        label_key="chat.module_label",
        description="Chat — direct messaging with attachment support",
        permissions=(),
        events=(),
        capabilities=(
            CapabilitySpec(slug="messaging", label_key="chat.capabilities.messaging",
                          description="Direct messaging and file sharing", icon="message-square"),
        ),
        features=(
            FeatureSpec(
                code="messaging.direct_messaging",
                label_key="chat.feature.direct_messaging",
                scope="tenant",
                default_enabled=True,
                description="One-to-one direct messaging between users",
            ),
            FeatureSpec(
                code="messaging.file_sharing",
                label_key="chat.feature.file_sharing",
                scope="tenant",
                default_enabled=True,
                description="Share files and images in conversations",
            ),
            FeatureSpec(
                code="messaging.message_search",
                label_key="chat.feature.message_search",
                scope="tenant",
                default_enabled=True,
                description="Search message history",
            ),
        ),
        feature_flags=(
            FeatureFlagSpec(
                name="allow_external_sharing",
                label_key="chat.ff.allow_external_sharing",
                default=False,
                scope="tenant",
            ),
        ),
    )
)
