[models] simplify calories and macros'
This commit is contained in:
parent
0ea4c0b4b0
commit
57e1732ef1
3 changed files with 29 additions and 31 deletions
|
|
@ -2,10 +2,8 @@ from typing import Annotated
|
|||
|
||||
from pydantic import ConfigDict, Field
|
||||
|
||||
Macronutrient = Annotated[float, Field(ge=0, le=100)]
|
||||
OptionalMacronutrient = Annotated[float | None, Field(default=None, ge=0, le=100)]
|
||||
Macronutrient = Annotated[float, Field(ge=0)]
|
||||
Calories = Annotated[float, Field(ge=0)]
|
||||
OptionalCalories = Annotated[float | None, Field(default=None, ge=0)]
|
||||
|
||||
|
||||
class ObjModelMixin:
|
||||
|
|
|
|||
|
|
@ -1,31 +1,31 @@
|
|||
from typing import Annotated
|
||||
from .base import (
|
||||
ObjModelMixin,
|
||||
Macronutrient,
|
||||
OptionalMacronutrient,
|
||||
Calories,
|
||||
OptionalCalories,
|
||||
)
|
||||
from pydantic import BaseModel
|
||||
from pydantic import BaseModel, Field
|
||||
from fooder.utils.calories import calculate_calories
|
||||
|
||||
MacronutrientPer100g = Annotated[float, Field(ge=0, le=100)]
|
||||
|
||||
|
||||
class ProductModel(ObjModelMixin, BaseModel):
|
||||
name: str
|
||||
protein: Macronutrient
|
||||
carb: Macronutrient
|
||||
fat: Macronutrient
|
||||
fiber: Macronutrient
|
||||
protein: MacronutrientPer100g
|
||||
carb: MacronutrientPer100g
|
||||
fat: MacronutrientPer100g
|
||||
fiber: MacronutrientPer100g
|
||||
calories: Calories
|
||||
barcode: str | None = None
|
||||
|
||||
|
||||
class ProductCreateModel(BaseModel):
|
||||
name: str
|
||||
protein: Macronutrient
|
||||
carb: Macronutrient
|
||||
fat: Macronutrient
|
||||
fiber: Macronutrient
|
||||
calories: OptionalCalories = None
|
||||
protein: MacronutrientPer100g
|
||||
carb: MacronutrientPer100g
|
||||
fat: MacronutrientPer100g
|
||||
fiber: MacronutrientPer100g
|
||||
calories: Calories | None = None
|
||||
barcode: str | None = None
|
||||
|
||||
@property
|
||||
|
|
@ -44,9 +44,9 @@ class ProductCreateModel(BaseModel):
|
|||
|
||||
class ProductUpdateModel(BaseModel):
|
||||
name: str | None = None
|
||||
protein: OptionalMacronutrient = None
|
||||
carb: OptionalMacronutrient = None
|
||||
fat: OptionalMacronutrient = None
|
||||
fiber: OptionalMacronutrient = None
|
||||
calories: OptionalCalories = None
|
||||
protein: MacronutrientPer100g | None = None
|
||||
carb: MacronutrientPer100g | None = None
|
||||
fat: MacronutrientPer100g | None = None
|
||||
fiber: MacronutrientPer100g | None = None
|
||||
calories: Calories | None = None
|
||||
barcode: str | None = None
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
from .base import ObjModelMixin, Calories, OptionalCalories
|
||||
from .base import ObjModelMixin, Macronutrient, Calories
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class UserSettingsModel(ObjModelMixin, BaseModel):
|
||||
protein_goal: Calories
|
||||
carb_goal: Calories
|
||||
fat_goal: Calories
|
||||
fiber_goal: Calories
|
||||
protein_goal: Macronutrient
|
||||
carb_goal: Macronutrient
|
||||
fat_goal: Macronutrient
|
||||
fiber_goal: Macronutrient
|
||||
calories_goal: Calories
|
||||
|
||||
|
||||
class UserSettingsUpdateModel(BaseModel):
|
||||
protein_goal: OptionalCalories = None
|
||||
carb_goal: OptionalCalories = None
|
||||
fat_goal: OptionalCalories = None
|
||||
fiber_goal: OptionalCalories = None
|
||||
calories_goal: OptionalCalories = None
|
||||
protein_goal: Macronutrient | None = None
|
||||
carb_goal: Macronutrient | None = None
|
||||
fat_goal: Macronutrient | None = None
|
||||
fiber_goal: Macronutrient | None = None
|
||||
calories_goal: Calories | None = None
|
||||
|
|
|
|||
Loading…
Reference in a new issue