from rest_framework.permissions import BasePermission


class IsRole(BasePermission):
    """
    Custom permission to allow access only to users with specific roles.
    """

    allowed_roles = []

    def has_permission(self, request, view):
        if not request.user or not request.user.is_authenticated:
            return False

        return str(getattr(request.user, "role", "")).upper() in self.allowed_roles
class IsAdmin(IsRole):
    allowed_roles = ['ADMIN']


class IsManager(IsRole):
    allowed_roles = ['MANAGER']


class IsCustomer(IsRole):
    allowed_roles = ['CUSTOMER']


class IsDriver(IsRole):
    allowed_roles = ['DRIVER']


class IsAdminOrManager(IsRole):
    allowed_roles = ['ADMIN', 'MANAGER']
