Initial commit
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
from datetime import date as date_type
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from app.models import MealType
|
||||
|
||||
|
||||
class UserCreate(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
class UserRead(BaseModel):
|
||||
id: int
|
||||
username: str
|
||||
calorie_goal: float
|
||||
protein_goal: float
|
||||
carbs_goal: float
|
||||
fat_goal: float
|
||||
|
||||
|
||||
class UserSummary(BaseModel):
|
||||
username: str
|
||||
|
||||
|
||||
class GoalsUpdate(BaseModel):
|
||||
calorie_goal: float
|
||||
protein_goal: float
|
||||
carbs_goal: float
|
||||
fat_goal: float
|
||||
|
||||
|
||||
class Token(BaseModel):
|
||||
access_token: str
|
||||
token_type: str = "bearer"
|
||||
|
||||
|
||||
class TokenData(BaseModel):
|
||||
username: str | None = None
|
||||
|
||||
|
||||
class ProductBase(BaseModel):
|
||||
barcode: str
|
||||
name: str
|
||||
calories: float
|
||||
carbs: float
|
||||
protein: float
|
||||
fat: float
|
||||
sugar: float = 0.0
|
||||
fiber: float = 0.0
|
||||
saturated_fat: float = 0.0
|
||||
salt: float = 0.0
|
||||
|
||||
|
||||
class ProductCreate(ProductBase):
|
||||
barcode: str | None = None
|
||||
|
||||
|
||||
class ProductRead(ProductBase):
|
||||
pass
|
||||
|
||||
|
||||
class ProductSearchResult(ProductRead):
|
||||
last_amount_g: float | None = None
|
||||
is_dish: bool = False
|
||||
|
||||
|
||||
class LogCreate(BaseModel):
|
||||
barcode: str | None = None
|
||||
name: str | None = None
|
||||
amount_g: float
|
||||
meal_type: MealType
|
||||
|
||||
|
||||
class LogUpdate(BaseModel):
|
||||
amount_g: float | None = None
|
||||
meal_type: MealType | None = None
|
||||
|
||||
|
||||
class LogRead(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
barcode: str | None
|
||||
name: str
|
||||
meal_type: MealType
|
||||
amount_g: float
|
||||
calories: float
|
||||
carbs: float
|
||||
protein: float
|
||||
fat: float
|
||||
sugar: float
|
||||
fiber: float
|
||||
saturated_fat: float
|
||||
salt: float
|
||||
timestamp: datetime
|
||||
|
||||
|
||||
class DailyTotals(BaseModel):
|
||||
calories: float
|
||||
carbs: float
|
||||
protein: float
|
||||
fat: float
|
||||
sugar: float
|
||||
fiber: float
|
||||
saturated_fat: float
|
||||
salt: float
|
||||
|
||||
|
||||
class DailyLogResponse(BaseModel):
|
||||
logs: list[LogRead]
|
||||
totals: DailyTotals
|
||||
|
||||
|
||||
class DailyHistoryEntry(BaseModel):
|
||||
date: date_type
|
||||
totals: DailyTotals
|
||||
|
||||
|
||||
class HistoryResponse(BaseModel):
|
||||
days: list[DailyHistoryEntry]
|
||||
|
||||
|
||||
class DishIngredientInput(BaseModel):
|
||||
barcode: str
|
||||
amount_g: float
|
||||
|
||||
|
||||
class DishIngredientRead(BaseModel):
|
||||
barcode: str
|
||||
name: str
|
||||
amount_g: float
|
||||
calories: float
|
||||
carbs: float
|
||||
protein: float
|
||||
fat: float
|
||||
sugar: float
|
||||
fiber: float
|
||||
saturated_fat: float
|
||||
salt: float
|
||||
|
||||
|
||||
class DishCreate(BaseModel):
|
||||
name: str
|
||||
instructions: str | None = None
|
||||
ingredients: list[DishIngredientInput]
|
||||
|
||||
|
||||
class DishRead(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
instructions: str | None
|
||||
barcode: str
|
||||
total_weight_g: float
|
||||
calories: float
|
||||
carbs: float
|
||||
protein: float
|
||||
fat: float
|
||||
sugar: float
|
||||
fiber: float
|
||||
saturated_fat: float
|
||||
salt: float
|
||||
ingredients: list[DishIngredientRead]
|
||||
is_owner: bool
|
||||
owner_username: str
|
||||
|
||||
|
||||
class DishShareCreate(BaseModel):
|
||||
username: str
|
||||
|
||||
|
||||
class DishShareRead(BaseModel):
|
||||
username: str
|
||||
Reference in New Issue
Block a user