Example #1
0
class PowerLog(models.Document):
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    power_member_id = models.LongField()  #助力者id
    be_powered_member_id = models.LongField()  #被助力者id
    created_at = models.DateTimeField(default=datetime.now())  #创建时间

    meta = {'collection': 'powerme_powered_log', 'db_alias': 'apps'}
Example #2
0
class Karma(mongoengine.Document):
    id = mongoengine.SequenceField(primary_key=True)

    chat_id = mongoengine.LongField(required=True)
    message_id = mongoengine.LongField(required=True)
    response_message_id = mongoengine.LongField(null=True)

    message = mongoengine.StringField(required=True)

    giver_user_id = mongoengine.LongField(required=True)
    giver_username = mongoengine.StringField(required=True)

    receiver_user_id = mongoengine.LongField(required=True)
    receiver_username = mongoengine.StringField(required=True)

    vote = mongoengine.IntField(required=True)

    date_added = mongoengine.DateTimeField(default=localized_date)
    date_modified = mongoengine.DateTimeField(default=localized_date)
    date_deleted = mongoengine.DateTimeField(required=False, null=True)

    @classmethod
    def by_id(cls, id):
        try:
            return cls.objects.get(id=id)
        except cls.DoesNotExist:
            return None

    @classmethod
    def by_chat_id_and_receiver_user_id(cls, chat_id, receiver_user_id):
        try:
            return cls.objects.get(chat_id=chat_id,
                                   receiver_user_id=receiver_user_id)
        except cls.DoesNotExist:
            return None
Example #3
0
class Comment(me.Document):
    """
		Schema for Comment created using 'mongoengine'

		Fields:
			time_index (long): This is an integer which determines time sorted index.
			comment_id (str): ID of the comment provided by Youtube.
			channel_id (str): Author ID of the comment referenced to Channel.
			channel_title (str): Author name of the comment referenced to Channel.
			channel_thumbnail (url): Url for pic of channel.
			video_id (str): Video of the comment.
			text (str): Content of the comment.
			likes (long): Number of likes for the comment.
			time (str): Passed time after commented as string representation.
			edited (bool): If comment is edited, value is True.
			timestamp (long): Timestamp of comment.
			has_replies (bool): If the comment is replied its value is True.

	"""

    time_index = me.LongField(required=True, default=0)
    comment_id = me.StringField(primary_key=True)
    channel_id = me.ReferenceField('Channel', required=True)
    channel_title = me.StringField(required=True)
    channel_thumbnail = me.URLField(required=True)
    video_id = me.ReferenceField('Video', required=True)
    text = me.MultiLineStringField(required=True)
    likes = me.LongField(required=True, default=0)
    time = me.StringField(required=True)
    edited = me.BooleanField(required=True, default=False)
    timestamp = me.LongField(required=True)
    has_replies = me.BooleanField(required=True, default=False)
    sentiment_category = me.StringField(choices=SENTIMENT_CATEGORIES)
Example #4
0
class PageRankInfoDTO(mongo.EmbeddedDocument):
    """A DTO wrapper for information related to PageRank."""

    total_with_self = mongo.LongField(min_value=0, db_field='ts')
    total = mongo.LongField(min_value=0, db_field='t')
    references = mongo.ListField(
        field=mongo.EmbeddedDocumentField(document_type=PageRankVectorDTO),
        db_field='r')
Example #5
0
class RedPacketLog(models.Document):
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    helper_member_id = models.LongField()  #帮助者id
    help_money = models.FloatField(default=0)  #帮助金额
    be_helped_member_id = models.LongField()  #被帮助者id
    created_at = models.DateTimeField(default=datetime.now())  #创建时间

    meta = {'collection': 'red_packet_red_packet_log', 'db_alias': 'apps'}
