diff --git a/api/v1/serializers/payment.py b/api/v1/serializers/payment.py new file mode 100644 index 00000000..dd5029dc --- /dev/null +++ b/api/v1/serializers/payment.py @@ -0,0 +1,25 @@ +from rest_framework import serializers + +from apps.payment.models import AuthorBalance + + +class AuthorBalanceSerializer(serializers.ModelSerializer): + + class Meta: + model = AuthorBalance + fields = ( + 'id', + 'author', + 'type', + 'amount', + 'commission', + 'status', + 'payment', + ) + + read_only_fields = ( + 'id', + 'author', + 'type', + 'payment', + ) diff --git a/api/v1/urls.py b/api/v1/urls.py index 171b7794..572a90df 100644 --- a/api/v1/urls.py +++ b/api/v1/urls.py @@ -8,6 +8,7 @@ from drf_yasg import openapi from .auth import ObtainToken from .views import ( + AuthorBalanceViewSet, CategoryViewSet, CourseViewSet, MaterialViewSet, LikeViewSet, ImageViewSet, TextViewSet, @@ -18,6 +19,7 @@ from .views import ( ) router = DefaultRouter() +router.register(r'author-balance', AuthorBalanceViewSet, base_name='author-balance') router.register(r'courses', CourseViewSet, base_name='courses') router.register(r'categories', CategoryViewSet, base_name='categories') router.register(r'materials', MaterialViewSet, base_name='materials') diff --git a/api/v1/views.py b/api/v1/views.py index 2d5add55..6958934c 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -24,6 +24,7 @@ from .serializers.content import ( ImageObjectSerializer, ) from .serializers.school import SchoolScheduleSerializer +from .serializers.payment import AuthorBalanceSerializer from .serializers.user import ( UserSerializer, UserPhotoSerializer, ) @@ -35,10 +36,23 @@ from apps.content.models import ( Image, Text, ImageText, Video, Gallery, GalleryImage, ImageObject, ) +from apps.payment.models import AuthorBalance from apps.school.models import SchoolSchedule User = get_user_model() +class AuthorBalanceViewSet(ExtendedModelViewSet): + queryset = AuthorBalance.objects.all() + serializer_class = AuthorBalanceSerializer + permission_classes = (IsAdmin,) + filter_fields = ('status', 'type') + search_fields = ( + 'author__email', + 'author__first_name', + 'author__last_name', + ) + + class ImageObjectViewSet(ExtendedModelViewSet): queryset = ImageObject.objects.all() serializer_class = ImageObjectSerializer