tahamajs's picture
download
raw
2.93 kB
from rest_framework import serializers
from .models import (
CodeGenerationSession,
CodeMessage,
CodeReview,
GeneratedCode,
TestGeneration,
)
class CodeMessageSerializer(serializers.ModelSerializer):
class Meta:
model = CodeMessage
fields = [
"id",
"session",
"role",
"content",
"language",
"tokens_used",
"created_at",
]
read_only_fields = ["id", "tokens_used", "created_at"]
class GeneratedCodeSerializer(serializers.ModelSerializer):
class Meta:
model = GeneratedCode
fields = [
"id",
"session",
"filename",
"content",
"language",
"description",
"status",
"version",
"created_at",
]
read_only_fields = ["id", "version", "created_at", "updated_at"]
class CodeReviewSerializer(serializers.ModelSerializer):
class Meta:
model = CodeReview
fields = [
"id",
"generated_code",
"issues",
"suggestions",
"overall_assessment",
"created_at",
]
read_only_fields = ["id", "created_at"]
class TestGenerationSerializer(serializers.ModelSerializer):
class Meta:
model = TestGeneration
fields = [
"id",
"generated_code",
"test_content",
"test_framework",
"coverage_estimate",
"created_at",
]
read_only_fields = ["id", "created_at"]
class CodeGenerationSessionSerializer(serializers.ModelSerializer):
message_count = serializers.SerializerMethodField()
last_message = serializers.SerializerMethodField()
class Meta:
model = CodeGenerationSession
fields = [
"id",
"title",
"context",
"message_count",
"last_message",
"created_at",
"updated_at",
]
read_only_fields = ["id", "created_at", "updated_at"]
def get_message_count(self, obj):
return obj.messages.count()
def get_last_message(self, obj):
last = obj.messages.order_by("-created_at").first()
if last:
return {"role": last.role, "content": last.content[:100]}
return None
class CodeGenerationSessionDetailSerializer(serializers.ModelSerializer):
messages = CodeMessageSerializer(many=True, read_only=True)
generated_files = GeneratedCodeSerializer(many=True, read_only=True)
class Meta:
model = CodeGenerationSession
fields = [
"id",
"title",
"context",
"messages",
"generated_files",
"created_at",
"updated_at",
]
read_only_fields = ["id", "created_at", "updated_at"]

Xet Storage Details

Size:
2.93 kB
·
Xet hash:
b47a7c2b5784f7586bbb90be0212400b089cef3a67c6befd7f84213879a3662e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.