feat(logs): add workspace activity log api

This commit is contained in:
2026-04-28 16:42:37 +03:30
parent c8a118788b
commit 71924ce6fb
32 changed files with 1118 additions and 122 deletions

View File

@@ -0,0 +1,32 @@
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)