Files
mealie/mealie/schema/recipe/recipe_comments.py
Michael Genson 7a107584c7 feat: Upgrade to Pydantic V2 (#3134)
* bumped pydantic
2024-02-11 16:47:37 +00:00

49 lines
1.1 KiB
Python

from datetime import datetime
from pydantic import UUID4, ConfigDict
from sqlalchemy.orm import joinedload
from sqlalchemy.orm.interfaces import LoaderOption
from mealie.db.models.recipe import RecipeComment
from mealie.schema._mealie import MealieModel
from mealie.schema.response.pagination import PaginationBase
class UserBase(MealieModel):
id: UUID4
username: str | None = None
admin: bool
model_config = ConfigDict(from_attributes=True)
class RecipeCommentCreate(MealieModel):
recipe_id: UUID4
text: str
class RecipeCommentSave(RecipeCommentCreate):
user_id: UUID4
class RecipeCommentUpdate(MealieModel):
id: UUID4
text: str
class RecipeCommentOut(RecipeCommentCreate):
id: UUID4
recipe_id: UUID4
created_at: datetime
update_at: datetime
user_id: UUID4
user: UserBase
model_config = ConfigDict(from_attributes=True)
@classmethod
def loader_options(cls) -> list[LoaderOption]:
return [joinedload(RecipeComment.user)]
class RecipeCommentPagination(PaginationBase):
items: list[RecipeCommentOut]