init
This commit is contained in:
47
backend/servicedesk/serializers.py
Normal file
47
backend/servicedesk/serializers.py
Normal 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
|
||||
Reference in New Issue
Block a user