59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
from rest_framework import serializers
|
|
|
|
from apps.bizapps.models import Appointment, Customer, LedgerEntry, Product, StockMovement
|
|
|
|
|
|
class CustomerSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Customer
|
|
fields = ["id", "name", "phone", "email", "address", "notes", "updated_at"]
|
|
read_only_fields = ["updated_at"]
|
|
|
|
|
|
class LedgerEntrySerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = LedgerEntry
|
|
fields = ["id", "entry_type", "title", "amount", "category", "entry_date", "note", "updated_at"]
|
|
read_only_fields = ["updated_at"]
|
|
|
|
|
|
class ProductSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Product
|
|
fields = [
|
|
"id",
|
|
"name",
|
|
"sku",
|
|
"category",
|
|
"quantity",
|
|
"unit_price",
|
|
"low_stock_threshold",
|
|
"notes",
|
|
"updated_at",
|
|
]
|
|
read_only_fields = ["updated_at"]
|
|
|
|
|
|
class StockMovementSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = StockMovement
|
|
fields = ["id", "delta", "quantity_after", "note", "created_at"]
|
|
read_only_fields = fields
|
|
|
|
|
|
class AdjustStockSerializer(serializers.Serializer):
|
|
delta = serializers.FloatField()
|
|
note = serializers.CharField(max_length=255, required=False, allow_blank=True, default="")
|
|
|
|
def validate_delta(self, value):
|
|
if value == 0:
|
|
raise serializers.ValidationError("مقدار تغییر نمیتواند صفر باشد.")
|
|
return value
|
|
|
|
|
|
class AppointmentSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Appointment
|
|
fields = ["id", "customer_name", "customer_phone", "title", "start_at", "status", "notes", "updated_at"]
|
|
read_only_fields = ["updated_at"]
|