"""Workspace schemas for VoIdea API.""" from datetime import datetime from typing import Optional from pydantic import BaseModel, Field class WorkspaceCreate(BaseModel): name: str = Field(min_length=1, max_length=255) type: str = Field(default="team", pattern="^(personal|team)$") class WorkspaceUpdate(BaseModel): name: Optional[str] = Field(None, min_length=1, max_length=255) description: Optional[str] = None class WorkspaceResponse(BaseModel): id: str name: str type: str owner_id: str description: Optional[str] = None member_count: int = 0 created_at: datetime updated_at: datetime class AddMemberRequest(BaseModel): user_id: str role: str = Field(default="member", pattern="^(admin|member)$") class MemberResponse(BaseModel): id: str user_id: str workspace_id: str role: str email: str = "" display_name: str = "" joined_at: datetime