""" Scheduled Task Model """ from app.extensions import db from datetime import datetime import pytz # Get local timezone LOCAL_TZ = pytz.timezone('Europe/Bucharest') # Adjust this to your local timezone def get_local_time(): """Get current local time""" return datetime.now(LOCAL_TZ).replace(tzinfo=None) class ScheduledTask(db.Model): """Model for scheduled maintenance tasks""" __tablename__ = 'scheduled_task' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) task_type = db.Column(db.String(50), nullable=False) # cleanup_files, clear_logs, optimize_db, backup_db schedule = db.Column(db.String(100), nullable=False) # Cron expression enabled = db.Column(db.Boolean, default=True, nullable=False) created_at = db.Column(db.DateTime, default=get_local_time, nullable=False) last_run = db.Column(db.DateTime, nullable=True) next_run = db.Column(db.DateTime, nullable=True) run_count = db.Column(db.Integer, default=0, nullable=False) def __repr__(self): return f'' def to_dict(self): """Convert to dictionary for JSON serialization""" return { 'id': self.id, 'name': self.name, 'task_type': self.task_type, 'schedule': self.schedule, 'enabled': self.enabled, 'created_at': self.created_at.isoformat() if self.created_at else None, 'last_run': self.last_run.isoformat() if self.last_run else None, 'next_run': self.next_run.isoformat() if self.next_run else None, 'run_count': self.run_count }