from datetime import UTC, datetime from app import db class Checklist(db.Model): """Checklist model for Kanban checklists""" __tablename__ = "checklists" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(200), nullable=False) pos = db.Column(db.Float) # position for sorting # Foreign keys board_id = db.Column( db.Integer, db.ForeignKey("boards.id", ondelete="CASCADE"), nullable=False, index=True, ) card_id = db.Column( db.Integer, db.ForeignKey("cards.id", ondelete="CASCADE"), nullable=False, index=True, ) # Timestamps created_at = db.Column(db.DateTime, default=lambda: datetime.now(UTC)) updated_at = db.Column( db.DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC), ) # Relationships check_items = db.relationship( "CheckItem", backref="checklist", cascade="all, delete-orphan", lazy="dynamic" ) def to_dict(self): """Convert checklist to dictionary""" return { "id": self.id, "name": self.name, "pos": self.pos, "board_id": self.board_id, "card_id": self.card_id, "created_at": self.created_at.isoformat() if self.created_at else None, "updated_at": self.updated_at.isoformat() if self.updated_at else None, } def __repr__(self): return f""