41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from enum import Enum
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, EmailStr, Field, validator
|
|
|
|
|
|
class ContactEnquiryType(str, Enum):
|
|
GENERAL = "general"
|
|
AVIATION_BUSINESS = "aviation_business"
|
|
PILOT = "pilot"
|
|
EVENTS = "events"
|
|
COMMUNITY = "community"
|
|
|
|
|
|
class ContactRequestCreate(BaseModel):
|
|
name: str = Field(..., max_length=128)
|
|
email: EmailStr
|
|
phone: Optional[str] = Field(None, max_length=32)
|
|
enquiry_type: ContactEnquiryType
|
|
subject: str = Field(..., max_length=160)
|
|
message: str = Field(..., min_length=1, max_length=4000)
|
|
source_page: Optional[str] = Field(None, max_length=256)
|
|
|
|
@validator("name", "subject", "message")
|
|
def validate_required_text(cls, value):
|
|
value = value.strip()
|
|
if not value:
|
|
raise ValueError("Field is required")
|
|
return value
|
|
|
|
@validator("phone", "source_page")
|
|
def strip_optional_text(cls, value):
|
|
if value is None:
|
|
return value
|
|
value = value.strip()
|
|
return value or None
|
|
|
|
|
|
class ContactRequestReceipt(BaseModel):
|
|
status: str = "received"
|