from pydantic import BaseModel from datetime import datetime from typing import Optional, List class CampaignCreate(BaseModel): name: str template_id: int list_id: int scheduled_at: Optional[datetime] = None class CampaignUpdate(BaseModel): name: Optional[str] = None status: Optional[str] = None class CampaignResponse(BaseModel): id: int name: str template_id: Optional[int] list_id: Optional[int] status: str scheduled_at: Optional[datetime] created_at: datetime class Config: from_attributes = True class RecipientResponse(BaseModel): id: int campaign_id: int contact_id: int status: str provider_message_id: Optional[str] last_error: Optional[str] updated_at: datetime contact_phone: Optional[str] = None contact_name: Optional[str] = None class Config: from_attributes = True class CampaignPreview(BaseModel): total_recipients: int opted_in_count: int dnd_count: int eligible_count: int sample_contacts: List[dict]