Example #6
0
class feedbackParticipance(models.Document):
    webapp_user_id = models.LongField(default=0)  #参与者id
    member_id = models.LongField(default=0)  #参与者id
    tel = models.StringField(default="", max_length=100)
    termite_data = models.DynamicField(default="")  #termite数据
    prize = models.DynamicField(default="")  #反馈奖励
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'feedback_feedback_participance', 'db_alias': 'apps'}
Example #7
0
class lotteryParticipance(models.Document):
    webapp_user_id = models.LongField(default=0)  #参与者id
    member_id = models.LongField(default=0)  #参与者id
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    has_prize = models.BooleanField(default=False)  #是否中奖
    total_count = models.IntField(default=0)  #已参与次数
    can_play_count = models.IntField(default=0)  #可参与次数
    lottery_date = models.DateTimeField()  #最近一次抽奖时间

    meta = {'collection': 'lottery_lottery_participance', 'db_alias': 'apps'}
Example #8
0
class PowerMeControl(models.Document):
    member_id = models.LongField(default=0)  #参与者id
    powered_member_id = models.LongField(default=0)  #被助力者id
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    powerme_control = models.StringField(
        default="",
        max_length=100,
        unique_with=['belong_to', 'member_id', 'powered_member_id'])

    meta = {'collection': 'powerme_powerme_control', 'db_alias': 'apps'}
Example #9
0
class PoweredLimitRelation(models.Document):
    """
	限制的微助力的log
	"""
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    member_id = models.LongField()  #助力者的id
    powered_member_id = models.LongField()  #被助力者id
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'powerme_powered_limit_relation', 'db_alias': 'apps'}
Example #10
0
class eventParticipance(models.Document):
    webapp_user_id = models.LongField(default=0)  #参与者id
    member_id = models.LongField(default=0)  #参与者id
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    tel = models.StringField(default="", max_length=100)
    termite_data = models.DynamicField(default="")  #termite数据
    prize = models.DynamicField(default="")  #活动奖励
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'event_event_participance', 'db_alias': 'apps'}
Example #11
0
class ChatRoom(gj.Document):
    meta = {'queryset_class': fm.BaseQuerySet}
    title = db.StringField(max_length=500)
    members = db.SortedListField(db.ReferenceField(User),
                                 reverse_delete_rule=db.CASCADE)
    members_history = db.ListField(db.ReferenceField(User),
                                   reverse_delete_rule=db.CASCADE)
    messages = db.EmbeddedDocumentListField(Message)
    created_at = db.LongField(required=True)
    available = db.BooleanField(required=True, default=False)
    available_at = db.LongField()
Example #12
0
class User(gj.Document):
    meta = {'queryset_class': fm.BaseQuerySet}

    uid = db.StringField()
    nick_name = db.StringField()
    sex = db.StringField()
    birthed_at = db.LongField()
    height = db.IntField()
    body_id = db.IntField()
    occupation = db.StringField()
    education = db.StringField()
    religion_id = db.IntField()
    drink_id = db.IntField()
    smoking_id = db.IntField()
    blood_id = db.IntField()
    r_token = db.StringField()
    location = db.PointField()
    introduction = db.StringField()
    joined_at = db.LongField()
    last_login_at = db.LongField()
    job = db.StringField()
    area = db.StringField()
    phone = db.StringField()
    user_images = db.SortedListField(db.EmbeddedDocumentField(UserImage),
                                     ordering="index")
    user_images_temp = db.SortedListField(db.EmbeddedDocumentField(UserImage),
                                          ordering="index")
    charm_ids = db.ListField(db.IntField())
    ideal_type_ids = db.ListField(db.IntField())
    interest_ids = db.ListField(db.IntField())

    available = db.BooleanField(default=False)
    status = db.IntField(default=0)  # -10, 0, 10

    @property
    def posts(self):
        posts = Post.objects(author=self).order_by("-created_at").all()
        for post in posts:
            post.favorite_users = []
            post.comments.sort(key=lambda x: x.created_at, reverse=True)
        return posts

    def list_requests_like_me(self, response=None):
        return Request.objects(user_to=self, response=response).all()

    def list_requests_i_like(self, response=None):
        return Request.objects(user_from=self, response=response).all()

    def list_chat_rooms(self):
        return ChatRoom.objects(members=self).all()

    def list_users_rated_me_high(self):
        star_ratings = StarRating.objects(user_to=self, score__gte=4).all()
        return [star_rating.user_from for star_rating in star_ratings]
