from django.db import models from django.utils.translation import gettext_lazy as _ from api.core.models.trackable_model import TrackableModel class ProspectStep(TrackableModel): """ Model representing the prospection steps for a prospect. """ source_template_step = models.ForeignKey( "M2M_TemplateStep", verbose_name=_("étape source"), null=True, on_delete=models.SET_NULL, ) prospect = models.ForeignKey( "Prospect", verbose_name=_("prospect"), on_delete=models.PROTECT, ) contact_person = models.ForeignKey( "ContactPerson", verbose_name=_("contact"), null=True, blank=True, on_delete=models.PROTECT, ) contact_method = models.ForeignKey( "ContactMethod", null=True, blank=True, on_delete=models.PROTECT, ) step_type = models.ForeignKey( "StepType", on_delete=models.PROTECT, ) order = models.PositiveIntegerField() notes = models.TextField(blank=True) done = models.BooleanField(default=False) done_datetime = models.DateTimeField(null=True, blank=True) class Meta: verbose_name = _("Étape de prospection du prospect") verbose_name_plural = _("Étapes de prospection du prospect") constraints = [ models.UniqueConstraint( fields=["prospect", "order"], name="uniq_prospect_step_order", ), ] ordering = ["prospect_id", "order"]