Mhdeusi's picture
Rename database/models.py to trash/database/models.py
926788e verified
from datetime import datetime
import json
class User:
def __init__(self, user_data):
self.user_id = user_data.get('user_id')
self.username = user_data.get('username')
self.email = user_data.get('email')
self.password = user_data.get('password')
self.role = user_data.get('role', 'student')
self.created_at = user_data.get('created_at', datetime.now().isoformat())
self.last_login = user_data.get('last_login')
self.profile = user_data.get('profile', {})
self.progress = user_data.get('progress', {})
self.is_active = user_data.get('is_active', True)
def to_dict(self):
"""تبدیل به دیکشنری"""
return {
'user_id': self.user_id,
'username': self.username,
'email': self.email,
'role': self.role,
'created_at': self.created_at,
'last_login': self.last_login,
'profile': self.profile,
'progress': self.progress,
'is_active': self.is_active
}
def update_progress(self, score=0, completed_lesson=None, current_lesson=None):
"""به‌روزرسانی پیشرفت کاربر"""
if score > 0:
self.progress['total_score'] = self.progress.get('total_score', 0) + score
if completed_lesson and completed_lesson not in self.progress.get('completed_lessons', []):
if 'completed_lessons' not in self.progress:
self.progress['completed_lessons'] = []
self.progress['completed_lessons'].append(completed_lesson)
if current_lesson:
self.progress['current_lesson'] = current_lesson
class Lesson:
def __init__(self, lesson_data):
self.lesson_id = lesson_data.get('lesson_id')
self.day = lesson_data.get('day')
self.title = lesson_data.get('title')
self.sections = lesson_data.get('sections', [])
self.is_active = lesson_data.get('is_active', True)
self.created_at = lesson_data.get('created_at', datetime.now().isoformat())
self.updated_at = lesson_data.get('updated_at', datetime.now().isoformat())
def to_dict(self):
"""تبدیل به دیکشنری"""
return {
'lesson_id': self.lesson_id,
'day': self.day,
'title': self.title,
'sections': self.sections,
'is_active': self.is_active,
'created_at': self.created_at,
'updated_at': self.updated_at
}
class Quiz:
def __init__(self, quiz_data):
self.quiz_id = quiz_data.get('quiz_id')
self.day = quiz_data.get('day')
self.questions = quiz_data.get('questions', [])
self.is_active = quiz_data.get('is_active', True)
self.created_at = quiz_data.get('created_at', datetime.now().isoformat())
def to_dict(self):
"""تبدیل به دیکشنری"""
return {
'quiz_id': self.quiz_id,
'day': self.day,
'questions': self.questions,
'is_active': self.is_active,
'created_at': self.created_at
}
class UserProgress:
def __init__(self, progress_data):
self.user_id = progress_data.get('user_id')
self.lesson_scores = progress_data.get('lesson_scores', {})
self.quiz_scores = progress_data.get('quiz_scores', {})
self.exercise_scores = progress_data.get('exercise_scores', {})
self.total_score = progress_data.get('total_score', 0)
self.last_activity = progress_data.get('last_activity', datetime.now().isoformat())
def to_dict(self):
"""تبدیل به دیکشنری"""
return {
'user_id': self.user_id,
'lesson_scores': self.lesson_scores,
'quiz_scores': self.quiz_scores,
'exercise_scores': self.exercise_scores,
'total_score': self.total_score,
'last_activity': self.last_activity
}