2026-01-26 09:50:55 +08:00

60 lines
1.3 KiB
Python

# app/schemas/user.py
from pydantic import BaseModel, EmailStr
from datetime import datetime
from typing import Optional
class UserBase(BaseModel):
username: str
email: EmailStr
class UserCreate(UserBase):
password: str
class UserUpdate(BaseModel):
username: Optional[str] = None
email: Optional[EmailStr] = None
password: Optional[str] = None
class UserInDB(UserBase):
id: int
is_active: bool
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class UserResponse(UserInDB):
pass
# app/schemas/item.py
from pydantic import BaseModel
from datetime import datetime
from typing import Optional
from .user import UserResponse
class ItemBase(BaseModel):
name: str
description: Optional[str] = None
price: int = 0
class ItemCreate(ItemBase):
pass
class ItemUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
price: Optional[int] = None
class ItemInDB(ItemBase):
id: int
owner_id: Optional[int] = None
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class ItemResponse(ItemInDB):
owner: Optional[UserResponse] = None