mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 13:18:27 +00:00
54 lines
1.0 KiB
Python
54 lines
1.0 KiB
Python
from typing import List
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class SenderBase(BaseModel):
|
|
"""Base schema for a sender."""
|
|
|
|
email: str
|
|
|
|
|
|
class SenderCreate(SenderBase):
|
|
"""Schema for creating a new sender."""
|
|
|
|
pass
|
|
|
|
|
|
class Sender(SenderBase):
|
|
"""Schema for retrieving a sender with its ID and newsletter ID."""
|
|
|
|
id: int
|
|
newsletter_id: int
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class NewsletterBase(BaseModel):
|
|
"""Base schema for a newsletter."""
|
|
|
|
name: str
|
|
|
|
|
|
class NewsletterCreate(NewsletterBase):
|
|
"""Schema for creating a new newsletter."""
|
|
|
|
sender_emails: List[str]
|
|
|
|
|
|
class NewsletterUpdate(NewsletterBase):
|
|
"""Schema for updating an existing newsletter."""
|
|
|
|
sender_emails: List[str]
|
|
|
|
|
|
class Newsletter(NewsletterBase):
|
|
"""Schema for retrieving a newsletter with its ID, active status, senders, and entries count."""
|
|
|
|
id: int
|
|
is_active: bool
|
|
senders: List[Sender] = []
|
|
entries_count: int
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|