Files
ppr-ng/backend/app/schemas/contact_request.py
T
2026-06-21 17:45:31 -04:00

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"