project-three-6eu16p/schemas/contact_form.py

32 lines
1010 B
Python

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