"""Chore model.""" from sqlalchemy import Boolean, Column, Integer, String, DateTime, ForeignKey, Enum as SQLEnum from sqlalchemy.orm import relationship from datetime import datetime from app.core.database import Base import enum class ChoreFrequency(str, enum.Enum): """Chore frequency options.""" ON_TRIGGER = "on_trigger" DAILY = "daily" WEEKLY = "weekly" FORTNIGHTLY = "fortnightly" MONTHLY = "monthly" class ChoreStatus(str, enum.Enum): """Chore status options.""" PENDING = "pending" IN_PROGRESS = "in_progress" COMPLETED = "completed" SKIPPED = "skipped" class Chore(Base): """Chore model.""" __tablename__ = "chores" id = Column(Integer, primary_key=True, index=True) title = Column(String(200), nullable=False) description = Column(String(500)) room = Column(String(50)) # bedroom1, bedroom2, kitchen, bathroom1, etc. frequency = Column(SQLEnum(ChoreFrequency), nullable=False) status = Column(SQLEnum(ChoreStatus), default=ChoreStatus.PENDING) assigned_user_id = Column(Integer, ForeignKey("users.id")) due_date = Column(DateTime) completed_at = Column(DateTime) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) # Relationships assigned_user = relationship("User", back_populates="chores")