ShopOrderModel fields and signal update

This commit is contained in:
Parsa Nazer
2025-12-11 13:14:46 +03:30
parent 88594f014d
commit f300fe1553
3 changed files with 146 additions and 0 deletions
+31
View File
@@ -259,6 +259,34 @@ class ShopOrderModel(models.Model):
"""
order = models.ForeignKey(OrderModel, on_delete=models.CASCADE, related_name='shop_orders')
shop = models.ForeignKey('account.ShopModel', on_delete=models.CASCADE, related_name='shop_orders')
# Customer Information
customer = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='مشتری')
customer_phone = models.CharField(max_length=12, verbose_name='شماره تلفن مشتری', blank=True)
customer_name = models.CharField(max_length=100, verbose_name='نام مشتری', blank=True)
# Delivery Address (ForeignKey + text backup)
address = models.ForeignKey(UserAddressModel, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='آدرس تحویل')
address_text = models.TextField(verbose_name='آدرس کامل', blank=True)
address_postal_code = models.CharField(max_length=10, verbose_name='کد پستی', blank=True)
address_phone = models.CharField(max_length=11, verbose_name='شماره تماس تحویل گیرنده', blank=True)
address_city = models.CharField(max_length=30, verbose_name='شهر', blank=True)
address_province = models.CharField(max_length=30, verbose_name='استان', blank=True)
address_recipient_name = models.CharField(max_length=100, verbose_name='نام تحویل گیرنده', blank=True)
# Order Status & Payment
STATUS_CHOICES = [
('ADMIN_PENDING', 'در انتظار تایید'),
('PENDING', 'درحال پردازش'),
('POSTED', 'ارسال شده'),
('RECEIVED', 'تحویل شده'),
('CANCELED', 'لغو شده'),
('REFUNDED', 'مرجوع شده'),
]
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='ADMIN_PENDING', verbose_name='وضعیت سفارش')
is_paid = models.BooleanField(default=False, verbose_name='وضعیت پرداخت')
# Financial Details
subtotal = models.BigIntegerField(verbose_name='جمع جزئیات', default=0)
items_count = models.PositiveIntegerField(default=0)
discount_amount = models.BigIntegerField(default=0, verbose_name='تخفیف اختصاصی فروشگاه')
@@ -268,7 +296,10 @@ class ShopOrderModel(models.Model):
tax_amount = models.BigIntegerField(default=0, verbose_name='مالیات')
payable_amount = models.BigIntegerField(default=0, verbose_name='قابل پرداخت به فروشگاه')
is_settled = models.BooleanField(default=False, verbose_name='تسویه شده')
# Timestamps
created_at = models.DateTimeField(auto_now_add=True)
order_created_at = models.DateTimeField(null=True, blank=True, verbose_name='تاریخ ثبت سفارش اصلی')
class Meta:
verbose_name = 'سفارش به ازای فروشگاه'