from rest_framework import serializers from apps.logs.services import LOG_EVENTS, LOG_SECTIONS from apps.logs.services.query import ( serialize_workspace_log_detail, serialize_workspace_log_list_item, ) class WorkspaceLogQuerySerializer(serializers.Serializer): workspace = serializers.UUIDField() section = serializers.ChoiceField(choices=LOG_SECTIONS, required=False) actor = serializers.UUIDField(required=False) event = serializers.ChoiceField(choices=LOG_EVENTS, required=False) search = serializers.CharField(required=False, allow_blank=True, trim_whitespace=True) from_date = serializers.CharField(required=False, allow_blank=True, source="from") to_date = serializers.CharField(required=False, allow_blank=True, source="to") ordering = serializers.ChoiceField( choices=("timestamp", "-timestamp"), required=False, default="-timestamp", ) class WorkspaceLogListSerializer(serializers.Serializer): def to_representation(self, instance): return serialize_workspace_log_list_item(instance) class WorkspaceLogDetailSerializer(serializers.Serializer): def to_representation(self, instance): return serialize_workspace_log_detail(instance)