"""
Permissions для видео модуля.
"""
from rest_framework import permissions


class IsVideoRoomParticipant(permissions.BasePermission):
    """
    Проверка что пользователь - участник видеокомнаты.
    """
    
    message = 'Вы не являетесь участником этой видеокомнаты.'
    
    def has_object_permission(self, request, view, obj):
        """Проверка доступа к объекту."""
        # Для VideoRoom
        if hasattr(obj, 'mentor') and hasattr(obj, 'client'):
            return request.user in [obj.mentor, obj.client]
        
        # Для VideoParticipant
        if hasattr(obj, 'room'):
            return request.user in [obj.room.mentor, obj.room.client]
        
        return False


class IsMentorOrReadOnly(permissions.BasePermission):
    """
    Только ментор может редактировать, остальные - только чтение.
    """
    
    def has_object_permission(self, request, view, obj):
        """Проверка доступа к объекту."""
        # Чтение разрешено всем участникам
        if request.method in permissions.SAFE_METHODS:
            if hasattr(obj, 'room'):
                return request.user in [obj.room.mentor, obj.room.client]
            return request.user in [obj.mentor, obj.client]
        
        # Редактирование только ментору
        if hasattr(obj, 'room'):
            return request.user == obj.room.mentor
        return request.user == obj.mentor

