"""
Author: Michel Peltriaux
Created on: 14.12.25

"""
from abc import ABC

from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpRequest, HttpResponse
from django.utils.decorators import method_decorator
from django.views import View

from konova.decorators import uuid_required, any_group_check


class AbstractDetailView(LoginRequiredMixin, View, ABC):
    _TEMPLATE = None

    @method_decorator(uuid_required)
    def dispatch(self, request, *args, **kwargs):
        return super().dispatch(request, *args, **kwargs)

    @method_decorator(any_group_check)
    def get(self, request: HttpRequest, id: str, *args, **kwargs) -> HttpResponse:
        raise NotImplementedError()
