from rest_framework import serializers from django.contrib.auth.models import User from .models import Brief, TextVariant, Test, Segment, Assignment, ResultEntry, MetricsSnapshot, OptimizationPolicy class RegisterSerializer(serializers.ModelSerializer): password = serializers.CharField(write_only=True, min_length=6) class Meta: model = User fields = ("username","password","email") def create(self, validated): user = User(username=validated["username"], email=validated.get("email","")) user.set_password(validated["password"]) user.save() return user class BriefSerializer(serializers.ModelSerializer): class Meta: model = Brief fields = "__all__" read_only_fields = ("id","owner","created_at") class TextVariantSerializer(serializers.ModelSerializer): class Meta: model = TextVariant fields = "__all__" read_only_fields = ("id","created_at") class TestSerializer(serializers.ModelSerializer): class Meta: model = Test fields = "__all__" read_only_fields = ("id","owner","created_at") class SegmentSerializer(serializers.ModelSerializer): class Meta: model = Segment fields = "__all__" read_only_fields = ("id",) class AssignmentSerializer(serializers.ModelSerializer): class Meta: model = Assignment fields = "__all__" read_only_fields = ("id",) class ResultEntrySerializer(serializers.ModelSerializer): class Meta: model = ResultEntry fields = "__all__" read_only_fields = ("id","created_at") class MetricsSnapshotSerializer(serializers.ModelSerializer): class Meta: model = MetricsSnapshot fields = "__all__" read_only_fields = ("id","created_at") class OptimizationPolicySerializer(serializers.ModelSerializer): class Meta: model = OptimizationPolicy fields = "__all__" read_only_fields = ("id","test","updated_at")