"""Marketplace plugin — browse, search, verify, and install plugins from the marketplace.""" from __future__ import annotations import logging from app.plugins.base import BasePlugin from app.plugins.manifest import PluginManifest, PluginRouteDef logger = logging.getLogger(__name__) class MarketplacePlugin(BasePlugin): """Marketplace plugin for browsing, searching, verifying, and installing plugins.""" manifest = PluginManifest( name="marketplace", version="1.0.0", display_name="Plugin Marketplace", description="Browse, search, verify, and install plugins from the marketplace.", dependencies=[], routes=[ PluginRouteDef( path="/api/v1/marketplace", module="app.plugins.builtins.marketplace.routes", router_attr="router", ), ], events=[], migrations=["0001_initial.sql"], permissions=["marketplace:read", "marketplace:admin"], menu_items=[], page_routes=[], settings_pages=[], detail_tabs=[], author="LeoCRM", min_app_version="1.0.0", hooks=[], contract_version="1.0.0", ) async def on_activate( self, db, service_container, event_bus ) -> None: """Activate marketplace plugin.""" await super().on_activate(db, service_container, event_bus) logger.info("Marketplace plugin activated") async def on_deactivate( self, db, service_container, event_bus ) -> None: """Deactivate marketplace plugin.""" await super().on_deactivate(db, service_container, event_bus) logger.info("Marketplace plugin deactivated")