from rest_framework import viewsets, status
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from drf_spectacular.utils import extend_schema, extend_schema_view

from webapp.models.master import Skpddg
from .serializers import SkpddgSerializer


@extend_schema_view(
    list=extend_schema(
        tags=["Master Data - SKPD"],
        summary="Daftar SKPD",
        description="Mengambil semua SKPD dari tabel `skpd_dg`.",
        responses={200: SkpddgSerializer(many=True)},
    ),
)
class SkpdListAPIView(viewsets.ViewSet):
    """
    Hanya GET SKPD (read-only)
    """

    permission_classes = [IsAuthenticatedOrReadOnly]

    def list(self, request):
        qs = Skpddg.objects.all()
        data = SkpddgSerializer(qs, many=True).data
        return Response(data, status=status.HTTP_200_OK)
