from django.db import models from django.contrib.auth import get_user_model from django.core.validators import RegexValidator userModel = get_user_model() class ArticleType(models.Model): name = models.CharField(max_length=50) class Article(models.Model): class Meta: permissions = [ ("ViewReportMali", "ViewReportMali") ] debit = models.IntegerField(null=True, blank=True) credit = models.IntegerField(null=True, blank=True) customer = models.ForeignKey('Customer', on_delete=models.CASCADE, null=True, blank=True) factor = models.ForeignKey('Factor', on_delete=models.CASCADE, null=True, blank=True) type = models.CharField(max_length=50, null=True, blank=True) typePy = models.CharField(max_length=50, null=True, blank=True) checkNum = models.IntegerField(null=True, blank=True) nahvePardakht = models.CharField(max_length=50, null=True, blank=True) sarresid = models.DateTimeField(null=True, blank=True) payStatus = models.CharField(max_length=50, null=True, blank=True) createdDT = models.DateTimeField(auto_now_add=True) changeDT = models.DateTimeField(auto_now=True) desc = models.CharField(max_length=200) user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) class Sarresid(models.Model): customer = models.ForeignKey('Customer', on_delete=models.CASCADE, null=True, blank=True) createdDT = models.DateTimeField(auto_now_add=True) changeDT = models.DateTimeField(auto_now=True) price = models.IntegerField(null=False, blank=False) payStatus = models.CharField(max_length=50, null=True, blank=True) type = models.CharField(max_length=50, null=True, blank=True) factor = models.ForeignKey('Factor', on_delete=models.CASCADE, null=True, blank=True) sarresidDT = models.DateTimeField(null=True, blank=True) user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) desc = models.TextField(null=True, blank=True) # ---------------- فیلدهای استاندارد و ایمن‌شده چک ---------------- check_row_number = models.CharField( max_length=50, null=True, blank=True, verbose_name="شماره ردیف چک" ) check_sayyad_id = models.CharField( max_length=16, validators=[ RegexValidator(regex=r'^\d{16}$', message='شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.') ], null=True, blank=True, verbose_name="شناسه صیادی" ) check_owner_name = models.CharField( max_length=100, null=True, blank=True, verbose_name="نام مالک چک" ) check_owner_phone = models.CharField( max_length=11, validators=[ RegexValidator(regex=r'^\d{11}$', message='شماره تلفن باید ۱۱ رقم و فقط شامل اعداد باشد.') ], null=True, blank=True, verbose_name="تلفن مالک چک" )