Files

40 lines
1.4 KiB
Python

from rest_framework import serializers
from apps.reports.models import ReportExportJob
from apps.reports.services.aggregation import ALLOWED_PERIODS
class ReportExportCreateSerializer(serializers.Serializer):
workspace = serializers.UUIDField()
period = serializers.ChoiceField(choices=sorted(ALLOWED_PERIODS))
from_date = serializers.DateField(required=False, allow_null=True)
to_date = serializers.DateField(required=False, allow_null=True)
user = serializers.UUIDField(required=False, allow_null=True)
client = serializers.UUIDField(required=False, allow_null=True)
project = serializers.UUIDField(required=False, allow_null=True)
tags = serializers.ListField(
child=serializers.UUIDField(),
required=False,
allow_empty=True,
)
language = serializers.ChoiceField(choices=("en", "fa"), required=False, default="en")
export_type = serializers.ChoiceField(choices=ReportExportJob.ExportType.choices)
class ReportExportJobSerializer(serializers.ModelSerializer):
class Meta:
model = ReportExportJob
fields = (
"id",
"workspace",
"export_type",
"status",
"filters",
"file_name",
"error_message",
"expires_at",
"completed_at",
"created_at",
)
read_only_fields = fields