哈哈
This commit is contained in:
@@ -76,6 +76,98 @@ class AuthToken(models.Model):
|
||||
return self.username
|
||||
|
||||
|
||||
class FilterConfig(models.Model):
|
||||
"""筛选条件配置表。"""
|
||||
name = models.CharField(max_length=128, verbose_name="配置名称")
|
||||
age_min = models.IntegerField(default=18, verbose_name="最小年龄")
|
||||
age_max = models.IntegerField(default=60, verbose_name="最大年龄")
|
||||
gender = models.CharField(max_length=32, default="不限", verbose_name="性别")
|
||||
education = models.CharField(max_length=32, default="不限", verbose_name="学历要求")
|
||||
activity = models.CharField(max_length=32, default="不限", verbose_name="活跃度")
|
||||
positions = models.JSONField(default=list, blank=True, verbose_name="期望岗位列表")
|
||||
greeting_min = models.IntegerField(default=5, verbose_name="打招呼最少条数/天")
|
||||
greeting_max = models.IntegerField(default=20, verbose_name="打招呼最多条数/天")
|
||||
rest_minutes = models.IntegerField(default=30, verbose_name="每轮休息分钟")
|
||||
collection_min = models.IntegerField(default=10, verbose_name="收藏最少个数/天")
|
||||
collection_max = models.IntegerField(default=50, verbose_name="收藏最多个数/天")
|
||||
message_interval = models.IntegerField(default=30, 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 = "filter_config"
|
||||
verbose_name = "筛选配置"
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class ChatScript(models.Model):
|
||||
"""复聊话术表。"""
|
||||
SCRIPT_TYPE_CHOICES = [
|
||||
("first", "首次回复"),
|
||||
("followup", "跟进回复"),
|
||||
("wechat", "微信交换"),
|
||||
("closing", "结束语"),
|
||||
]
|
||||
position = models.CharField(max_length=64, verbose_name="岗位类型")
|
||||
script_type = models.CharField(max_length=32, choices=SCRIPT_TYPE_CHOICES, verbose_name="话术类型")
|
||||
content = models.TextField(verbose_name="话术内容")
|
||||
keywords = models.CharField(max_length=256, default="", blank=True, 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 = "chat_script"
|
||||
verbose_name = "复聊话术"
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.position} - {self.get_script_type_display()}"
|
||||
|
||||
|
||||
class ContactRecord(models.Model):
|
||||
"""联系人记录表(招聘过程中联系过的候选人)。"""
|
||||
name = models.CharField(max_length=64, verbose_name="姓名")
|
||||
position = models.CharField(max_length=64, default="", verbose_name="岗位")
|
||||
contact = models.CharField(max_length=64, default="", verbose_name="联系方式")
|
||||
reply_status = models.CharField(max_length=32, default="未回复", verbose_name="回复状态")
|
||||
wechat_exchanged = models.BooleanField(default=False, verbose_name="是否交换微信")
|
||||
account_id = models.IntegerField(null=True, blank=True, verbose_name="关联账号 ID")
|
||||
worker_id = models.CharField(max_length=64, default="", verbose_name="Worker 标识")
|
||||
notes = models.TextField(default="", blank=True, verbose_name="备注")
|
||||
contacted_at = models.DateTimeField(null=True, blank=True, verbose_name="联系时间")
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||||
|
||||
class Meta:
|
||||
db_table = "contact_record"
|
||||
verbose_name = "联系记录"
|
||||
verbose_name_plural = verbose_name
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.position})"
|
||||
|
||||
|
||||
class SystemConfig(models.Model):
|
||||
"""系统配置键值表。"""
|
||||
key = models.CharField(max_length=64, unique=True, verbose_name="配置项")
|
||||
value = models.TextField(default="", verbose_name="配置值")
|
||||
description = models.CharField(max_length=256, default="", blank=True, verbose_name="描述")
|
||||
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||||
|
||||
class Meta:
|
||||
db_table = "system_config"
|
||||
verbose_name = "系统配置"
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return self.key
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════
|
||||
# Pydantic 内存模型(非数据库,用于 Worker 运行时状态与任务调度)
|
||||
# ══════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user