Files
ibapp-backend/core/apps/projects/serializers/project_estimate.py
2025-08-11 12:14:44 +05:00

38 lines
1.2 KiB
Python

from django.db import transaction
from rest_framework import serializers
from core.apps.projects.models.project_estimate import ProjectEstimate
from core.apps.projects.serializers.estimate_work import EstimateWorkListSerializer
class ProjectEstimateListSerializer(serializers.ModelSerializer):
estimate_works = EstimateWorkListSerializer(many=True)
class Meta:
model = ProjectEstimate
fields = [
'id', 'number', 'name', 'estimate_works'
]
class ProjectEstimateCreateSerializer(serializers.Serializer):
number = serializers.IntegerField()
name = serializers.CharField()
def create(self, validated_data):
with transaction.atomic():
return ProjectEstimate.objects.create(
number=validated_data.get('number'),
name=validated_data.get('name'),
)
class ProjectEstimateUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = ProjectEstimate
fields = ['name']
def update(self, instance, validated_data):
instance.name = validated_data.get('name', instance.name)
instance.save()
return instance