"""Registro de permisos del módulo Facturación (fin)."""

from api.v1.modules.core.permissions.registry import registry

MODULE = "fin"
_ENTITIES = [("invoice", "facturas"), ("payment", "pagos"), ("concept", "conceptos")]
_ACTIONS = [("view", "Ver"), ("create", "Crear"), ("edit", "Editar"), ("delete", "Eliminar")]


def register_permissions() -> None:
    registry.register(code=f"{MODULE}.access", description="Acceso a Facturación", module=MODULE, action="access")
    for entity, label in _ENTITIES:
        for action, verb in _ACTIONS:
            registry.register(code=f"{MODULE}.{entity}.{action}", description=f"{verb} {label}", module=MODULE, action=action)
    # Datos fiscales del emisor: es configuración de la empresa, no una entidad con CRUD,
    # así que solo tiene ver/editar. Los catálogos del SAT no llevan permiso propio:
    # son globales y de solo lectura, basta con fin.access.
    registry.register(code=f"{MODULE}.settings.view", description="Ver datos fiscales del emisor", module=MODULE, action="view")
    registry.register(code=f"{MODULE}.settings.edit", description="Editar datos fiscales del emisor", module=MODULE, action="edit")


register_permissions()
