v4.0.0.1
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
"""Pydantic request/response models for the mail API."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, EmailStr
|
||||
|
||||
|
||||
class BaseSubmission(BaseModel):
|
||||
fullName: str
|
||||
email: EmailStr
|
||||
phone: str
|
||||
website: str = ""
|
||||
formStartedAt: int | None = None
|
||||
visitStartedAt: int | None = None
|
||||
pageEnteredAt: int | None = None
|
||||
firstInteractionAt: int | None = None
|
||||
sendClickedAt: int | None = None
|
||||
referrer: str = ""
|
||||
page: str = ""
|
||||
|
||||
|
||||
class BookingSubmission(BaseSubmission):
|
||||
enquiryType: str = "booking"
|
||||
petName: str = ""
|
||||
location: str = ""
|
||||
message: str = ""
|
||||
services: list[str] = []
|
||||
stepChanges: int = 0
|
||||
journey: list[str] = []
|
||||
|
||||
|
||||
class OnboardingSubmission(BaseSubmission):
|
||||
address: str
|
||||
dogName: str
|
||||
dogBreed: str
|
||||
dogAge: str = ""
|
||||
servicesNeeded: list[str] = []
|
||||
temperament: str = ""
|
||||
medicalNotes: str = ""
|
||||
accessInstructions: str = ""
|
||||
vetName: str
|
||||
vetPhone: str
|
||||
emergencyContactName: str
|
||||
emergencyContactPhone: str
|
||||
councilRegistrationConfirmed: bool = False
|
||||
vaccinationsConfirmed: bool = False
|
||||
emergencyVetConsent: bool = False
|
||||
termsAccepted: bool = False
|
||||
signatureDataUrl: str
|
||||
submissionSnapshot: dict[str, Any] = {}
|
||||
|
||||
|
||||
class WelcomePackEmailRequest(BaseModel):
|
||||
email: EmailStr
|
||||
serviceType: str
|
||||
priceDetails: str
|
||||
startDate: str
|
||||
preview: bool = False
|
||||
|
||||
|
||||
class BirthdayEmailRequest(BaseModel):
|
||||
email: EmailStr
|
||||
preview: bool = False
|
||||
|
||||
|
||||
class BirthdayAutoSendRequest(BaseModel):
|
||||
email: EmailStr
|
||||
enabled: bool
|
||||
|
||||
|
||||
class ContractSubmission(BaseSubmission):
|
||||
address: str
|
||||
dogName: str
|
||||
dogBreed: str
|
||||
dogAge: str = ""
|
||||
serviceType: str
|
||||
startDate: str
|
||||
walkFrequency: str = ""
|
||||
additionalNotes: str = ""
|
||||
agreeServiceTerms: bool = False
|
||||
agreeCancellation: bool = False
|
||||
agreePayment: bool = False
|
||||
agreeEmergency: bool = False
|
||||
agreeLiability: bool = False
|
||||
agreeAccuracy: bool = False
|
||||
signatureDataUrl: str
|
||||
|
||||
|
||||
class RenderMessageRequest(BaseModel):
|
||||
templateId: str
|
||||
heading: str = ""
|
||||
body: str = ""
|
||||
ctaLabel: str = ""
|
||||
ctaUrl: str = ""
|
||||
subHeading: str = ""
|
||||
highlightText: str = ""
|
||||
signOff: str = ""
|
||||
footerNote: str = ""
|
||||
fontId: str = "system"
|
||||
|
||||
|
||||
class SendMessageRequest(BaseModel):
|
||||
templateId: str
|
||||
subject: str
|
||||
heading: str = ""
|
||||
body: str = ""
|
||||
ctaLabel: str = ""
|
||||
ctaUrl: str = ""
|
||||
subHeading: str = ""
|
||||
highlightText: str = ""
|
||||
signOff: str = ""
|
||||
footerNote: str = ""
|
||||
fontId: str = "system"
|
||||
recipients: list[EmailStr] = []
|
||||
preview: bool = False
|
||||
Reference in New Issue
Block a user