from datetime import date, datetime from sqlalchemy import Date, ForeignKey, Integer, UniqueConstraint from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.sql import func from app.database import Base class HabitLog(Base): __tablename__ = "habit_log" __table_args__ = (UniqueConstraint("habit_id", "log_date", name="uq_habit_log_habit_date"),) id: Mapped[int] = mapped_column(Integer, primary_key=True) habit_id: Mapped[int] = mapped_column(ForeignKey("habit.id", ondelete="CASCADE"), nullable=False) log_date: Mapped[date] = mapped_column(Date, nullable=False) checked_at: Mapped[datetime] = mapped_column(server_default=func.now(), nullable=False) habit: Mapped["Habit"] = relationship(back_populates="logs")