Files
family-hub/backend/app/models/chore_completion_log.py

32 lines
1.5 KiB
Python

"""Chore Completion Log model for tracking historical chore completions."""
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Text
from sqlalchemy.orm import relationship
from datetime import datetime
from app.core.database import Base
class ChoreCompletionLog(Base):
"""
Comprehensive log of chore completions.
This model tracks every completion instance, allowing for:
- Historical completion data
- Multiple completions of the same chore
- Optional notes and verification
- Weekly/monthly reporting
"""
__tablename__ = "chore_completion_logs"
id = Column(Integer, primary_key=True, index=True)
chore_id = Column(Integer, ForeignKey("chores.id", ondelete="CASCADE"), nullable=False, index=True)
user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True)
completed_at = Column(DateTime, default=datetime.utcnow, nullable=False, index=True)
notes = Column(Text, nullable=True) # Optional notes about the completion
verified_by_user_id = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True) # Optional verification
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
# Relationships
chore = relationship("Chore", foreign_keys=[chore_id])
user = relationship("User", foreign_keys=[user_id], back_populates="chore_completion_logs")
verified_by = relationship("User", foreign_keys=[verified_by_user_id])