sendio/backend/app/schemas/contact.py
2026-01-13 05:17:57 +02:00

57 lines
1.2 KiB
Python

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