from simorgh.apps.modules.registry import CapabilitySpec, FeatureSpec, ModuleManifest, register_module

register_module(
    ModuleManifest(
        name="storage",
        version=1,
        domain="platform",
        label_key="storage.module_label",
        description="Storage — abstracted file storage with virus scanning and processing pipelines",
        capabilities=(
            CapabilitySpec(slug="files", label_key="storage.capabilities.files",
                          description="File storage and management", icon="hard-drive"),
        ),
        features=(
            FeatureSpec(code="files.file_upload", label_key="storage.features.file_upload", scope="tenant", default_enabled=True, is_platform_internal=True, description="Upload files with chunked/resumable support"),
            FeatureSpec(code="files.virus_scanning", label_key="storage.features.virus_scanning", scope="tenant", default_enabled=True, is_platform_internal=True, description="Antivirus scanning pipeline for uploaded files"),
            FeatureSpec(code="files.file_processing", label_key="storage.features.file_processing", scope="tenant", description="Thumbnail generation, OCR, and format conversion"),
            FeatureSpec(code="files.upload_sessions", label_key="storage.features.upload_sessions", scope="tenant", default_enabled=True, is_platform_internal=True, description="Large file upload sessions with progress tracking"),
        ),
    )
)
