haha
This commit is contained in:
@@ -197,6 +197,65 @@ class SystemConfig(models.Model):
|
||||
return self.key
|
||||
|
||||
|
||||
class FollowUpConfig(models.Model):
|
||||
"""复聊配置表。"""
|
||||
name = models.CharField(max_length=128, verbose_name="配置名称")
|
||||
position = models.CharField(max_length=64, verbose_name="岗位类型")
|
||||
is_active = models.BooleanField(default=True, verbose_name="是否启用")
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||||
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||||
|
||||
class Meta:
|
||||
db_table = "follow_up_config"
|
||||
verbose_name = "复聊配置"
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.position})"
|
||||
|
||||
|
||||
class FollowUpScript(models.Model):
|
||||
"""复聊话术表(支持多轮回复)。"""
|
||||
config_id = models.IntegerField(verbose_name="关联的复聊配置ID")
|
||||
day_number = models.IntegerField(verbose_name="第几天(1=第一天,2=第二天,0=往后一直)")
|
||||
content = models.TextField(verbose_name="话术内容")
|
||||
interval_hours = models.IntegerField(default=24, verbose_name="间隔小时数")
|
||||
order = models.IntegerField(default=0, verbose_name="排序")
|
||||
is_active = models.BooleanField(default=True, verbose_name="是否启用")
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||||
|
||||
class Meta:
|
||||
db_table = "follow_up_script"
|
||||
verbose_name = "复聊话术"
|
||||
verbose_name_plural = verbose_name
|
||||
ordering = ['config_id', 'day_number', 'order']
|
||||
|
||||
def __str__(self):
|
||||
return f"第{self.day_number}天 - {self.content[:20]}"
|
||||
|
||||
|
||||
class FollowUpRecord(models.Model):
|
||||
"""复聊记录表(记录每次发送的话术和回复)。"""
|
||||
contact_id = models.IntegerField(verbose_name="关联的联系人ID")
|
||||
config_id = models.IntegerField(verbose_name="使用的复聊配置ID")
|
||||
script_id = models.IntegerField(verbose_name="使用的话术ID")
|
||||
day_number = models.IntegerField(verbose_name="第几天")
|
||||
content = models.TextField(verbose_name="发送的内容")
|
||||
sent_at = models.DateTimeField(auto_now_add=True, verbose_name="发送时间")
|
||||
got_reply = models.BooleanField(default=False, verbose_name="是否得到回复")
|
||||
reply_content = models.TextField(default="", blank=True, verbose_name="回复内容")
|
||||
replied_at = models.DateTimeField(null=True, blank=True, verbose_name="回复时间")
|
||||
|
||||
class Meta:
|
||||
db_table = "follow_up_record"
|
||||
verbose_name = "复聊记录"
|
||||
verbose_name_plural = verbose_name
|
||||
ordering = ['-sent_at']
|
||||
|
||||
def __str__(self):
|
||||
return f"联系人{self.contact_id} - 第{self.day_number}天"
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════
|
||||
# Pydantic 内存模型(非数据库,用于 Worker 运行时状态与任务调度)
|
||||
# ══════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user