class User(db.Document, UserMixin): roles = db.ListField(db.ReferenceField(Role)) email = db.StringField(max_length=255, unique=True) accessGroupType = db.StringField(max_length=80) #accessGroupName = db.StringField(max_length=80) profilePicURL = db.StringField() name = db.StringField(max_length=150) userValidity = db.StringField(max_length=12) refreshSecret = db.LongField() active = db.BooleanField(default=True) fingerID = db.LongField() password = db.StringField() meta = {'collection': 'users', 'queryset_class': BaseQuerySet}
class User(db.Document): name = db.StringField() email = db.StringField(unique=True) hashedPassword = db.StringField() refreshSecret = db.LongField() role = db.StringField() meta = {'collection': 'User'}
class Payment(db.Document): payer_id = db.ReferenceField(User, required=True) transaction_id = db.LongField(required=True, unique=True) amount = db.IntField(required=True, min_value=1, max_value=100000) currency = db.StringField(required=True) confirm = db.BooleanField(required=True) create_time = db.DateTimeField(default=datetime.datetime.utcnow())
class Message(db.Document): from_user = db.ReferenceField(User, db_field="fu", reverse_delete_rule=CASCADE) to_user = db.ReferenceField(User, db_field="tu", default=None, reverse_delete_rule=CASCADE) post = db.StringField(db_field="pt", max_length=1024) live = db.BooleanField(db_field="l", default=None) create_date = db.LongField(db_field="c", default=now()) images = db.ListField(db_field="is", default=None) parent = db.ObjectIdField(db_field="p", default=None) message_type = db.IntField(db_field="mt", default=POST, choices=MESSAGE_TYPE) @property def likes(self): return Message.objects.filter(parent=self.id, message_type=LIKE).order_by("-create_date") @property def comments(self): return Message.objects.filter(parent=self.id, message_type=COMMENT).order_by("create_date") @property def text_linkified(self): return linkify_text(self.post) @property def human_timestamp(self): return ms_stamp_humanize(self.create_date) def post_image_src(self, images_time_stamp, size): if self.images: profile_img = join_path(STATIC_IMAGE_URL, 'posts', "{}.{}.{}.png".format(self.id, images_time_stamp, size)) return profile_img.replace("\\", '/') # mostly for windows because windows uses a black slash to save. meta = { 'indexes': [("from_user", "to_user", "-create_date", "message_type", "parent", "live")] }
class Feed(db.Document): user = db.ReferenceField(User, db_field="u", reverse_delete_rule=CASCADE) message = db.ReferenceField(Message, db_field="m", reverse_delete_rule=CASCADE) create_date = db.LongField(db_field="cd", default=timestamp()) meta = { "indexes": [("user", "-create_date")] }
class Feed(db.Document): # the owner of the message user = db.ReferenceField(User, db_field="user", reverse_delete_rule=CASCADE) message = db.ReferenceField(Message, db_field="message", reverse_delete_rule=CASCADE) create_date = db.LongField(db_field="create_date", default=utc_now_ts_ms()) meta = {'indexes': [('user', '-create_date')]}
class User(db.Document): email = db.StringField(max_length=255, unique = True) accessGroup = db.StringField(max_length=255) active = db.BooleanField(default=True) confirmed_at = db.DateTimeField() picture = db.StringField() userExpiry = db.StringField() userID = db.StringField() name = db.StringField(max_length=255) refreshSecret = db.LongField() roles = db.StringField()
class User(UserMixin, db.Document): account = db.StringField(required=True, unique=True, min_length=4, max_length=20) password = db.StringField(required=True) name = db.StringField(required=True, min_length=2, max_length=20) store_name = db.StringField(required=True, min_length=2, max_length=20) icon = db.StringField(required=True, default="default.png") email = db.StringField(required=True, unique=True) phone = db.StringField(required=True, max_length=15) birth = db.DateTimeField(required=True) address = db.StringField(required=True, max_length=50) prefer_begin_time = db.StringField(required=True, max_length=10) prefer_end_time = db.StringField(requried=True, max_length=10) status = db.IntField(required=True, default=0) hicoin = db.LongField(required=True, min_value=0, default=0) reset_token = db.StringField(null=True) create_time = db.DateTimeField(default=datetime.datetime.utcnow()+datetime.timedelta(hours=8))
class User(UserMixin, db.Document): account = db.StringField(required=True, unique=True, min_length=4, max_length=20) password = db.StringField(required=True) name = db.StringField(required=True, min_length=2, max_length=20) store_name = db.StringField(required=True, min_length=2, max_length=20) icon = db.StringField(required=True, default="default.png") email = db.StringField(required=True, unique=True) phone = db.StringField(required=True, max_length=15) birth = db.DateTimeField(required=True) address = db.ListField(db.EmbeddedDocumentField(Address), default=list) status = db.IntField(required=True, default=0) hicoin = db.LongField(required=True, min_value=0, default=0) reset_token = db.StringField(null=True) create_time = db.DateTimeField(default=datetime.datetime.utcnow())
class Message(db.Document): from_user = db.ReferenceField(User, db_field="from_user", reverse_delete_rule=CASCADE) to_user = db.ReferenceField(User, db_field="to_user", default=None, reverse_delete_rule=CASCADE) text = db.StringField(db_field="text", max_length=1024) live = db.BooleanField(db_field="live", default=None) create_date = db.LongField(db_field="create_date", default=utc_now_ts_ms()) parent = db.ObjectIdField(db_field="parent", default=None) images = db.ListField(db_field="images") message_type = db.IntField(db_field='message_type', default=POST, choices=MESSAGE_TYPE) @property def text_linkified(self): return linkify(self.text) @property def human_timestamp(self): return ms_stamp_humanize(self.create_date) @property def comments(self): return Message.objects.filter( parent=self.id, message_type=COMMENT).order_by('create_date') @property def likes(self): return Message.objects.filter( parent=self.id, message_type=LIKE).order_by('-create_date') def post_imgsrc(self, image_ts, size): return url_for('static', filename=os.path.join( 'images', 'posts', '%s.%s.%s.png' % (self.id, image_ts, size))) meta = { 'indexes': [('from_user', 'to_user', '-create_date', 'parent', 'message_type', 'live')] }
class Misc(db.EmbeddedDocument): RTC = db.LongField() snowDepth = db.FloatField() windSpeed = db.FloatField() ambientTemp = db.FloatField() boardTemp = db.FloatField()
class Events(db.EmbeddedDocument): time = db.LongField() desc = db.StringField()