You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

48 lines
1.8 KiB

from rest_framework import serializers
class InstitutionsAnalyticsSerializer(serializers.Serializer):
total_institutions = serializers.IntegerField()
verified_institutions = serializers.IntegerField()
countries_count = serializers.IntegerField()
by_type = serializers.DictField(child=serializers.IntegerField())
top_countries = serializers.ListField(child=serializers.DictField())
class ProjectsAnalyticsSerializer(serializers.Serializer):
total_projects = serializers.IntegerField()
active_projects = serializers.IntegerField()
completed_projects = serializers.IntegerField()
class LMSAnalyticsSerializer(serializers.Serializer):
total_courses = serializers.IntegerField()
total_enrollments = serializers.IntegerField()
total_certificates_issued = serializers.IntegerField()
class TicketingAnalyticsSerializer(serializers.Serializer):
total_tickets = serializers.IntegerField()
open_tickets = serializers.IntegerField()
answered_or_closed = serializers.IntegerField()
average_satisfaction_rating = serializers.FloatField(allow_null=True)
class DonationsAnalyticsSerializer(serializers.Serializer):
active_campaigns_count = serializers.IntegerField()
total_funds_raised_usd = serializers.FloatField()
class DiplomacyAnalyticsSerializer(serializers.Serializer):
total_reports_submitted = serializers.IntegerField()
approved_reports_count = serializers.IntegerField()
total_centers_visited = serializers.IntegerField()
class ExecutiveDashboardSerializer(serializers.Serializer):
institutions = InstitutionsAnalyticsSerializer()
projects = ProjectsAnalyticsSerializer()
lms = LMSAnalyticsSerializer()
ticketing = TicketingAnalyticsSerializer()
donations = DonationsAnalyticsSerializer()
diplomacy = DiplomacyAnalyticsSerializer()