from rest_framework import viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
from .models import Magasin, Rayon, ArticleRecurrent, Article, Course
from .serializers import MagasinSerializer, RayonSerializer, ArticleRecurrentSerializer, ArticleSerializer


class MagasinViewSet(viewsets.ModelViewSet):
    queryset = Magasin.objects.all()
    serializer_class = MagasinSerializer


class RayonViewSet(viewsets.ModelViewSet):
    queryset = Rayon.objects.all().order_by("ordreAffichage")
    serializer_class = RayonSerializer

    @action(detail=False, methods=["post"])
    def reorder(self, request):
        for item in request.data:
            Rayon.objects.filter(id=item["id"]).update(
                ordreAffichage=item["ordreAffichage"]
            )
        return Response({"status": "ok"})


class ArticleRecurrentViewSet(viewsets.ModelViewSet):
    queryset = ArticleRecurrent.objects.all()
    serializer_class = ArticleRecurrentSerializer


class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

class CourseViewSet(viewsets.ModelViewSet):
    queryset = Course.objects.all()
    serializer_class = ArticleSerializer