from __future__ import annotations

from .resolver import (
    admin_assign_role,
    admin_bulk_assign_role,
    admin_bulk_revoke_role,
    admin_create_permission,
    admin_create_role,
    admin_delete_permission,
    admin_delete_role,
    admin_entities,
    admin_permissions,
    admin_purge_role,
    admin_revoke_role,
    admin_role,
    admin_role_assignments,
    admin_roles,
    admin_update_permission,
    admin_update_role,
    my_roles,
    rbac_scope_entity_combinations,
)
from .types import (
    AssignRoleInput,
    BulkAssignRoleInputGQL,
    BulkAssignRolePayloadGQL,
    BulkRevokeRoleInputGQL,
    BulkRevokeRolePayloadGQL,
    CreatePermissionInput,
    CreateRoleInput,
    EntityConnection,
    EntityFilter,
    EntityOrderBy,
    EntityRefGQL,
    OperationTypeGQL,
    PermissionConnection,
    PermissionFilter,
    PermissionGQL,
    PermissionOrderBy,
    RBACElementTypeGQL,
    RevokeRoleInput,
    RoleAssignmentConnection,
    RoleAssignmentFilter,
    RoleAssignmentGQL,
    RoleConnection,
    RoleFilter,
    RoleGQL,
    RoleOrderBy,
    RoleSourceGQL,
    RoleStatusGQL,
    ScopeEntityCombinationGQL,
    UpdatePermissionInput,
    UpdateRoleInput,
)

__all__ = (
    # Enums
    "RBACElementTypeGQL",
    "OperationTypeGQL",
    "RoleSourceGQL",
    "RoleStatusGQL",
    # Types
    "RoleGQL",
    "PermissionGQL",
    "RoleAssignmentGQL",
    "EntityRefGQL",
    "ScopeEntityCombinationGQL",
    # Filters
    "RoleFilter",
    "PermissionFilter",
    "RoleAssignmentFilter",
    "EntityFilter",
    # OrderBy
    "RoleOrderBy",
    "PermissionOrderBy",
    "EntityOrderBy",
    # Inputs
    "CreateRoleInput",
    "UpdateRoleInput",
    "CreatePermissionInput",
    "UpdatePermissionInput",
    "AssignRoleInput",
    "RevokeRoleInput",
    "BulkAssignRoleInputGQL",
    "BulkRevokeRoleInputGQL",
    # Payloads
    "BulkAssignRolePayloadGQL",
    "BulkRevokeRolePayloadGQL",
    # Connections
    "RoleConnection",
    "PermissionConnection",
    "RoleAssignmentConnection",
    "EntityConnection",
    # Query resolvers
    "admin_role",
    "admin_roles",
    "admin_permissions",
    "admin_role_assignments",
    "admin_entities",
    "my_roles",
    "rbac_scope_entity_combinations",
    # Mutation resolvers
    "admin_create_role",
    "admin_update_role",
    "admin_delete_role",
    "admin_purge_role",
    "admin_create_permission",
    "admin_update_permission",
    "admin_delete_permission",
    "admin_assign_role",
    "admin_revoke_role",
    "admin_bulk_assign_role",
    "admin_bulk_revoke_role",
)
