Files
shopship/apps/bizapps/api/serializers.py
T
2026-08-24 15:54:08 +03:30

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"]