from django.http import JsonResponse from rest_framework import permissions, viewsets from .models import Recommendation, Species, Trip, WaterBody from .serializers import RecommendationSerializer, SpeciesSerializer, TripSerializer, WaterBodySerializer def health(_request): return JsonResponse({"status": "ok", "service": "fishiq-api"}) class ReadOnlyCatalogViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = [permissions.AllowAny] class SpeciesViewSet(ReadOnlyCatalogViewSet): queryset = Species.objects.all().order_by("common_name") serializer_class = SpeciesSerializer class WaterBodyViewSet(ReadOnlyCatalogViewSet): queryset = WaterBody.objects.prefetch_related("species").all().order_by("name") serializer_class = WaterBodySerializer class TripViewSet(viewsets.ModelViewSet): serializer_class = TripSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return Trip.objects.filter(owner=self.request.user).select_related("water_body") def perform_create(self, serializer): serializer.save(owner=self.request.user) class RecommendationViewSet(viewsets.ReadOnlyModelViewSet): serializer_class = RecommendationSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return Recommendation.objects.filter(trip__owner=self.request.user)