from datetime import datetime from typing import Optional from pydantic import BaseModel, EmailStr, Field # Shared properties class TeamMemberBase(BaseModel): name: Optional[str] = None position: Optional[str] = None bio: Optional[str] = None photo: Optional[str] = None email: Optional[EmailStr] = None linkedin: Optional[str] = None twitter: Optional[str] = None is_active: Optional[bool] = True order: Optional[int] = 0 # Properties to receive via API on creation class TeamMemberCreate(TeamMemberBase): name: str = Field(..., min_length=1, max_length=100) position: str = Field(..., min_length=1, max_length=100) # Properties to receive via API on update class TeamMemberUpdate(TeamMemberBase): pass class TeamMemberInDBBase(TeamMemberBase): id: int name: str position: str created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True # Additional properties to return via API class TeamMember(TeamMemberInDBBase): pass