"""Registro de permisos base del núcleo (core).

``PermissionService.sync_permissions`` y ``bootstrap_super_admin`` importan este
módulo por su efecto secundario: dar de alta en el ``PermissionRegistry`` los
permisos transversales del sistema antes de sincronizarlos a la base de datos.
Los permisos de cada dominio (crm, ops, fin) se registran en el
``register_permissions()`` de su propio módulo al importar sus routers.
"""

from .registry import registry

MODULE = "core"


def register_core_permissions() -> None:
    """Da de alta los permisos base del sistema (idempotente)."""
    registry.register(code="core.access", description="Acceso al sistema", module=MODULE, action="access")
    registry.register(code="core.admin", description="Administración del sistema", module=MODULE, action="admin")
    registry.register(
        code="core.permissions.manage",
        description="Gestionar roles y permisos",
        module=MODULE,
        action="manage",
    )


register_core_permissions()
