Files
eggs-backend/core/apps/eggs/serializers/broken.py
husanjon ab73d05ecc
Some checks failed
Build and Push to Docker Hub / build-test-push (push) Failing after 1m55s
gold eggs backend
2026-04-15 08:59:36 +02:00

51 lines
1.8 KiB
Python

from rest_framework import serializers
from core.apps.eggs.models import Broken, Group, History
from core.apps.eggs.models.monitoring import Monitoring
from core.http.models.user import User
class BrokenSerializer(serializers.ModelSerializer):
class Meta:
model = Broken
fields = ["comment", "quantity", "group", "price"]
def validate(self, data):
group = Group.objects.get(id=data["group"].id)
if data["quantity"] > group.quantity:
raise serializers.ValidationError(
"Miqdori guruh miqdoridan ko'p bo'lishi mumkin emas"
)
return data
def create(self, validated_data):
request = self.context.get("request")
if request and hasattr(request, "user"):
user = User.objects.get(id=request.user.id)
validated_data["user_id"] = user
instance = Broken.objects.create(**validated_data)
History.objects.create(
content_object=instance,
action="broken_created",
user_id=instance.user_id,
created_who=f"{instance.user_id.first_name} {instance.user_id.last_name}",
created_by=instance.group.name,
reason=f"Singan tuxum qo'shildi: {instance.quantity} ta",
avatar=(
instance.user_id.avatar if instance.user_id.avatar else None
),
)
Monitoring.objects.create(
content_object=instance,
action="broken_created",
user_id=instance.user_id,
created_who=f"{instance.user_id.first_name} {instance.user_id.last_name}",
created_by=instance.group.name,
reason=f"Singan tuxum qo'shildi: {instance.quantity} ta",
comment="Chiqim",
price=instance.price,
)
return instance