""" Permissions models. """ from pydantic import BaseModel, Field from . import enums, typings class UserPermissions(BaseModel): """Model representing individual user permissions.""" view_permissions: enums.ViewUserPermissions = Field( ..., description="Permission to view user permissions." ) scopes: dict[enums.PermissionScope, enums.PermissionLevel] = Field( ..., description="List of scopes the user has access to, " "and their levels of access.", ) features: list[enums.PermissionFeature] = Field( ..., description="List of feature names the user has access to." ) class PermissionsMetadata(BaseModel): """Model representing metadata about the permissions system, for the frontend.""" scope_level_priorities: typings.ScopeLevelPriorities = Field( ..., description="A dictionary of scope levels with their priorities. " "Higher values indicate higher priority.", )