Files
ibapp-backend/core/apps/wherehouse/serializers/wherehouse.py
behruz-dev 30e0e3462f add new api
2025-08-25 15:56:09 +05:00

65 lines
1.9 KiB
Python

from django.db import transaction
from rest_framework import serializers
from core.apps.wherehouse.models.wherehouse import WhereHouse
from core.apps.wherehouse.serializers.inventory import InventoryListSerializer
from core.apps.company.serializers.branch import BranchListSerializer
from core.apps.company.models import Branch
class WhereHouseListSerializer(serializers.ModelSerializer):
branch = BranchListSerializer()
class Meta:
model = WhereHouse
fields = [
'id', 'name', 'address', 'branch'
]
class WhereHouseDetailSerializer(serializers.ModelSerializer):
branch = BranchListSerializer()
class Meta:
model = WhereHouse
fields = [
'id', 'name', 'address', 'branch',
]
class WhereHouseCreateSerializer(serializers.Serializer):
name = serializers.CharField()
address = serializers.CharField()
branch_id = serializers.UUIDField()
def validate(self, data):
branch = Branch.objects.filter(id=data.get('branch_id')).first()
if not branch:
raise serializers.ValidationError("Branch not found")
data['branch'] = branch
return data
def create(self, validated_data):
with transaction.atomic():
return WhereHouse.objects.create(
name=validated_data.get('name'),
address=validated_data.get('address'),
branch=validated_data.get('branch'),
)
class WhereHouseUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = WhereHouse
fields = [
'name', 'address', 'branch'
]
def update(self, instance, validated_data):
instance.name = validated_data.get('name', instance.name)
instance.address = validated_data.get('address', instance.address)
instance.branch = validated_data.get('branch', instance.branch)
instance.save()
return instance