Files
site/WESP_REL/app/models/daily_ingredient_skip.py
2026-07-17 12:57:18 +03:00

26 lines
1.2 KiB
Python

"""Исключение ингредиента рейса из плана на конкретную дату."""
from sqlalchemy import Column, Date, DateTime, ForeignKey, Integer, String
from app import db
from .base import SoftDeleteMixin, TimestampMixin, default_uuid
class DailyIngredientSkip(db.Model, TimestampMixin, SoftDeleteMixin):
"""Глобальное исключение компонента рейса на период (plan_date … valid_until)."""
__tablename__ = "daily_ingredient_skip"
id = Column(String(36), primary_key=True, default=default_uuid)
recipe_id = Column(String(36), ForeignKey("recipe.id"), nullable=False, index=True)
ingredient_id = Column(String(36), ForeignKey("ingredient.id"), nullable=False, index=True)
plan_date = Column(Date, nullable=False, index=True)
valid_until = Column(Date, nullable=True, index=True)
version = Column(Integer, default=1, nullable=False)
created_by = Column(String(50), nullable=False, default="system")
updated_by = Column(String(50), nullable=False, default="system")
sync_timestamp = Column(DateTime, nullable=True)
sync_status = Column(String(20), default="pending", nullable=False)
content_hash = Column(String(64), nullable=False, default="")