[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
|
from pydantic import ConfigDict, Field
|
||||||
|
|
||||||
Macronutrient = Annotated[float, Field(ge=0, le=100)]
|
Macronutrient = Annotated[float, Field(ge=0)]
|
||||||
OptionalMacronutrient = Annotated[float | None, Field(default=None, ge=0, le=100)]
|
|
||||||
Calories = Annotated[float, Field(ge=0)]
|
Calories = Annotated[float, Field(ge=0)]
|
||||||
OptionalCalories = Annotated[float | None, Field(default=None, ge=0)]
|
|
||||||
|
|
||||||
|
|
||||||
class ObjModelMixin:
|
class ObjModelMixin:
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,31 @@
|
||||||
|
from typing import Annotated
|
||||||
from .base import (
|
from .base import (
|
||||||
ObjModelMixin,
|
ObjModelMixin,
|
||||||
Macronutrient,
|
|
||||||
OptionalMacronutrient,
|
|
||||||
Calories,
|
Calories,
|
||||||
OptionalCalories,
|
|
||||||
)
|
)
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel, Field
|
||||||
from fooder.utils.calories import calculate_calories
|
from fooder.utils.calories import calculate_calories
|
||||||
|
|
||||||
|
MacronutrientPer100g = Annotated[float, Field(ge=0, le=100)]
|
||||||
|
|
||||||
|
|
||||||
class ProductModel(ObjModelMixin, BaseModel):
|
class ProductModel(ObjModelMixin, BaseModel):
|
||||||
name: str
|
name: str
|
||||||
protein: Macronutrient
|
protein: MacronutrientPer100g
|
||||||
carb: Macronutrient
|
carb: MacronutrientPer100g
|
||||||
fat: Macronutrient
|
fat: MacronutrientPer100g
|
||||||
fiber: Macronutrient
|
fiber: MacronutrientPer100g
|
||||||
calories: Calories
|
calories: Calories
|
||||||
barcode: str | None = None
|
barcode: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class ProductCreateModel(BaseModel):
|
class ProductCreateModel(BaseModel):
|
||||||
name: str
|
name: str
|
||||||
protein: Macronutrient
|
protein: MacronutrientPer100g
|
||||||
carb: Macronutrient
|
carb: MacronutrientPer100g
|
||||||
fat: Macronutrient
|
fat: MacronutrientPer100g
|
||||||
fiber: Macronutrient
|
fiber: MacronutrientPer100g
|
||||||
calories: OptionalCalories = None
|
calories: Calories | None = None
|
||||||
barcode: str | None = None
|
barcode: str | None = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
@ -44,9 +44,9 @@ class ProductCreateModel(BaseModel):
|
||||||
|
|
||||||
class ProductUpdateModel(BaseModel):
|
class ProductUpdateModel(BaseModel):
|
||||||
name: str | None = None
|
name: str | None = None
|
||||||
protein: OptionalMacronutrient = None
|
protein: MacronutrientPer100g | None = None
|
||||||
carb: OptionalMacronutrient = None
|
carb: MacronutrientPer100g | None = None
|
||||||
fat: OptionalMacronutrient = None
|
fat: MacronutrientPer100g | None = None
|
||||||
fiber: OptionalMacronutrient = None
|
fiber: MacronutrientPer100g | None = None
|
||||||
calories: OptionalCalories = None
|
calories: Calories | None = None
|
||||||
barcode: str | 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
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class UserSettingsModel(ObjModelMixin, BaseModel):
|
class UserSettingsModel(ObjModelMixin, BaseModel):
|
||||||
protein_goal: Calories
|
protein_goal: Macronutrient
|
||||||
carb_goal: Calories
|
carb_goal: Macronutrient
|
||||||
fat_goal: Calories
|
fat_goal: Macronutrient
|
||||||
fiber_goal: Calories
|
fiber_goal: Macronutrient
|
||||||
calories_goal: Calories
|
calories_goal: Calories
|
||||||
|
|
||||||
|
|
||||||
class UserSettingsUpdateModel(BaseModel):
|
class UserSettingsUpdateModel(BaseModel):
|
||||||
protein_goal: OptionalCalories = None
|
protein_goal: Macronutrient | None = None
|
||||||
carb_goal: OptionalCalories = None
|
carb_goal: Macronutrient | None = None
|
||||||
fat_goal: OptionalCalories = None
|
fat_goal: Macronutrient | None = None
|
||||||
fiber_goal: OptionalCalories = None
|
fiber_goal: Macronutrient | None = None
|
||||||
calories_goal: OptionalCalories = None
|
calories_goal: Calories | None = None
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue