diff --git a/apps/course/serializers/professor.py b/apps/course/serializers/professor.py index 37fd68a..a82b212 100644 --- a/apps/course/serializers/professor.py +++ b/apps/course/serializers/professor.py @@ -2,6 +2,7 @@ from django.contrib.auth import get_user_model from rest_framework import serializers from apps.account.serializers import UserProfileSerializer +from utils import FileFieldSerializer, absolute_url User = get_user_model() @@ -10,10 +11,11 @@ User = get_user_model() class ProfessorListSerializer(serializers.ModelSerializer): course_count = serializers.IntegerField(read_only=True) lesson_count = serializers.IntegerField(read_only=True) + avatar = FileFieldSerializer(required=False) class Meta: model = User - fields = ['id', 'slug', 'fullname', 'experience_years', 'course_count', 'lesson_count'] + fields = ['id', 'slug', 'fullname', 'avatar','experience_years', 'course_count', 'lesson_count'] class ProfessorDetailSerializer(UserProfileSerializer): diff --git a/apps/course/services/plugnmeet.py b/apps/course/services/plugnmeet.py index b93734a..29d0072 100644 --- a/apps/course/services/plugnmeet.py +++ b/apps/course/services/plugnmeet.py @@ -28,6 +28,7 @@ class PlugNMeetClient: def create_room(self, payload: Dict[str, Any]) -> Dict[str, Any]: # Convert entire payload keys to camelCase as required by PlugNMeet protocol + print(f"[PlugNMeet] Creating room with payload: {payload}") prepared = self._camelize_dict(payload) return self._post("/auth/room/create", prepared) diff --git a/apps/course/views/live_session.py b/apps/course/views/live_session.py index f78e485..723036d 100644 --- a/apps/course/views/live_session.py +++ b/apps/course/views/live_session.py @@ -41,7 +41,7 @@ class CourseLiveSessionRoomCreateAPIView(GenericAPIView): logger.info(f"[LiveSession Create] Permission granted for user_id={request.user.id} course={slug}") subject = serializer.validated_data.get('subject') or f"{course.title} Live Session" - room_id = serializer.validated_data.get('room_id') or self._build_room_id(course) + room_id = self._build_room_id(course) metadata = self._build_metadata(subject) payload = { @@ -105,7 +105,7 @@ class CourseLiveSessionRoomCreateAPIView(GenericAPIView): @staticmethod def _build_room_id(course: Course) -> str: - return f"{course.id}:imamjavad" + return f"{course.id}-imamjavad" def _build_metadata(self, subject: str) -> dict: # Build secured, centralized metadata. Client overrides are NOT allowed.