taolib.testing.email_service.models

目录

taolib.testing.email_service.models#

Email service data models.

Exports public model classes for email, template, tracking, and subscription management.

Submodules#

Classes#

EmailAttachment

Email attachment metadata.

EmailCreate

Email creation request.

EmailDocument

Email MongoDB document.

EmailRecipient

Email recipient with optional display name.

EmailResponse

Email API response.

BounceType

Bounce classification.

EmailPriority

Email sending priority.

EmailStatus

Email delivery status.

EmailType

Email category type.

ProviderType

Email service provider type.

TrackingEventType

Tracking event type for email analytics.

SubscriptionDocument

Subscription MongoDB document.

SubscriptionResponse

Subscription API response.

SubscriptionStatus

Subscription status.

TemplateCreate

Template creation request.

TemplateDocument

Template MongoDB document.

TemplateResponse

Template API response.

TemplateUpdate

Template update request (all fields optional).

TrackingEventDocument

Tracking event MongoDB document.

TrackingEventResponse

Tracking event API response.

Package Contents#

class taolib.testing.email_service.models.EmailAttachment#

Bases: pydantic.BaseModel

Email attachment metadata.

filename: str#
content_type: str#
content_base64: str#
class taolib.testing.email_service.models.EmailCreate#

Bases: EmailBase

Email creation request.

template_id: str | None#
template_variables: dict[str, str | int | float | bool | list | dict]#
html_body: str | None#
text_body: str | None#
attachments: list[EmailAttachment]#
schedule_at: datetime.datetime | None#
metadata: dict[str, str]#
class taolib.testing.email_service.models.EmailDocument#

Bases: EmailBase

Email MongoDB document.

id: str#
status: taolib.testing.email_service.models.enums.EmailStatus#
provider: str | None#
provider_message_id: str | None#
template_id: str | None#
html_body: str | None#
text_body: str | None#
attachments: list[EmailAttachment]#
retry_count: int#
max_retries: int#
error_message: str | None#
schedule_at: datetime.datetime | None#
sent_at: datetime.datetime | None#
delivered_at: datetime.datetime | None#
opened_at: datetime.datetime | None#
created_at: datetime.datetime#
updated_at: datetime.datetime#
created_by: str#
metadata: dict[str, str]#
model_config#
to_response() EmailResponse#

Convert to API response model.

class taolib.testing.email_service.models.EmailRecipient#

Bases: pydantic.BaseModel

Email recipient with optional display name.

email: str#
name: str | None#
class taolib.testing.email_service.models.EmailResponse#

Bases: EmailBase

Email API response.

id: str#
status: taolib.testing.email_service.models.enums.EmailStatus#
provider: str | None#
provider_message_id: str | None#
template_id: str | None#
html_body: str | None#
text_body: str | None#
retry_count: int#
error_message: str | None#
sent_at: datetime.datetime | None#
delivered_at: datetime.datetime | None#
opened_at: datetime.datetime | None#
created_at: datetime.datetime#
updated_at: datetime.datetime#
metadata: dict[str, str]#
model_config#
class taolib.testing.email_service.models.BounceType#

Bases: enum.StrEnum

Bounce classification.

HARD = 'hard'#
SOFT = 'soft'#
UNDETERMINED = 'undetermined'#
class taolib.testing.email_service.models.EmailPriority#

Bases: enum.StrEnum

Email sending priority.

HIGH = 'high'#
NORMAL = 'normal'#
LOW = 'low'#
class taolib.testing.email_service.models.EmailStatus#

Bases: enum.StrEnum

Email delivery status.

QUEUED = 'queued'#
SENDING = 'sending'#
SENT = 'sent'#
DELIVERED = 'delivered'#
OPENED = 'opened'#
CLICKED = 'clicked'#
BOUNCED = 'bounced'#
FAILED = 'failed'#
REJECTED = 'rejected'#
class taolib.testing.email_service.models.EmailType#

Bases: enum.StrEnum

Email category type.

TRANSACTIONAL = 'transactional'#
MARKETING = 'marketing'#
class taolib.testing.email_service.models.ProviderType#

Bases: enum.StrEnum

Email service provider type.

SENDGRID = 'sendgrid'#
MAILGUN = 'mailgun'#
SES = 'ses'#
SMTP = 'smtp'#
class taolib.testing.email_service.models.TrackingEventType#

Bases: enum.StrEnum

Tracking event type for email analytics.

SENT = 'sent'#
DELIVERED = 'delivered'#
OPENED = 'opened'#
CLICKED = 'clicked'#
BOUNCED = 'bounced'#
COMPLAINED = 'complained'#
UNSUBSCRIBED = 'unsubscribed'#
class taolib.testing.email_service.models.SubscriptionDocument#

Bases: pydantic.BaseModel

Subscription MongoDB document.

Tracks whether a recipient has unsubscribed from marketing emails.

id: str#
email: str#
status: taolib.testing.email_service.models.enums.SubscriptionStatus#
unsubscribe_reason: str | None#
unsubscribe_token: str#
tags: list[str]#
subscribed_at: datetime.datetime#
unsubscribed_at: datetime.datetime | None#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
to_response() SubscriptionResponse#

Convert to API response model.

class taolib.testing.email_service.models.SubscriptionResponse#

Bases: pydantic.BaseModel

Subscription API response.

id: str#
email: str#
status: taolib.testing.email_service.models.enums.SubscriptionStatus#
unsubscribe_reason: str | None = None#
tags: list[str]#
subscribed_at: datetime.datetime#
unsubscribed_at: datetime.datetime | None = None#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
class taolib.testing.email_service.models.SubscriptionStatus#

Bases: enum.StrEnum

Subscription status.

ACTIVE = 'active'#
UNSUBSCRIBED = 'unsubscribed'#
class taolib.testing.email_service.models.TemplateCreate#

Bases: TemplateBase

Template creation request.

class taolib.testing.email_service.models.TemplateDocument#

Bases: TemplateBase

Template MongoDB document.

id: str#
is_active: bool#
version: int#
created_at: datetime.datetime#
updated_at: datetime.datetime#
created_by: str#
model_config#
to_response() TemplateResponse#

Convert to API response model.

class taolib.testing.email_service.models.TemplateResponse#

Bases: TemplateBase

Template API response.

id: str#
is_active: bool#
version: int#
created_at: datetime.datetime#
updated_at: datetime.datetime#
model_config#
class taolib.testing.email_service.models.TemplateUpdate#

Bases: pydantic.BaseModel

Template update request (all fields optional).

name: str | None = None#
description: str | None = None#
subject_template: str | None = None#
html_template: str | None = None#
text_template: str | None = None#
email_type: taolib.testing.email_service.models.enums.EmailType | None = None#
variables_schema: dict[str, str] | None = None#
tags: list[str] | None = None#
is_active: bool | None = None#
class taolib.testing.email_service.models.TrackingEventDocument#

Bases: TrackingEventBase

Tracking event MongoDB document.

id: str#
provider: str | None#
ip_address: str | None#
user_agent: str | None#
click_url: str | None#
bounce_type: taolib.testing.email_service.models.enums.BounceType | None#
bounce_reason: str | None#
raw_payload: dict | None#
created_at: datetime.datetime#
model_config#
to_response() TrackingEventResponse#

Convert to API response model.

class taolib.testing.email_service.models.TrackingEventResponse#

Bases: TrackingEventBase

Tracking event API response.

id: str#
provider: str | None#
ip_address: str | None#
user_agent: str | None#
click_url: str | None#
bounce_type: taolib.testing.email_service.models.enums.BounceType | None#
bounce_reason: str | None#
created_at: datetime.datetime#
model_config#