from django.db import models from django.contrib.auth import get_user_model from common.models import NameSlugModel, BaseModel from accounts.models import Company User = get_user_model() class ContractTemplate(NameSlugModel): body = models.TextField(verbose_name='متن قرارداد') company = models.ForeignKey(Company, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='شرکت') class Meta: verbose_name = 'قالب قرارداد' verbose_name_plural = 'قالب‌های قرارداد' def __str__(self): return self.name class ContractInstance(BaseModel): process_instance = models.ForeignKey('processes.ProcessInstance', on_delete=models.CASCADE, related_name='contracts', verbose_name='نمونه فرآیند') template = models.ForeignKey(ContractTemplate, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='قالب مورد استفاده') rendered_body = models.TextField(verbose_name='متن نهایی قرارداد') approved = models.BooleanField(default=False, verbose_name='تایید شده') approved_at = models.DateTimeField(null=True, blank=True, verbose_name='تاریخ تایید') created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='ایجاد کننده') class Meta: verbose_name = 'قرارداد' verbose_name_plural = 'قراردادها' ordering = ['-created'] def __str__(self): return f"Contract for {self.process_instance}"