from pydantic import BaseModel from datetime import datetime from typing import Optional, List class ContactBase(BaseModel): phone_e164: str first_name: Optional[str] = None last_name: Optional[str] = None email: Optional[str] = None opted_in: bool = False conversation_window_open: bool = False class ContactCreate(ContactBase): pass class ContactUpdate(BaseModel): first_name: Optional[str] = None last_name: Optional[str] = None email: Optional[str] = None opted_in: Optional[bool] = None conversation_window_open: Optional[bool] = None class ContactResponse(ContactBase): id: int user_id: int source: Optional[str] = None created_at: datetime updated_at: datetime tags: List[str] = [] class Config: from_attributes = True class ContactTagCreate(BaseModel): name: str class ContactTagResponse(BaseModel): id: int name: str created_at: datetime class Config: from_attributes = True class DNDCreate(BaseModel): phone_e164: str reason: Optional[str] = None class DNDResponse(BaseModel): id: int phone_e164: str reason: Optional[str] created_at: datetime class Config: from_attributes = True