class CouponRule(models.Model): """ 优惠券规则 """ owner = models.ForeignKey(User) name = models.CharField(max_length=20) #名称 valid_days = models.IntegerField(default=0) #过期天数 is_active = models.BooleanField(default=True) #是否可用 created_at = models.DateTimeField(auto_now_add=True) #添加时间 start_date = models.DateTimeField() #有效期开始时间 end_date = models.DateTimeField() #有效期结束时间 # v2 valid_restrictions = models.IntegerField(default=-1) #订单满多少可以使用规则 money = models.DecimalField() #金额 count = models.IntegerField(default=0) #发放总数量 remained_count = models.IntegerField(default=0) #剩余数量 limit_counts = models.IntegerField(default=0) #每人限领 limit_product = models.BooleanField(default=False) #限制指定商品 limit_product_id = models.CharField(max_length=2048, default=0) #限制指定商品ID remark = models.TextField(default='') #备注 get_person_count = models.IntegerField(default=0) #领取人数 get_count = models.IntegerField(default=0) #领取次数 use_count = models.IntegerField(default=0) #使用次数 receive_rule = models.BooleanField(default=False) #领取规则,仅未下单用户可领取 class Meta(object): db_table = 'market_tool_coupon_rule'
class IntegralStrategySettings(models.Model): """ 积分策略配置 """ webapp_id = models.CharField(max_length=20) click_shared_url_increase_count_after_buy = models.IntegerField(verbose_name='点击分享链接为购买后的分享者增加的额度', default=0) click_shared_url_increase_count_before_buy = models.IntegerField(verbose_name='点击分享链接为未购买的分享者增加的额度', default=0) buy_increase_count_for_father = models.IntegerField(verbose_name='成为会员增加额度', default=0) increase_integral_count_for_brring_customer_by_qrcode = models.IntegerField(verbose_name='使用二维码带来用户增加的额度', default=0) integral_each_yuan = models.IntegerField(verbose_name='一元是多少积分', default=0) usable_integral_or_conpon = models.IntegerField(verbose_name='积分与优惠券可同时使用', default=USABLE_BOTH) #v2 be_member_increase_count = models.IntegerField(verbose_name='成为会员增加额度', default=0) order_money_percentage_for_each_buy = models.CharField(max_length=25, verbose_name="每次购物后,额外积分(以订单金额的百分比计算)", default="0.0") buy_via_offline_increase_count_for_author = models.IntegerField(verbose_name='线下会员购买为推荐者增加的额度', default=0) click_shared_url_increase_count = models.IntegerField(verbose_name='分享链接给好友点击', default=0) buy_award_count_for_buyer = models.IntegerField(verbose_name='购物返积分额度', default=0) buy_via_shared_url_increase_count_for_author = models.IntegerField(verbose_name='通过分享链接购买为分享者增加的额度', default=0) buy_via_offline_increase_count_percentage_for_author = models.CharField(max_length=25, verbose_name="线下会员购买为推荐者额外增加的额度(以订单金额的百分比计算)", default="0.0") use_ceiling = models.IntegerField(default=-1, verbose_name='订单积分抵扣上限') review_increase = models.IntegerField(default=0, verbose_name='商品好评送积分') is_all_conditions = models.BooleanField(default=False,verbose_name='自动升级条件') class Meta(object): db_table = 'member_integral_strategy_settings'
class ComponentInfo(models.Model): """ <xml><AppId><![CDATA[wx984abb2d00cc47b8]]></AppId> <CreateTime>1427710810</CreateTime> <InfoType><![CDATA[component_verify_ticket]]></InfoType> <ComponentVerifyTicket><![CDATA[Z8RBNjttRu3P5eM8rPe9TW3dA09yuAequP1BmbHhITxs8lZ- X-Gxwaegr5lcPkfJ4VAiRLiuLlCrhKmIz-oSpw]]></ComponentVerifyTicket> </xml> <xml><AppId><![CDATA[wx984abb2d00cc47b8]]></AppId> <CreateTime>1427710810</CreateTime> <InfoType><![CDATA[component_verify_ticket]]></InfoType> <ComponentVerifyTicket><![CDATA[Z8RBNjttRu3P5eM8rPe9TW3dA09yuAequP1BmbHhITxs8lZ- X-Gxwaegr5lcPkfJ4VAiRLiuLlCrhKmIz-oSpw]]></ComponentVerifyTicket> </xml> """ app_id = models.CharField(max_length=64) app_secret = models.CharField(max_length=64) component_verify_ticket = models.TextField() token = models.TextField() ase_key = models.TextField() last_update_time = models.DateTimeField(default=datetime.now()) component_access_token = models.TextField() is_active = models.BooleanField(default=True) access_token_update_time = models.DateTimeField(default=datetime.now()) verify_ticket_update_time = models.DateTimeField(default=datetime.now()) def __unicode__(self): return self.app_id class Meta(object): db_table = 'component_info' verbose_name = '第三方帐号信息' verbose_name_plural = '第三方帐号信息'
class WeizoomCardRule(models.Model): """ 微众卡规则 """ owner = models.ForeignKey(User) name = models.CharField(max_length=20, db_index=True) #名称 money = models.DecimalField(max_digits=65, decimal_places=2) #微众卡金额 count = models.IntegerField(default=0) #发放总数量 remark = models.CharField(max_length=20, db_index=True) #备注 expired_time = models.DateTimeField() #过期时间 valid_time_from = models.DateTimeField() #有效范围开始时间 valid_time_to = models.DateTimeField() #有效范围结束时间 created_at = models.DateTimeField(auto_now_add=True) #添加时间 card_type = models.IntegerField(default=WEIZOOM_CARD_EXTERNAL_USER) #微众卡类型 card_attr = models.IntegerField(default=0) #微众卡属性 shop_limit_list = models.CharField(max_length=2048, default='-1') #专属商家 shop_black_list = models.CharField(max_length=2048, default='-1') #不能使用微众卡的商家 is_new_member_special = models.BooleanField(default=False) #是否为新会员专属卡 valid_restrictions = models.DecimalField(max_digits=65, decimal_places=2) #订单满多少可以使用规则 class Meta(object): db_table = 'market_tool_weizoom_card_rule' verbose_name = '微众卡规则' verbose_name_plural = '微众卡规则'
class Session(models.Model): mpuser = models.ForeignKey(WeixinMpUser, related_name='owned_sessions') weixin_user = models.ForeignKey(WeixinUser, to_field='username', db_column='weixin_user_username') latest_contact_content = models.CharField(max_length=1024) #最后一次交互消息内容 latest_contact_created_at = models.DateTimeField( auto_now_add=True) #最后一次交互时间 is_latest_contact_by_viper = models.BooleanField( default=False) #最后一次交互是否是客户发出的 unread_count = models.IntegerField(default=0) #未读消息数 is_show = models.BooleanField(default=False) #是否显示(是否填充对应的WeixinUser) created_at = models.DateTimeField(auto_now_add=True) weixin_created_at = models.CharField(max_length=50) #微信平台提供的创建时间 retry_count = models.IntegerField(default=0) #重試次數 #add by bert at 20.0 message_id = models.IntegerField(default=0) #add by slzhu member_user_username = models.CharField(default='', max_length=100) member_message_id = models.IntegerField(default=0) member_latest_content = models.CharField(default='', max_length=1024) #粉丝最近一条消息 member_latest_created_at = models.CharField(default='', max_length=50) #粉丝最近一条消息时间 is_replied = models.BooleanField(default=False) #是否回复过 class Meta(object): ordering = ['-latest_contact_created_at'] db_table = 'weixin_message_session'
class WeizoomCard(models.Model): """ 微众卡存储模型 @note WeizoomCardHasAccount.account.id即owner_id """ owner = models.ForeignKey(User) target_user_id = models.IntegerField(default=0, verbose_name="微众卡发放目标") weizoom_card_rule = models.ForeignKey(WeizoomCardRule) status = models.IntegerField(default=WEIZOOM_CARD_STATUS_INACTIVE) #微众卡状态 weizoom_card_id = models.CharField(max_length=50) #微众卡号 money = models.DecimalField(max_digits=65, decimal_places=2) #剩余金额 password = models.CharField(max_length=50) #微众卡密码 expired_time = models.DateTimeField() #过期时间 is_expired = models.BooleanField(default=False) #是否过期 activated_at = models.DateTimeField(null=True) #激活时间 created_at = models.DateTimeField(auto_now_add=True) #添加时间 remark = models.CharField(max_length=20, db_index=True) #备注 activated_to = models.CharField(max_length=20) #申请人 department = models.CharField(max_length=20) #申请部门 active_card_user_id = models.IntegerField(default=1) #激活卡片人 class Meta(object): db_table = 'market_tool_weizoom_card' verbose_name = '微众卡' verbose_name_plural = '微众卡'
class WebApp(models.Model): owner = models.ForeignKey(User) appid = models.CharField(max_length=16) name = models.CharField(max_length=100, default='') class Meta(object): db_table = 'webapp'
class PageVisitDailyStatistics(models.Model): webapp_id = models.CharField(max_length=16) url_type = models.IntegerField(default=URL_TYPE_SPECIFIC, choices=USER_STATUSES) url = models.CharField(max_length=1024, default='') pv_count = models.IntegerField(default=0) #pv uv_count = models.IntegerField(default=0) #uv data_date = models.DateField() #统计日期 class Meta(object): db_table = 'webapp_page_visit_daily_statistics'
class OperationSettings(models.Model): """ 运营配置 """ owner = models.ForeignKey(User, unique=True) non_member_followurl = models.CharField(max_length=1024, default='') weshop_followurl = models.CharField(max_length=1024, default='') class Meta(object): db_table = 'account_operation_settings'
class PageVisitLog(models.Model): webapp_id = models.CharField(max_length=16) token = models.CharField(max_length=64, blank=True) url = models.CharField(max_length=1024) is_from_mobile_phone = models.BooleanField() create_date = models.DateField(auto_now_add=True) #访问日期 created_at = models.DateTimeField(auto_now_add=True) #访问时间 class Meta(object): db_table = 'webapp_page_visit_log'
class MpuserPreviewInfo(models.Model): """ 微信公众账号预览信息 """ mpuser = models.ForeignKey(WeixinMpUser) name = models.CharField(max_length=100) #预览显示的名字 image_path = models.CharField(max_length=500, default=DEFAULT_ICON) #预览显示的图片 class Meta(object): db_table = 'account_mpuser_preview_info'
class MemberClickedUrl(models.Model): url = models.CharField(max_length=1024) url_digest = models.CharField(max_length=32) #md5 mid = models.IntegerField() followed_mid = models.IntegerField() created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'member_clicked_url' verbose_name = '会员url点击记录' verbose_name_plural = '会员url点击记录'
class GaiaApp(models.Model): """ 【Gaia用】GaiaApp """ name = models.CharField(max_length=20, db_index=True) app_key = models.CharField(max_length=50, unique=True) app_secret = models.CharField(max_length=50) is_deleted = models.BooleanField(default=False) class Meta(object): db_table = "gaia_app"
class AccessToken(models.Model): app = models.ForeignKey(App) access_token = models.CharField(max_length=256) expires_in = models.CharField(max_length=100, verbose_name='expires_in') is_active = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) class Meta: db_table = 'access_token' verbose_name = 'access_token' verbose_name_plural = 'access_token'
class MemberBrowseProductRecord(models.Model): member = models.ForeignKey(Member) owner_id = models.IntegerField(default=0) #商家id product_id = models.IntegerField(default=0) #商品id referer = models.CharField(max_length=256, default='') #从哪个页面过来的 title = models.CharField(max_length=256, default='') #页面标题 url = models.TextField() created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'member_browse_product_record' verbose_name = '会员浏览商品详情记录' verbose_name_plural = '会员浏览商品详情记录'
class MessageAttachment(models.Model): """ 消息附件 """ # 消息id Message message = models.ForeignKey(Message) file_type = models.CharField(max_length=26) # 文档类型 file_name = models.CharField(max_length=1024) # 原始文件名 path = models.CharField(max_length=1024, default='') created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'message_attachment'
class ExpressDelivery(models.Model): owner = models.ForeignKey(User) display_index = models.IntegerField(default=1, db_index=True) # 显示的排序 name = models.CharField(max_length=1024, verbose_name='名称') express_number = models.CharField(max_length=1024, verbose_name='编号') express_value = models.CharField(max_length=1024, verbose_name='快递value') remark = models.TextField(default='', verbose_name='备注') created_at = models.DateTimeField(auto_now_add=True, verbose_name='添加时间') class Meta(object): db_table = 'mall_express_delivery' verbose_name = '物流名称' verbose_name_plural = '物流名称'
class WebAppUser(models.Model): """ WebApp的用户 """ token = models.CharField(max_length=100, default='') webapp_id = models.CharField(max_length=16) member_id = models.IntegerField(default=0) #会员记录的id has_purchased = models.BooleanField(default=False) #是否购买过 father_id = models.IntegerField(default=0) #会员记录的id created_at = models.DateTimeField(auto_now_add=True) #创建时间 class Meta(object): db_table = 'member_webapp_user'
class ExportJob(models.Model): woid = models.IntegerField() type = models.IntegerField(default=0) status = models.BooleanField(default=False) # 其实是表示是否完成的bool processed_count = models.IntegerField() # 已处理数量 count = models.IntegerField() # 总数量 is_download = models.BooleanField(default=False, verbose_name='是否下载') param = models.CharField(max_length=1024) file_path = models.CharField(max_length=256) update_at = models.DateTimeField(verbose_name='更新时间', auto_now=True) created_at = models.DateTimeField(verbose_name='创建时间') class Meta(object): db_table = 'export_job'
class MemberTag(models.Model): """ 表示会员的标签(分组) """ webapp_id = models.CharField(max_length=16) name = models.CharField(max_length=100) created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'member_tag' verbose_name = '会员分组' verbose_name_plural = '会员分组' DEFAULT_TAG_NAME = u'未分组'
class Message(models.Model): modules = models.IntegerField(default=MODULES['DATA']) # 选择模块 message_type = models.BooleanField(default=True) # 默认消息中心 title = models.CharField(max_length=128) # 标题名 file_url = models.CharField(max_length=256) # 上传文件地址 content = models.TextField() # 内容 file_type = models.BooleanField(default=True) # 上传类型(默认word) created_at = models.DateTimeField(auto_now_add=True) # 添加时间 owner = models.ForeignKey(User) class Meta(object): db_table = 'message_message' verbose_name = '系统消息' verbose_name_plural = '系统消息'
class ShipInfo(models.Model): """ 收货地址 """ webapp_user_id = models.IntegerField(db_index=True, default=0) ship_name = models.CharField(max_length=100) # 收货人姓名 ship_tel = models.CharField(max_length=100) # 收货人电话 ship_address = models.CharField(max_length=200) # 收货人地址 area = models.CharField(max_length=256) #地区 is_selected = models.BooleanField(default=True) # 是否选中,默认是选中 is_deleted = models.BooleanField(default=False) # 是否被删除 created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'member_ship_info'
class MemberIntegralLog(models.Model): member = models.ForeignKey(Member) webapp_user_id = models.IntegerField(default=0) event_type = models.CharField(max_length=64, verbose_name='引起积分变化事件类型') integral_count = models.IntegerField(default=0, verbose_name='积分量') follower_member_token = models.CharField(max_length=255, null=True, blank=True, verbose_name='所关注的会员的token') reason = models.CharField(max_length=255, default='') current_integral = models.CharField(default='0', max_length=255) manager = models.CharField(default='', max_length=255) created_at = models.DateTimeField(auto_now_add=True, verbose_name='记录时间') class Meta(object): db_table = 'member_integral_log' verbose_name = '积分日志' verbose_name_plural = '积分日志'
class AccessToken(models.Model): """ 【Gaia用】存储access token (Weapp不应访问此库) """ access_token = models.CharField( max_length=50, unique=True) # unique implies the creation of an index corp_id = models.CharField(max_length=50, default='') used_count = models.IntegerField(default=0) # 使用过次数 created_at = models.DateTimeField(auto_now_add=True) expire_time = models.DateTimeField() # 失效时间 app = models.ForeignKey(GaiaApp) is_active = models.BooleanField(default=True) class Meta(object): db_table = "access_token"
class MemberCardLog(models.Model): """ 会员卡记录,仅交易记录 下单 和 取消订单 """ member_card = models.ForeignKey(MemberCard) # member card id price = models.FloatField(default=0.0) # 浮动金额 trade_id = models.CharField(max_length=50, default="") # 支付流水号alter table member_card_log add column trade_id varchar(50) default ''; order_id = models.CharField(max_length=200, default="") # 订单号 alter table member_card_log add column order_id varchar(200) default ''; reason = models.CharField(max_length=512) # 原因 created_at = models.DateTimeField(auto_now_add=True) # 时间 class Meta(object): db_table = 'member_card_log'
class MemberSharedUrlInfo(models.Model): member = models.ForeignKey(Member) shared_url = models.CharField(max_length=1024) shared_url_digest = models.CharField(max_length=32) pv = models.IntegerField(default=1) leadto_buy_count = models.IntegerField(default=0) title = models.CharField(max_length=256, default='') cr = models.FloatField(default=0.0) followers = models.IntegerField(default=0) created_at = models.DateTimeField(auto_now_add=True) class Meta(object): db_table = 'member_shared_url_info' verbose_name = '分享链接信息' verbose_name_plural = '分享链接信息'
class MemberHasWeizoomCard(models.Model): """ 给会员发放的微众卡 """ member_id = models.IntegerField() #会员id member_name = models.CharField(max_length=1024) #会员名称 card_number = models.CharField(max_length=50) #微众卡卡号 card_password = models.CharField(max_length=512) #微众卡密码 relation_id = models.CharField(max_length=128) #关联的活动id source = models.IntegerField() #微众卡来源 created_at = models.DateTimeField(auto_now_add=True) #发放时间 class Meta(object): db_table = 'member_has_weizoom_card'
class MarketToolsTemplateMessageDetail(models.Model): owner = models.ForeignKey(User, related_name='owner') template_message = models.ForeignKey(MarketToolsTemplateMessage) industry = models.IntegerField(default=INDUSTR_IT) template_id = models.TextField() #模版id first_text = models.CharField(max_length=1024) remark_text = models.CharField(max_length=1024) type = models.IntegerField(default=MAJOR_INDUSTRY_TYPE) status = models.IntegerField(default=0) created_at = models.DateTimeField(auto_now_add=True) #添加时间 class Meta(object): db_table = 'market_tools_template_message_detail' verbose_name = '模板消息详情' verbose_name_plural = 'market_tools_template_message_detail' ordering = ['-status', 'type']
class ComponentAuthedAppid(models.Model): """ 参数 说明 authorization_info 授权信息 authorizer_appid 授权方appid authorizer_access_token 授权方令牌(在授权的公众号具备API权限时,才有此返回值) expires_in 有效期(在授权的公众号具备API权限时,才有此返回值) authorizer_refresh_token 刷新令牌(在授权的公众号具备API权限时,才有此返回值),刷新令牌主要用于公众号第三方平台获取和刷新已授权用户的access_token,只会在授权时刻提供,请妥善保存。 一旦丢失,只能让用户重新授权,才能再次拿到新的刷新令牌 func_info 公众号授权给开发者的权限集列表(请注意,当出现用户已经将消息与菜单权限集授权给了某个第三方,再授权给另一个第三方时,由于该权限集是互斥的,后一个第三方的授权将去除此权限集,开发者可以在返回的func_info信息中验证这一点,避免信息遗漏), 1到8分别代表: 1消息与菜单权限集 2用户管理权限集 3帐号管理权限集 4网页授权权限集 5微信小店权限集 6多客服权限集 7业务通知权限集 8微信卡券权限集 """ component_info = models.ForeignKey(ComponentInfo) auth_code = models.TextField(default='') user_id = models.IntegerField(default=0) #对应帐号user id last_update_time = models.DateTimeField(default=datetime.now()) authorizer_appid = models.CharField(max_length=255, default='') authorizer_access_token = models.TextField(default='') authorizer_refresh_token = models.TextField(default='') func_info = models.TextField(default='') created_at = models.DateTimeField(auto_now=True) is_active = models.BooleanField(default=False) class Meta(object): db_table = 'component_authed_appid' verbose_name = '委托授权帐号基本信息' verbose_name_plural = '委托授权帐号基本信息'
class ExpressDetail(models.Model): order_id = models.IntegerField(verbose_name="订单id,以后暂不使用", default=-1) express_id = models.IntegerField(verbose_name="快递id", default=-1) context = models.CharField(max_length=1024, verbose_name="内容") status = models.CharField(max_length=50, verbose_name="状态") time = models.DateTimeField(verbose_name="时间,原始格式") ftime = models.CharField(max_length=50, verbose_name="格式化后时间") display_index = models.IntegerField(default=1, db_index=True, verbose_name="显示的排序") created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") class Meta(object): db_table = 'tool_express_detail' verbose_name = '快递明细' verbose_name_plural = '快递明细'