feat: add storage cleanup mechanism with soft delete and auto scheduler
- Add soft delete (deleted_at column) to preserve task records for statistics - Implement cleanup service to delete old files while keeping DB records - Add automatic cleanup scheduler (configurable interval, default 24h) - Add admin endpoints: storage stats, cleanup trigger, scheduler status - Update task service with admin views (include deleted/files_deleted) - Add frontend storage management UI in admin dashboard - Add i18n translations for storage management 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -55,6 +55,8 @@ class Task(Base):
|
||||
completed_at = Column(DateTime, nullable=True)
|
||||
file_deleted = Column(Boolean, default=False, nullable=False,
|
||||
comment="Track if files were auto-deleted")
|
||||
deleted_at = Column(DateTime, nullable=True, index=True,
|
||||
comment="Soft delete timestamp - NULL means not deleted")
|
||||
|
||||
# Relationships
|
||||
user = relationship("User", back_populates="tasks")
|
||||
@@ -79,7 +81,8 @@ class Task(Base):
|
||||
"created_at": self.created_at.isoformat() if self.created_at else None,
|
||||
"updated_at": self.updated_at.isoformat() if self.updated_at else None,
|
||||
"completed_at": self.completed_at.isoformat() if self.completed_at else None,
|
||||
"file_deleted": self.file_deleted
|
||||
"file_deleted": self.file_deleted,
|
||||
"deleted_at": self.deleted_at.isoformat() if self.deleted_at else None
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user