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): class Meta: model = WhereHouse fields = [ 'id', 'name', 'address', ] class WhereHouseDetailSerializer(serializers.ModelSerializer): class Meta: model = WhereHouse fields = [ 'id', 'name', 'address', ] class WhereHouseCreateSerializer(serializers.Serializer): name = serializers.CharField() address = serializers.CharField() def create(self, validated_data): with transaction.atomic(): return WhereHouse.objects.create( name=validated_data.get('name'), address=validated_data.get('address'), ) class WhereHouseUpdateSerializer(serializers.ModelSerializer): class Meta: model = WhereHouse fields = [ 'name', 'address', ] def update(self, instance, validated_data): instance.name = validated_data.get('name', instance.name) instance.address = validated_data.get('address', instance.address) instance.save() return instance