Example #13
0
class RebateWeizoomCardDetails(models.Document):
    """
	发放返利微众卡的详情记录
	"""
    record_id = models.StringField(default="", max_length=100)  #对应的活动id
    order_id = models.StringField(
        default="", max_length=100)  #对应返利订单的order_id,注意,不是order.id !!
    member_id = models.LongField(default=0)  #返利的会员
    weizoom_card_id = models.LongField(default=0)  #返利的微众卡id
    created_at = models.DateTimeField()  #发放时间

    meta = {'collection': 'rebate_weizoom_card_details', 'db_alias': 'apps'}
Example #14
0
class PoweredDetail(models.Document):
    """
	助力详情表
	"""
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    owner_id = models.LongField()
    power_member_id = models.LongField()  #助力者id
    power_member_name = models.StringField(default='', max_length=1024)  #助力者昵称
    has_powered = models.BooleanField(default=False)  #是否已助力(针对未关注用户)
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'powerme_powered_detail', 'db_alias': 'apps'}
Example #15
0
class Request(gj.Document):
    meta = {'queryset_class': fm.BaseQuerySet}
    user_from = db.ReferenceField(User,
                                  required=True,
                                  reverse_delete_rule=db.CASCADE)
    user_to = db.ReferenceField(User,
                                required=True,
                                reverse_delete_rule=db.CASCADE)
    requested_at = db.LongField()
    request_type_id = db.IntField(required=True)
    response = db.IntField()
    responded_at = db.LongField()
Example #16
0
class OrderEvaluates(models.Document):
    """
	订单评价
	"""
    owner_id = models.LongField()
    member_id = models.LongField()  #评价用户
    order_id = models.StringField(default='', max_length=50,
                                  unique=True)  # Order.order_id !!!
    serve_score = models.IntField(default=5)  # 服务态度评分
    deliver_score = models.IntField(default=5)  # 发货速度评分
    process_score = models.IntField(default=5)  # 物流服务评分

    old_id = models.LongField(default=0)  #mysql中的id,用于迁移数据

    meta = {'collection': 'evaluate_order_evaluates', 'db_alias': 'apps'}
Example #17
0
class RedPacketDetail(models.Document):
    """
	拼红包详情表
	"""
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    owner_id = models.LongField()  #被帮助者id
    helper_member_id = models.LongField()  #帮助者id
    helper_member_name = models.StringField(default='',
                                            max_length=1024)  #帮助者昵称
    help_money = models.FloatField(default=0)  #帮助金额
    has_helped = models.BooleanField(default=False)  #是否已帮助(针对未关注用户)
    is_valid = models.BooleanField(default=True)  #该条记录是否有效(针对取关后再次关注的情况)
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'red_packet_red_packet_detail', 'db_alias': 'apps'}
Example #18
0
class OrganizationDTO(mongo.Document):
    """A DTO wrapper for Organization documents."""

    name = mongo.StringField(db_field='n')
    address = mongo.StringField(db_field='a')
    latlng = mongo.ListField(db_field='l')
    types = mongo.ListField(mongo.IntField(), db_field='ts')
    phone_numbers = mongo.ListField(db_field='ns')
    email_key = mongo.EmailField(db_field='ek')
    emails = mongo.ListField(db_field='es')
    contacts = mongo.ListField(mongo.ReferenceField(ContactDTO), db_field='cs')
    user_contacts = mongo.ListField(mongo.ReferenceField('UserDTO'),
                                    db_field='us')
    organization_url = mongo.StringField(db_field='u')
    partners = mongo.ListField(mongo.ReferenceField('self'), db_field='ps')
    facebook = mongo.URLField(db_field='f')
    twitter = mongo.URLField(db_field='t')
    keywords = mongo.StringField(db_field='ks')
    valid = mongo.BooleanField(db_field='v', default=True)
    last_updated = mongo.DateTimeField(db_field='lu')
    updated_by = mongo.ObjectIdField(db_field='ub')
    page_rank_info = mongo.EmbeddedDocumentField(document_type=PageRankInfoDTO,
                                                 db_field='r')
    page_rank = mongo.LongField(min_value=0, db_field='pr')
    page_rank_weight = mongo.FloatField(min_value=0.0,
                                        max_value=1.0,
                                        db_field='w')
    content_weight = mongo.FloatField(min_value=0.0, db_field='c')
    combined_weight = mongo.FloatField(min_value=0.0, db_field='cw')
