updated pages
This commit is contained in:
@@ -7,5 +7,6 @@ from .player import Player
|
||||
from .content import Content
|
||||
from .group import Group, group_player
|
||||
from .server_log import ServerLog
|
||||
from .scheduled_task import ScheduledTask
|
||||
|
||||
__all__ = ['User', 'Player', 'Content', 'Group', 'ServerLog', 'group_player']
|
||||
__all__ = ['User', 'Player', 'Content', 'Group', 'group_player', 'ServerLog', 'ScheduledTask']
|
||||
|
||||
46
app/models/scheduled_task.py
Normal file
46
app/models/scheduled_task.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""
|
||||
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'<ScheduledTask {self.name}>'
|
||||
|
||||
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
|
||||
}
|
||||
@@ -4,6 +4,14 @@ Server log model for audit trail
|
||||
|
||||
from app.extensions import db
|
||||
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.datetime.now(LOCAL_TZ).replace(tzinfo=None)
|
||||
|
||||
class ServerLog(db.Model):
|
||||
"""Server log model for tracking system actions"""
|
||||
@@ -13,7 +21,7 @@ class ServerLog(db.Model):
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=True)
|
||||
ip_address = db.Column(db.String(45), nullable=True) # Support IPv6
|
||||
user_agent = db.Column(db.Text, nullable=True)
|
||||
timestamp = db.Column(db.DateTime, default=datetime.datetime.utcnow, index=True)
|
||||
timestamp = db.Column(db.DateTime, default=get_local_time, index=True)
|
||||
level = db.Column(db.String(20), default='INFO') # INFO, WARNING, ERROR, DEBUG
|
||||
|
||||
# Relationships
|
||||
|
||||
Reference in New Issue
Block a user