from beanie import Document from datetime import datetime from typing import Optional class PermissionDoc(Document): permission_name: str permission_key: str description: Optional[str] = None # Description of the permission, optional created_at: datetime = datetime.now() # Creation timestamp, auto-generated updated_at: datetime = datetime.now() # Last update timestamp, auto-updated class Settings: # Default collections created by Freeleaps for tenant databases use '_' prefix # to prevent naming conflicts with tenant-created collections name = "_permission" indexes = [ "permission_key" ] class RoleDoc(Document): role_key: str role_name: str role_description: Optional[str] = None permission_ids: list[str] role_level: int created_at: datetime = datetime.now() # Creation timestamp, auto-generated updated_at: datetime = datetime.now() # Last update timestamp, auto-updated class Settings: # Default collections created by Freeleaps for tenant databases use '_' prefix # to prevent naming conflicts with tenant-created collections name = "_role" indexes = [ "role_level" ]