Example #19
0
class event(models.Document):
    owner_id = models.LongField()  #创建人id
    name = models.StringField(default="", max_length=100)  #名称
    start_time = models.DateTimeField()  #开始时间
    end_time = models.DateTimeField()  #结束时间
    status = models.IntField(default=0)  #状态
    participant_count = models.IntField(default=0)  #参与者数量
    related_page_id = models.StringField(default="",
                                         max_length=100)  #termite page的id
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'event_event', 'db_alias': 'apps'}

    @property
    def status_text(self):
        if self.status == STATUS_NOT_START:
            return u'未开始'
        elif self.status == STATUS_RUNNING:
            now = datetime.today()
            if now >= self.end_time:
                return u'已结束'
            else:
                return u'进行中'
        elif self.status == STATUS_STOPED:
            return u'已结束'
        else:
            return u'未知'

    @property
    def is_finished(self):
        status_text = self.status_text
        if status_text == u'已结束':
            return True
        else:
            return False
Example #20
0
class RebateParticipance(models.Document):
    member_id = models.LongField(default=0)  #参与者id
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    created_at = models.DateTimeField()  #扫码时间
    is_new = models.BooleanField(default=True)  #扫码之前没有关注过则为True

    meta = {'collection': 'rebate_rebate_participance', 'db_alias': 'apps'}
Example #21
0
class exSign(models.Document):
    owner_id = models.LongField()  #创建人id
    name = models.StringField(default="", max_length=100)  #名称
    share = models.DynamicField(default="")  #分享设置
    # reply = models.DynamicField(default="") #自动回复设置
    prize_settings = models.DynamicField(default="")  #签到奖项设置
    status = models.IntField(default=0)  #状态
    participant_count = models.IntField(default=0)  #参与者数量
    related_page_id = models.StringField(default="",
                                         max_length=100)  #termite page的id
    created_at = models.DateTimeField()  #创建时间

    meta = {'collection': 'exsign_exsign', 'db_alias': 'apps'}

    @property
    def status_text(self):
        return (u'未开始', u'进行中', u'已结束')[int(self.status)]

    @property
    def is_finished(self):
        status_text = self.status_text
        if status_text == u'已结束':
            return True
        else:
            return False
Example #22
0
class User(mongo.DynamicDocument):

    first_name = mongo.StringField(required=True)
    last_name = mongo.StringField(required=True)
    display_name = mongo.StringField(required=True)
    verification_code = mongo.StringField(required=False)
    email = mongo.EmailField(required=True, unique=True)
    role = mongo.IntField(required=True, default=Role.USER)
    facebook_id = mongo.LongField(
        required=False)  # Facebook ID is numeric but can be pretty big
    twitter_id = mongo.StringField(
        required=False)  # Twitter ID is alphanumeric
    address = mongo.StringField(required=False)
    zip_code = mongo.StringField(required=False)
    country_code = mongo.StringField(min_length=2,
                                     max_length=2,
                                     required=False)  # follows ISO_3166-1
    tel = mongo.StringField(required=False)  # contact number

    @property
    def role_type(self):
        return Role.get_role_type(self.role)

    def role_satisfy(self, role):
        return self.role >= role
