from rest_framework import viewsets

from common.permissions import IsStaffOrReadOnly

from .models import TeamMember
from .serializers import TeamMemberSerializer


class TeamMemberViewSet(viewsets.ModelViewSet):
    """CRUD for team members. Public sees active members; staff manage all."""

    serializer_class = TeamMemberSerializer
    permission_classes = [IsStaffOrReadOnly]
    search_fields = ['name', 'role', 'email']
    ordering_fields = ['order', 'name', 'created_at']

    def get_queryset(self):
        qs = TeamMember.objects.all()
        user = self.request.user
        if not (user and user.is_authenticated and user.is_staff):
            qs = qs.filter(is_active=True)
        return qs
