2026-04-05 12:43:24 +00:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
from .models import LobsterMemory, SyncHistory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LobsterMemorySerializer(serializers.ModelSerializer):
|
|
|
|
|
"""龙虾记忆序列化器"""
|
|
|
|
|
|
2026-04-05 14:16:15 +00:00
|
|
|
status_display = serializers.CharField(source='get_status_display', read_only=True)
|
|
|
|
|
|
2026-04-05 12:43:24 +00:00
|
|
|
class Meta:
|
|
|
|
|
model = LobsterMemory
|
|
|
|
|
fields = [
|
|
|
|
|
'id',
|
|
|
|
|
'lobster_id',
|
|
|
|
|
'file_path',
|
|
|
|
|
'content',
|
|
|
|
|
'hash',
|
|
|
|
|
'status',
|
2026-04-05 14:16:15 +00:00
|
|
|
'status_display',
|
2026-04-05 12:43:24 +00:00
|
|
|
'version',
|
|
|
|
|
'size',
|
2026-04-05 14:16:15 +00:00
|
|
|
'summary',
|
2026-04-05 12:43:24 +00:00
|
|
|
'created_at',
|
|
|
|
|
'updated_at',
|
|
|
|
|
]
|
|
|
|
|
read_only_fields = ['id', 'created_at', 'updated_at']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SyncHistorySerializer(serializers.ModelSerializer):
|
|
|
|
|
"""同步历史序列化器"""
|
|
|
|
|
|
|
|
|
|
action_display = serializers.CharField(source='get_action_display', read_only=True)
|
|
|
|
|
status_display = serializers.CharField(source='get_status_display', read_only=True)
|
2026-04-05 14:16:15 +00:00
|
|
|
source_display = serializers.CharField(source='get_source_display', read_only=True)
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = SyncHistory
|
|
|
|
|
fields = [
|
|
|
|
|
'id',
|
|
|
|
|
'lobster_id',
|
|
|
|
|
'file_path',
|
|
|
|
|
'action',
|
|
|
|
|
'action_display',
|
|
|
|
|
'status',
|
|
|
|
|
'status_display',
|
2026-04-05 14:16:15 +00:00
|
|
|
'source',
|
|
|
|
|
'source_display',
|
2026-04-05 12:43:24 +00:00
|
|
|
'old_version',
|
|
|
|
|
'new_version',
|
|
|
|
|
'old_hash',
|
|
|
|
|
'new_hash',
|
|
|
|
|
'file_size',
|
2026-04-05 14:16:15 +00:00
|
|
|
'lines_changed',
|
2026-04-05 12:43:24 +00:00
|
|
|
'operator',
|
|
|
|
|
'error_message',
|
|
|
|
|
'execution_time',
|
|
|
|
|
'created_at',
|
|
|
|
|
]
|
|
|
|
|
read_only_fields = ['id', 'created_at']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FileDiffSerializer(serializers.Serializer):
|
|
|
|
|
"""文件差异序列化器"""
|
|
|
|
|
|
|
|
|
|
file_path = serializers.CharField()
|
|
|
|
|
lobster_id = serializers.CharField()
|
2026-04-05 14:16:15 +00:00
|
|
|
local_content = serializers.CharField(required=False, allow_null=True)
|
|
|
|
|
db_content = serializers.CharField(required=False, allow_null=True)
|
|
|
|
|
local_hash = serializers.CharField(required=False, allow_null=True)
|
|
|
|
|
db_hash = serializers.CharField(required=False, allow_null=True)
|
2026-04-05 12:43:24 +00:00
|
|
|
status = serializers.CharField()
|
2026-04-05 14:16:15 +00:00
|
|
|
message = serializers.CharField(required=False)
|
|
|
|
|
diff = serializers.DictField(required=False)
|