Example #23
0
class MongoDocument(mongoengine.DynamicDocument):
    """
    DynamicDocument for the mongodb insert
    """
    meta = {'collection': create_collection_name}
    id = mongoengine.LongField(primary_key=True)
    created_at = mongoengine.DateTimeField()
Example #24
0
class ExlotteryCode(models.Document):
    owner_id = models.LongField()  # 创建人id
    belong_to = models.StringField(default="", max_length=100)  # 对应的专项抽奖活动id
    code = models.StringField(default="", max_length=20, unique=True)  #抽奖码
    created_at = models.DateTimeField()  # 创建时间
    use_time = models.DateTimeField(default=DEFAULT_TIME)  # 抽奖码使用时间

    meta = {'collection': 'exlottery_code', 'db_alias': 'apps'}
Example #25
0
class PageRankVectorDTO(mongo.EmbeddedDocument):
    """A DTO wrapper for counting referenced organizations."""

    org_domain = mongo.StringField(db_field='o')
    count = mongo.LongField(min_value=0, db_field='c')
    pages = mongo.ListField(
        field=mongo.EmbeddedDocumentField(document_type=UrlCountPairDTO),
        db_field='p')
Example #26
0
class Subtopic(mongoengine.Document):
    chat_id = mongoengine.LongField(required=True)

    text = mongoengine.StringField(required=True)

    user_id = mongoengine.LongField(required=True)
    username = mongoengine.StringField()

    date_added = mongoengine.DateTimeField(default=localized_date)
    date_modified = mongoengine.DateTimeField(default=localized_date)
    date_deleted = mongoengine.DateTimeField(required=False, null=True)

    def __repr__(self):
        return self.text

    def __str__(self):
        return self.__repr__()
Example #27
0
class exSignControl(models.Document):
    member_id = models.LongField(default=0)  #参与者id
    belong_to = models.StringField(default="", max_length=100)  #对应的活动id
    sign_control = models.StringField(default="",
                                      max_length=100,
                                      unique_with=['belong_to', 'member_id'])

    meta = {'collection': 'exsign_exsign_control', 'db_alias': 'apps'}
Example #28
0
class Conversation(db.Document):
    meta = {
        'strict': False,
        'queryset_class': fm.BaseQuerySet,
        'index_opts': INDEX_OPTS,
        'index_background': INDEX_BACKGROUND,
        'index_cls': INDEX_CLS,
        'auto_create_index': AUTO_CREATE_INDEX,
        'indexes': ['participants']
    }
    title = db.StringField(max_length=500)
    participants = db.SortedListField(db.ReferenceField(User), reverse_delete_rule=db.CASCADE)
    references = db.ListField(db.ReferenceField(User), reverse_delete_rule=db.CASCADE)
    messages = db.EmbeddedDocumentListField(EmbeddedMessage)
    created_at = db.LongField(required=True)
    available = db.BooleanField(required=True, default=False)
    available_at = db.LongField()
Example #29
0
class EvaluatesRelatedProducts(models.Document):
    """
	已经关联过的商品
	"""
    belong_to = models.StringField(default="", max_length=100)  # 对应的评价关联id
    owner_id = models.LongField()  #商家id
    product_id = models.IntField()  #商品id

    meta = {'collection': 'evaluate_related_products', 'db_alias': 'apps'}
Example #30
0
class User(mongoengine.Document):
    user_id = mongoengine.LongField(required=True)

    domains = mongoengine.EmbeddedDocumentListField(Domain)

    meta = {
        'db_alias': 'core',
        'collection': 'users'
    }