import uuid from .choices import * from ..warning.models import WarningSetting class QcCorpinfo(models.Model): id = models.AutoField(primary_key=True) uid = models.IntegerField(verbose_name='用户id') corpname = models.CharField(max_length=128, verbose_name='自建应用名称') corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') agentid = models.CharField( max_length=128, verbose_name='自建应用agentid', null=True, blank=True) appsecret = models.CharField(max_length=128, verbose_name='自建应用密钥', null=True, blank=True) token = models.CharField(verbose_name='客户联系回调配置token', max_length=128, null=True, blank=True) encodingaeskey = models.CharField( max_length=128, verbose_name='客户联系回调配置EncodingAesKey', null=True, blank=True) ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True) utime = models.DateTimeField(verbose_name='更新时间', auto_now=True) callbackstatus = models.IntegerField( verbose_name='客户联系回调验证状态', choices=QcCorpInfoCallbackStatusChoices.choices, default=QcCorpInfoCallbackStatusChoices.UN_VALIDATE) callback_validate_time = models.DateTimeField(null=True, blank=True, verbose_name='回调验证时间') business_type = models.IntegerField( verbose_name='业务类型', choices=QcCorpInfoBusinessTypeChoices.choices) taggroupid = models.CharField( max_length=32, verbose_name='标签组id', null=True, blank=True) settletaggroupid = models.CharField( max_length=32, verbose_name='结算标签组id', null=True, blank=True) class Meta: db_table = 'pb_corpinfo' verbose_name_plural = 'Qc Corpinfo' ordering = ['-ctime'] unique_together = ('agentid', 'corpid', 'uid', 'business_type') def to_dict(self, fields=None): if fields: return { field: getattr(self, field) for field in fields } return { 'id': self.id, 'uid': self.uid, 'corpname': self.corpname, 'corpid': self.corpid, 'agentid': self.agentid, 'appsecret': self.appsecret, 'token': self.token, 'encodingaeskey': self.encodingaeskey, 'ctime': self.ctime, 'utime': self.utime, 'callbackstatus': self.callbackstatus, 'callback_validate_time': self.callback_validate_time, 'business_type': self.business_type, 'taggroupid': self.taggroupid, 'settletaggroupid': self.settletaggroupid, } class QcQrcodes(models.Model): id = models.BigAutoField(primary_key=True) uid = models.IntegerField(verbose_name='用户Id') corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') agentid = models.CharField( max_length=128, verbose_name='自建应用agentid', null=True, blank=True) name = models.CharField(max_length=64, verbose_name='名称') configid = models.CharField(max_length=64, verbose_name='企微二维码配置id') qrcodeurl = models.CharField(max_length=128, verbose_name='二维码地址') skipverify = models.IntegerField(verbose_name='自动通过验证', default=0) isautoremark = models.IntegerField(verbose_name='自动打标签', default=0) remark = models.CharField( max_length=128, verbose_name='备注模板', null=True, blank=True) userids = models.JSONField(verbose_name='活码成员') checkminutes = models.IntegerField(verbose_name='检测间隔分钟') lastchecktime = models.DateTimeField( verbose_name='最近检测时间', null=True, blank=True) isneedwelcome = models.IntegerField(verbose_name='是否需要欢迎语', default=0) welcomecontent = models.JSONField(verbose_name='欢迎语模板', null=True, blank=True) state = models.CharField(max_length=50, verbose_name='二维码自定义参数,回调唯一标识') isautotag = models.IntegerField(verbose_name='自动打标签') tags = models.JSONField(verbose_name='标签', null=True, blank=True) ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True) utime = models.DateTimeField(verbose_name='更新时间', auto_now=True) offlinechecknum = models.IntegerField(verbose_name='同组进粉差()人时报警') warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False, verbose_name='报警配置', related_name='qrcodes', null=True, blank=True) class Meta: db_table = 'qc_qrcodes' verbose_name_plural = 'Qc Qrcodes' ordering = ['-ctime'] class QcQrcodesEditLog(models.Model): id = models.BigAutoField(primary_key=True) uid = models.IntegerField(verbose_name='用户Id') corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') agentid = models.CharField( max_length=128, verbose_name='自建应用agentid', null=True, blank=True) qrcodeid = models.BigIntegerField(verbose_name='二维码表主键') type = models.IntegerField( verbose_name='类型,0=手动,1=自动', choices=QcQrcodesEditLogTypeChoices.choices) content = models.CharField( max_length=255, verbose_name='修改内容', blank=True, null=True) detail = models.JSONField(verbose_name='详情说明', blank=True, null=True) userid = models.CharField(max_length=50, verbose_name="企业用户id") operatetime = models.DateTimeField(verbose_name='操作时间', auto_now_add=True) operatetype = models.IntegerField( verbose_name='操作类型', choices=QcQrcodesEditLogOperateTypeChoices.choices) class Meta: db_table = 'qc_qrcodes_editlog' verbose_name = 'qc_qrcodes_editlog' verbose_name_plural = 'qc_qrcodes_editlogs' ordering = ['-operatetime'] class QcWechatbizeventAddcontact(models.Model): id = models.BigAutoField(primary_key=True, verbose_name="ID") uid = models.IntegerField(verbose_name="用户id", null=True, blank=True, default=0) corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') agentid = models.CharField( max_length=128, verbose_name='自建应用agentid', null=True, blank=True) fromusername = models.CharField( max_length=20, verbose_name="此事件该值固定为sys,表示该消息由系统生成") createtime = models.BigIntegerField(verbose_name="消息创建时间") msgtype = models.CharField(max_length=50, verbose_name="消息的类型,此时固定为event") event = models.CharField( max_length=50, verbose_name="事件的类型,此时固定为change_external_contact") changetype = models.CharField( max_length=50, verbose_name="此时固定为add_external_contact") userid = models.CharField(max_length=50, verbose_name="企业服务人员的UserID") externaluserid = models.CharField( max_length=50, verbose_name="外部联系人的userid") state = models.CharField(max_length=50, verbose_name="state参数") welcomecode = models.TextField(verbose_name="欢迎语code") ctime = models.DateTimeField(verbose_name="创建时间") isdelete = models.IntegerField(default=QcWechatbizeventAddcontactIsDeleteChoices.NOT_DELETE, verbose_name="是否删除", choices=QcWechatbizeventAddcontactIsDeleteChoices.choices) deletetime = models.DateTimeField(null=True, verbose_name="删除时间") qrcodeid = models.IntegerField(verbose_name='二维码id', default=0) # hook_starttime = models.DateTimeField(null=True, verbose_name="hook最近一次启动时间", blank=True) # hook_wstime = models.DateTimeField(null=True, verbose_name="hook最近一次websocket首发消息时间", blank=True) # hook_connecttime = models.DateTimeField(null=True, verbose_name="hook最近一次通信时间", blank=True) # isfirststart = models.BooleanField(verbose_name="是否首次启动", null=True, blank=True) class Meta: db_table = 'qc_wechatbizevent_addcontact' ordering = ['-ctime'] class QcWechatbizuserinfo(models.Model): id = models.BigAutoField(primary_key=True) corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') userid = models.CharField(max_length=50, verbose_name='UserId') username = models.CharField( max_length=50, verbose_name='用户名', null=True, blank=True) alias = models.CharField( max_length=64, verbose_name='别名', null=True, blank=True) department = models.JSONField(verbose_name='部门ID集合') maindepartment = models.IntegerField(verbose_name='主部门ID') telephone = models.CharField(max_length=20, verbose_name='座机') position = models.CharField(max_length=64, verbose_name='职位') external_position = models.CharField(max_length=64, verbose_name='对外职务') direct_leader = models.JSONField(verbose_name='直属上级userid') is_leader_in_dept = models.JSONField( verbose_name='表示在所在的部门内是否为部门负责人,数量与department一致') status = models.IntegerField( verbose_name='激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业', choices=QcWechatbizuserinfoStatusChoices.choices) ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True) utime = models.DateTimeField(verbose_name='更新时间', auto_now=True) limitaddusercount = models.IntegerField( verbose_name='每天限制加好友人数', null=True, blank=True, default=0) totallimitaddusercount = models.IntegerField( default=0, verbose_name='总限制加好友人数') class Meta: db_table = 'qc_wechatbizuserinfo' ordering = ['-ctime'] class QcSendCorpMedia(models.Model): id = models.BigAutoField(primary_key=True) uid = models.IntegerField(verbose_name='用户Id') corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') agentid = models.CharField( max_length=128, verbose_name='自建应用agentid', null=True, blank=True) corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') url = models.CharField(max_length=128, verbose_name='文件地址') media_id = models.CharField(max_length=128, verbose_name='媒体文件id') utime = models.DateTimeField(verbose_name='更新时间', auto_now=True) media_type = models.IntegerField( verbose_name='媒体文件类型', default=QcSendCorpMediaTypeChoices.IMAGE, choices=QcSendCorpMediaTypeChoices.choices) sendtype = models.IntegerField( verbose_name='发送类型', choices=QcSendCorpMediaSendTypeChoices.choices) sourcetype = models.IntegerField( verbose_name='发送类型', choices=QcSendCorpSourceTypeChoices.choices) class Meta: db_table = 'qc_sendcorpmedia'