"""Schemas for contact folder permissions (ACLs).""" from __future__ import annotations from pydantic import BaseModel, Field class FolderPermissionCreate(BaseModel): user_id: str | None = None group_id: str | None = None permission_level: str = Field("read", pattern="^(none|read|write|admin)$") inherit_to_subfolders: bool = True class FolderPermissionUpdate(BaseModel): permission_level: str = Field(..., pattern="^(none|read|write|admin)$") inherit_to_subfolders: bool | None = None class FolderPermissionResponse(BaseModel): id: str folder_id: str user_id: str | None = None group_id: str | None = None user_name: str | None = None group_name: str | None = None permission_level: str inherit_to_subfolders: bool created_at: str | None = None class FolderPermissionListResponse(BaseModel): items: list[FolderPermissionResponse] total: int class FolderAccessInfo(BaseModel): """Effective access level for the current user on a folder.""" folder_id: str access_level: str # none | read | write | admin | owner is_owner: bool is_shared: bool inherited_from: str | None = None # parent folder id if inherited