fooder-api/fooder/domain/product.py

27 lines
606 B
Python

from sqlalchemy.orm import Mapped
from fooder.domain.base import Base, CommonMixin
class Product(Base, CommonMixin):
"""Product."""
name: Mapped[str]
protein: Mapped[float]
carb: Mapped[float]
fat: Mapped[float]
fiber: Mapped[float]
hard_coded_calories: Mapped[float | None]
barcode: Mapped[str | None]
@property
def calories(self) -> float:
"""calories.
:rtype: float
"""
if self.hard_coded_calories:
return self.hard_coded_calories
return self.protein * 4 + self.carb * 4 + self.fat * 9 + self.fiber * 2