from __future__ import annotations from govoplan_admin.backend.db import models as admin_models # noqa: F401 - populate Admin ORM metadata from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER from govoplan_core.core.module_guards import persistent_table_uninstall_guard from govoplan_core.core.modules import MigrationSpec, ModuleContext, ModuleManifest from govoplan_core.db.base import Base def _route_factory(context: ModuleContext): del context from govoplan_admin.backend.api.v1.routes import router return router manifest = ModuleManifest( id="admin", name="Admin", version="0.1.6", required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), route_factory=_route_factory, migration_spec=MigrationSpec(module_id="admin", metadata=Base.metadata), uninstall_guard_providers=( persistent_table_uninstall_guard( admin_models.GovernanceTemplate, admin_models.GovernanceTemplateAssignment, label="Admin", ), ), ) def get_manifest() -> ModuleManifest: return manifest