import uuid from pydantic import BaseModel, Field, validator from typing import Optional from datetime import datetime import email_validator class ContactFormBase(BaseModel): name: str = Field(..., description="Contact name") email: str = Field(..., description="Contact email address") message: str = Field(..., description="Contact message") @validator('email') def validate_email(cls, value): if not email_validator.validate_email(value): raise ValueError('Invalid email address') return value class ContactFormCreate(ContactFormBase): pass class ContactFormUpdate(ContactFormBase): name: Optional[str] = Field(None, description="Contact name") email: Optional[str] = Field(None, description="Contact email address") message: Optional[str] = Field(None, description="Contact message") class ContactFormSchema(ContactFormBase): id: uuid.UUID created_at: datetime updated_at: datetime class Config: orm_mode = True