operations_project/apps/feishu/models.py

75 lines
3.7 KiB
Python
Raw Permalink Normal View History

2025-05-07 18:01:48 +08:00
# apps/feishu/models.py
from django.db import models
from django.utils import timezone
import uuid
class FeishuCreator(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
record_id = models.CharField(max_length=100, unique=True, verbose_name='飞书记录ID')
# 对接人信息
contact_person = models.CharField(max_length=50, blank=True, verbose_name='对接人')
# 基本账号信息
handle = models.TextField(blank=True, verbose_name='Handle')
tiktok_url = models.TextField(blank=True, verbose_name='链接')
fans_count = models.CharField(max_length=50, blank=True, verbose_name='粉丝数')
gmv = models.CharField(max_length=100, blank=True, verbose_name='GMV')
# 联系方式
email = models.EmailField(blank=True, verbose_name='邮箱')
phone = models.CharField(max_length=50, blank=True, verbose_name='手机号|WhatsApp')
# 账号属性和报价
account_type = models.CharField(max_length=50, blank=True, verbose_name='账号属性')
price_quote = models.TextField(blank=True, verbose_name='报价')
response_speed = models.CharField(max_length=50, blank=True, verbose_name='回复速度')
# 合作相关
cooperation_intention = models.CharField(max_length=50, blank=True, verbose_name='合作意向')
payment_method = models.CharField(max_length=50, blank=True, verbose_name='支付方式')
payment_account = models.CharField(max_length=100, blank=True, verbose_name='收款账号')
address = models.TextField(blank=True, verbose_name='收件地址')
has_ooin = models.CharField(max_length=10, blank=True, verbose_name='签约OOIN?')
# 渠道和进度
source = models.CharField(max_length=100, blank=True, verbose_name='渠道来源')
contact_status = models.CharField(max_length=50, blank=True, verbose_name='建联进度')
cooperation_brands = models.JSONField(default=list, blank=True, verbose_name='合作品牌')
# 品类信息
system_categories = models.CharField(max_length=100, blank=True, verbose_name='系统展示的带货品类')
actual_categories = models.CharField(max_length=100, blank=True, verbose_name='实际高播放量带货品类')
human_categories = models.CharField(max_length=100, blank=True, verbose_name='达人标想要货品类')
# 其他信息
creator_base = models.CharField(max_length=100, blank=True, verbose_name='达人base')
notes = models.TextField(blank=True, verbose_name='父记录')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
updated_at = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
verbose_name = '创作者数据'
2025-05-20 15:57:10 +08:00
verbose_name_plural = '创作者数据'
class FeishuTableMapping(models.Model):
"""
飞书多维表格与数据库表的映射关系
"""
id = models.AutoField(primary_key=True)
app_token = models.CharField(max_length=100, verbose_name='应用令牌')
table_id = models.CharField(max_length=100, verbose_name='表格ID')
table_url = models.TextField(verbose_name='表格URL')
table_name = models.CharField(max_length=100, verbose_name='数据库表名')
feishu_table_name = models.CharField(max_length=255, blank=True, null=True, verbose_name='飞书表格名称')
last_sync_time = models.DateTimeField(auto_now=True, verbose_name='最后同步时间')
total_records = models.IntegerField(default=0, verbose_name='总记录数')
class Meta:
verbose_name = '飞书表格映射'
verbose_name_plural = '飞书表格映射'
unique_together = ('app_token', 'table_id')
def __str__(self):
return f"{self.feishu_table_name or self.table_name} ({self.table_id})"