from django.db import models class Customer(models.Model): class Meta: permissions = [ ("AddCustomer", "AddCustomer"), ("DelCustomer", "DelCustomer"), ("EditCustomer", "EditCustomer"), ("ViewCustomer", "ViewCustomer") ] name_family = models.CharField(max_length=200) address = models.CharField(max_length=200) phone1 = models.CharField(max_length=20, default='') phone2 = models.CharField(max_length=20, default='', null=True, blank=True) phone3 = models.CharField(max_length=20, default='', null=True, blank=True) idCode = models.CharField(max_length=20, default='', null=True, blank=True) installDate = models.DateField(auto_now_add=True) create_date = models.DateTimeField(auto_now_add=True) last_bazdid_dt = models.DateTimeField(null=True, blank=True) laghv_bazdid = models.BooleanField(null=True, blank=True, default=False) # فیلد جدید برای حذف نرم (بدون تداخل با داده‌های قبلی) is_active = models.BooleanField(default=True, null=True, blank=True, help_text="وضعیت فعالیت مشتری") def __str__(self): return self.name_family # بازنویسی متد حذف: جلوگیری از فاجعه در دیتابیس def delete(self, *args, **kwargs): # به جای حذف فیزیکی که انبار و فاکتورها را نابود می‌کند، مشتری را غیرفعال می‌کنیم self.is_active = False self.save() class PhoneNumber(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='phones') title = models.CharField(max_length=50, default='تلفن', blank=True, null=True, help_text="عنوان شماره (مثل: موبایل پدر)") phone_number = models.CharField(max_length=20) def __str__(self): return f"{self.title}: {self.phone_number}"