import uuid from .choices import * from apps.user.models import User class PaymentRecord(models.Model): user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='payment_records') pay_type = models.IntegerField( choices=PaymentType.choices, verbose_name="付费类型") activity_type = models.IntegerField( choices=PaymentActivityType.choices, verbose_name="活动类型") pay_amount = models.IntegerField(verbose_name="付费金额") pay_time = models.DateTimeField(verbose_name="付费时间") expire_time = models.DateTimeField(verbose_name="到期时间") create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: db_table = "py_payment_record" verbose_name = "付费记录" verbose_name_plural = verbose_name ordering = ['-create_time'] class Activity(models.Model): user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='activities', db_index=True) template = models.ForeignKey('Activity', on_delete=models.DO_NOTHING, verbose_name="模板", db_constraint=False, related_name='children', null=True, blank=True) title = models.CharField(max_length=100, verbose_name="标题") remark = models.TextField(verbose_name="备注", null=True, blank=True) create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") pv = models.IntegerField(verbose_name="pv", default=0) # business_domain = models.ForeignKey('Domain', to_field='domain', db_constraint=False, on_delete=models.DO_NOTHING, # verbose_name='业务域名', related_name='business_activities', null=True, # blank=True, # db_column='business_domain') # short_chain_domain = models.ForeignKey('Domain', to_field='domain', db_constraint=False, # on_delete=models.DO_NOTHING, null=True, blank=True, # verbose_name='短链域名', related_name='short_chain_activities', # db_column='short_chain_domain') domain = models.ForeignKey('Domain', db_constraint=False, on_delete=models.DO_NOTHING, verbose_name='业务域名', related_name='activities', null=True, blank=True) business_domain = models.CharField( max_length=100, verbose_name="业务域名", null=True, blank=True) short_chain_domain = models.CharField( max_length=100, verbose_name="短链域名", null=True, blank=True) activity_type = models.IntegerField(choices=ActivityType.choices, verbose_name="活动类型") link_type = models.IntegerField(choices=ActivityLinkType.choices, verbose_name="链接类型") is_top = models.BooleanField(default=False, verbose_name="是否置顶") create_json = models.JSONField( verbose_name="创建json", null=True, blank=True) request_json = models.JSONField( verbose_name="请求json", null=True, blank=True) response_json = models.JSONField( verbose_name="响应json", null=True, blank=True) platform_id = models.IntegerField( verbose_name="平台id", null=True, blank=True) is_quick_code = models.BooleanField(default=False, verbose_name="是否是快码") is_delete = models.BooleanField(default=False, verbose_name="是否删除") corpid = models.CharField(max_length=32, verbose_name="企业微信corpid", null=True, blank=True) externaluserid = models.CharField( max_length=32, verbose_name="外部联系人id", null=True, blank=True) tklexpiretime = models.DateTimeField( verbose_name="淘口令过期时间", null=True, blank=True) class Meta: db_table = 'py_activity' verbose_name = '活动表' ordering = ['-create_time'] def add_activity_history(self): activity_history = ActivityHistory() activity_history.activity = self for field in self._meta.fields: if field.name in ['id']: continue if hasattr(activity_history, field.name): setattr(activity_history, field.name, getattr(self, field.name)) activity_history.save() class ActivityHistory(models.Model): activity = models.ForeignKey('Activity', on_delete=models.DO_NOTHING, verbose_name="活动", db_constraint=False, related_name='history') user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='history_activities', db_index=True) template = models.ForeignKey('Activity', on_delete=models.DO_NOTHING, verbose_name="模板", db_constraint=False, related_name='history_templates', null=True, blank=True) title = models.CharField(max_length=100, verbose_name="标题") remark = models.TextField(verbose_name="备注", null=True, blank=True) create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") pv = models.IntegerField(verbose_name="pv", default=0) domain = models.ForeignKey('Domain', db_constraint=False, on_delete=models.DO_NOTHING, verbose_name='业务域名', related_name='history_activities', null=True, blank=True) business_domain = models.CharField( max_length=100, verbose_name="业务域名", null=True, blank=True) short_chain_domain = models.CharField( max_length=100, verbose_name="短链域名", null=True, blank=True) activity_type = models.IntegerField(choices=ActivityType.choices, verbose_name="活动类型") link_type = models.IntegerField(choices=ActivityLinkType.choices, verbose_name="链接类型") is_top = models.BooleanField(default=False, verbose_name="是否置顶") create_json = models.JSONField( verbose_name="创建json", null=True, blank=True) request_json = models.JSONField( verbose_name="请求json", null=True, blank=True) response_json = models.JSONField( verbose_name="响应json", null=True, blank=True) platform_id = models.IntegerField( verbose_name="平台id", null=True, blank=True) is_quick_code = models.BooleanField(default=False, verbose_name="是否是快码") is_delete = models.BooleanField(default=False, verbose_name="是否删除") class Meta: db_table = 'py_activity_history' verbose_name = '历史表' ordering = ['-create_time'] class Domain(models.Model): user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='domains', db_index=True ) domain = models.CharField( max_length=100, verbose_name="域名", null=True, blank=True) business_type = models.IntegerField( verbose_name="业务类型", choices=DomainBusinessType.choices) is_system = models.BooleanField(verbose_name="是否是系统", default=False) domain_type = models.IntegerField( verbose_name="域名类型", choices=DomainType.choices) app_key = models.CharField( max_length=100, verbose_name="app_key", null=True, blank=True) secret = models.CharField( max_length=100, verbose_name="secret", null=True, blank=True) is_delete = models.BooleanField(default=False, verbose_name="是否删除") create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: db_table = 'py_domain' verbose_name = '域名表' ordering = ['-create_time'] class Authorization(models.Model): name = models.CharField(max_length=100, verbose_name="名称") remark = models.TextField(verbose_name="备注", blank=True, null=True) cookie_key = models.CharField( verbose_name="cookie key", max_length=32, null=True, blank=True, default=lambda: uuid.uuid4().hex) user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='authorizations', db_index=True) platform_type = models.IntegerField( verbose_name="平台类型", choices=AuthorizationPlatformType.choices) uid = models.CharField( max_length=100, verbose_name="平台uid", null=True, blank=True) # authorization_type = models.IntegerField( # verbose_name="授权类型", choices=AuthorizationType.choices) account = models.CharField( max_length=100, verbose_name="账号", null=True, blank=True) password = models.CharField( max_length=100, verbose_name="密码", null=True, blank=True) app_key_secret_info = models.JSONField( null=True, blank=True, verbose_name="app_key_secret授权信息") cookie_info = models.JSONField( null=True, blank=True, verbose_name="cookie授权信息") auth_info = models.JSONField(null=True, blank=True, verbose_name="授权信息") is_delete = models.BooleanField(default=False, verbose_name="是否删除") create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") cookie_update_time = models.DateTimeField( null=True, blank=True, verbose_name="cookie更新时间") auth_update_time = models.DateTimeField( null=True, blank=True, verbose_name="授权更新时间") app_key_secret_update_time = models.DateTimeField( null=True, blank=True, verbose_name="授权更新时间") cookie_warning_setting = models.IntegerField(verbose_name='cookie报警设置', null=True, blank=True) cookie_check_result = models.IntegerField(verbose_name='cookie检测结果', null=True, blank=True, choices=AuthorizationCookieCheckResultChoices.choices) cookie_check_time = models.DateTimeField(verbose_name='cookie检测时间', null=True, blank=True) class Meta: db_table = 'py_authorization' verbose_name = '授权表' ordering = ['-create_time'] class ComplaintPageRecord(models.Model): user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='complaint_page_records', db_index=True) activity = models.ForeignKey('Activity', on_delete=models.DO_NOTHING, verbose_name="活动", db_constraint=False, related_name='complaint_page_records', db_index=True) info = models.JSONField(null=True, blank=True, verbose_name="投诉信息") create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: db_table = 'py_complaint_page_record' verbose_name = '投诉页记录' ordering = ['-create_time'] class QuickCode(models.Model): user = models.ForeignKey( User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='quick_codes', db_index=True) activity = models.ForeignKey('Activity', on_delete=models.DO_NOTHING, verbose_name="活动", db_constraint=False, related_name='quick_codes', db_index=True) create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") create_method = models.IntegerField( choices=QuickCodeCreateMethodType.choices, default=QuickCodeCreateMethodType.MANUAL, verbose_name="创建方式") quick_code_url = models.CharField( max_length=255, null=True, blank=True, verbose_name="快码url") converted_url = models.CharField( max_length=255, null=True, blank=True, verbose_name="被转链url") quick_code_type = models.IntegerField( choices=QuickCodeType.choices, default=QuickCodeType.OFFICIAL, verbose_name="快码类型") class Meta: db_table = 'py_quick_code' verbose_name = '快码记录' ordering = ['-create_time']