from pydantic import BaseModel from typing import Optional, List from datetime import datetime class PermissionResponse(BaseModel): id: int resource: str action: str description: Optional[str] = None class Config: from_attributes = True class RoleSummary(BaseModel): id: int name: str is_system: bool class Config: from_attributes = True class RoleResponse(BaseModel): id: int name: str description: Optional[str] = None is_system: bool permissions: List[PermissionResponse] user_count: int created_at: datetime updated_at: datetime class Config: from_attributes = True class RoleCreate(BaseModel): name: str description: Optional[str] = None permission_ids: List[int] = [] class RoleUpdate(BaseModel): name: Optional[str] = None description: Optional[str] = None permission_ids: Optional[List[int]] = None class UserRolesUpdate(BaseModel): role_ids: List[int]