From 8eb5b39a995ba15015591d8d18e5eca91c79247a Mon Sep 17 00:00:00 2001 From: vickytechkey Date: Sun, 4 Oct 2026 17:17:02 +0530 Subject: [PATCH] feat: add DRF serializers for CRM admin, suppliers, products, wallets, and orders --- crm/serializers.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crm/serializers.py b/crm/serializers.py index 56ca716..4eecf00 100644 --- a/crm/serializers.py +++ b/crm/serializers.py @@ -50,8 +50,24 @@ class SupplierProfileSerializer(serializers.ModelSerializer): model = SupplierProfile fields = ['id', 'name', 'email', 'phone', 'gstin', 'status', 'joined_at'] +import re + +CDN_DOMAIN = "https://d1zlxfmkt834bg.cloudfront.net" + +def get_cdn_url(image_url): + if not image_url: + return image_url + if 'betasupplierdocumentstorage' in image_url or 's3.ap-south-2.amazonaws.com' in image_url or '.s3.amazonaws.com' in image_url: + path = re.sub(r'^https?://[^/]+/', '', image_url) + return f"{CDN_DOMAIN}/{path}" + return image_url + class ProductSerializer(serializers.ModelSerializer): name = serializers.CharField(read_only=True) + image = serializers.SerializerMethodField() + + def get_image(self, obj): + return get_cdn_url(obj.image) supplier_name = serializers.CharField(source='supplier.name', read_only=True) supplier_status = serializers.CharField(source='supplier.status', read_only=True) supplier_phone = serializers.CharField(source='supplier.phone', read_only=True)