first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:27:56 +03:00
commit d9f1ea341e
1021 changed files with 70645 additions and 0 deletions

25
cart/serializers.py Normal file
View File

@@ -0,0 +1,25 @@
from rest_framework import serializers
from product.models import Product
from product.serializers import ProductSerializer
# CartItemSerializer artık hem dict (session) hem de model instance (db) ile çalışabilmeli.
# Serializer'lar varsayılan olarak object attribute'larına erişir.
# Dict erişimi için source kullanabiliriz veya to_representation override edebiliriz.
# Ancak en temizi, view tarafında veriyi standart bir yapıya (list of dicts) dönüştürüp serializer'a vermektir.
# Cart sınıfındaki __iter__ metodu zaten bunu yapıyor (hem DB hem Session için dict döndürüyor).
# Bu yüzden mevcut serializer yapısını koruyabiliriz.
class CartItemSerializer(serializers.Serializer):
product = ProductSerializer(read_only=True)
quantity = serializers.IntegerField()
price = serializers.DecimalField(max_digits=10, decimal_places=2)
total_price = serializers.DecimalField(max_digits=10, decimal_places=2)
class CartSerializer(serializers.Serializer):
items = CartItemSerializer(many=True, read_only=True)
total_price = serializers.DecimalField(max_digits=10, decimal_places=2)
class CartAddProductSerializer(serializers.Serializer):
product_id = serializers.IntegerField()
quantity = serializers.IntegerField(min_value=0, default=1)
override_quantity = serializers.BooleanField(required=False, default=False)