26 lines
537 B
Python
Raw Normal View History

"""
User schemas for request/response validation.
"""
from datetime import datetime
from pydantic import BaseModel, EmailStr
class UserBase(BaseModel):
username: str
class UserCreate(UserBase):
"""Input schema — strict EmailStr validation for user-supplied email."""
email: EmailStr
password: str
class UserResponse(UserBase):
"""Response schema — email is serialised as-is from DB (no re-validation)."""
id: int
email: str
created_at: datetime
class Config:
from_attributes = True