from datetime import datetime from typing import Optional from uuid import UUID from pydantic import BaseModel, Field class InviteCodeCreate(BaseModel): """Schema for creating a new invite code.""" expires_at: Optional[datetime] = Field(None, description="Optional expiration time") note: Optional[str] = Field(None, max_length=255, description="Note about who this code is for") class InviteCodeResponse(BaseModel): """Schema for invite code response.""" id: UUID code: str created_by_id: UUID used_by_id: Optional[UUID] = None expires_at: Optional[datetime] = None note: Optional[str] = None created_at: datetime used_at: Optional[datetime] = None is_used: bool is_expired: bool is_valid: bool class Config: from_attributes = True class InviteCodeValidation(BaseModel): """Schema for invite code validation response.""" valid: bool message: str