This commit is contained in:
2025-10-02 00:54:34 +02:00
commit 84b34c9615
200 changed files with 42048 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
from rest_framework import serializers
from .models import ServiceTicket
from account.models import CustomUser
class ServiceTicketSerializer(serializers.ModelSerializer):
class Meta:
model = ServiceTicket
fields = [
"id", "title", "description", "user",
"status", "category", "created_at"
]
read_only_fields = ["id", "created_at"]
extra_kwargs = {
"title": {"help_text": "Stručný název požadavku", "required": True},
"description": {"help_text": "Detailní popis problému", "required": False},
"user": {"help_text": "ID uživatele, který požadavek zadává", "required": True},
"status": {"help_text": "Stav požadavku (new / in_progress / resolved / closed)", "required": False},
"category": {"help_text": "Kategorie požadavku (tech / reservation / payment / account / content / suggestion / other)", "required": True},
}
def validate(self, data):
user = data.get("user", None)
# if user is None:
# raise serializers.ValidationError("Product is a required field.")
# # Check if user exists in DB
# if not CustomUser.objects.filter(pk=user.pk if hasattr(user, 'pk') else user).exists():
# raise serializers.ValidationError("Neplatné ID Užívatele.")
# Example validation: status must be one of the defined choices
if "status" in data and data["status"] not in dict(ServiceTicket.STATUS_CHOICES):
raise serializers.ValidationError({"status": "Neplatný stav požadavku."})
if "category" in data and data["category"] not in dict(ServiceTicket.CATEGORY_CHOICES):
raise serializers.ValidationError({"category": "Neplatná kategorie požadavku."})
title = data.get("title", "").strip()
if not title:
raise serializers.ValidationError("Název požadavku nemůže být prázdný.")
if len(title) > 255:
raise serializers.ValidationError("Název požadavku nemůže být delší než 255 znaků.")
data["title"] = title # Optional: overwrite with trimmed version
return data