updated pages

This commit is contained in:
2025-07-16 16:08:40 +03:00
parent 94fad22d85
commit f075cdf871
12 changed files with 1808 additions and 26 deletions

View File

@@ -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']

View 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
}

View File

@@ -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