from django.db import models from django.contrib.auth import get_user_model from common.models import BaseModel User = get_user_model() class CertificateTemplate(BaseModel): title = models.CharField(max_length=200, verbose_name='عنوان') body = models.TextField(verbose_name='متن قالب (با جایگزین‌ها)') company = models.ForeignKey('accounts.Company', on_delete=models.SET_NULL, null=True, blank=True, verbose_name='شرکت صادر کننده') is_active = models.BooleanField(default=True, verbose_name='فعال') class Meta: verbose_name = 'قالب گواهی' verbose_name_plural = 'قالب‌های گواهی' def __str__(self): return self.title class CertificateInstance(BaseModel): process_instance = models.ForeignKey('processes.ProcessInstance', on_delete=models.CASCADE, related_name='certificates', verbose_name='نمونه فرآیند') template = models.ForeignKey(CertificateTemplate, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='قالب') rendered_title = models.CharField(max_length=250, verbose_name='عنوان رندر شده') rendered_body = models.TextField(verbose_name='متن رندر شده') issued_at = models.DateField(auto_now_add=True, verbose_name='تاریخ صدور') approved = models.BooleanField(default=False, verbose_name='تایید شده') approved_at = models.DateTimeField(null=True, blank=True, verbose_name='تاریخ تایید') class Meta: verbose_name = 'گواهی' verbose_name_plural = 'گواهی‌ها' def __str__(self): return f"گواهی {self.process_instance.code}"