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