100 lines
2.1 KiB
Python
100 lines
2.1 KiB
Python
from rest_framework import serializers
|
|
from shop.models import Product, ProductPrice, Customer, Tax, OrderLine, Order
|
|
|
|
|
|
class ProductSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Product
|
|
fields = (
|
|
"name",
|
|
"description",
|
|
"stock",
|
|
"unit",
|
|
)
|
|
|
|
|
|
class ProductPriceSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ProductPrice
|
|
fields = (
|
|
"price",
|
|
"date",
|
|
"product",
|
|
)
|
|
|
|
|
|
class CustomerSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Customer
|
|
fields = (
|
|
"vat_id",
|
|
"first_name",
|
|
"last_name",
|
|
"email",
|
|
"address",
|
|
"city",
|
|
"state",
|
|
"country",
|
|
"zip",
|
|
)
|
|
|
|
|
|
class TaxSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Tax
|
|
fields = (
|
|
"code",
|
|
"value",
|
|
)
|
|
|
|
|
|
class OrderSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Order
|
|
fields = (
|
|
"uuid",
|
|
"creation_date",
|
|
"last_modification_date",
|
|
"base_total",
|
|
"total",
|
|
"customer",
|
|
"billing_address",
|
|
"billing_city",
|
|
"billing_state",
|
|
"billing_country",
|
|
"billing_zip",
|
|
"shipping_address",
|
|
"shipping_city",
|
|
"shipping_state",
|
|
"shipping_country",
|
|
"shipping_zip",
|
|
"contact_phone",
|
|
)
|
|
read_only_fields = (
|
|
"uuid",
|
|
"base_total",
|
|
"total",
|
|
)
|
|
|
|
|
|
class OrderLineSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = OrderLine
|
|
fields = (
|
|
"product",
|
|
"quantity",
|
|
"order",
|
|
"price",
|
|
"base_total",
|
|
"total",
|
|
"taxes",
|
|
"tax_value",
|
|
)
|
|
read_only_fields = (
|
|
"price",
|
|
"base_total",
|
|
"total",
|
|
"taxes",
|
|
"tax_value",
|
|
)
|