class CcUserOtp(Document): user_auth_id = fields.IntField(required=True) user_profile_id = fields.ObjectIdField(null=True, required=False) user_account_id = fields.ObjectIdField(null=True, required=False) user_mobile_number = fields.StringField(required=True) user_mobile_otp = fields.IntField(required=True) # otp_generated_for = fields.IntField(required=False) # need to be changed cc_project_id = fields.IntField(required=True) cc_is_otp_used = fields.BooleanField(required=False) cc_user_type_id = fields.IntField(required=False) otp_creation_time = fields.DateTimeField(default=datetime.now(india)) otp_expiration_time = fields.DateTimeField(default=datetime.now(india) + timedelta(seconds=60)) is_active = fields.BooleanField(default=False, required=False) created_by = fields.ObjectIdField(required=False) created_at = fields.DateTimeField() updated_by = fields.ObjectIdField(required=False) updated_at = fields.DateTimeField(default=datetime.utcnow) def save(self, *args, **kwargs): # if not self.created_at: # self.created_at = datetime.utcnow() # if not self.otp_creation_time: 9923891761 # self.otp_creation_time = datetime.utcnow() return super(CcUserOtp, self).save(*args, **kwargs)
class RegularModel(Document): """ A model class for testing regular flat fields. """ str_field = fields.StringField() str_regex_field = fields.StringField(regex="^valid_regex") url_field = fields.URLField() email_field = fields.EmailField() int_field = fields.IntField() long_field = fields.LongField() float_field = fields.FloatField() boolean_field = fields.BooleanField() nullboolean_field = fields.BooleanField(null=True) date_field = fields.DateTimeField() complexdate_field = fields.ComplexDateTimeField() uuid_field = fields.UUIDField() id_field = fields.ObjectIdField() decimal_field = fields.DecimalField() custom_field = CustomField() # TODO # dynamic_field = fields.DynamicField() # bin_field = fields.BinaryField() # file_field = fields.FileField() # image_field = fields.ImageField() def method(self): return 'method'
class Contestant(Document): """Contestant model definition.""" name = fields.StringField() age = fields.StringField() occupation = fields.StringField() location = fields.StringField() detail = fields.StringField() facts = fields.ListField() image = fields.StringField() active = fields.BooleanField() drafted = fields.BooleanField() roses = fields.IntField() def to_json(self): return { "_id": str(self.pk), "name": self.name, "age": self.age, "occupation": self.occupation, "location": self.location, "detail": self.detail, "facts": self.facts, "image": self.image, "active": self.active, "drafted": self.drafted, "roses": self.roses, }
class Card(Document): # define every field cardId = fields.StringField() dbfId = fields.StringField() name = fields.StringField() cardSet = fields.StringField() type = fields.StringField() locale = fields.StringField() playerClass = fields.StringField() img = fields.StringField() imgGold = fields.StringField() text = fields.StringField() health = fields.IntField() artist = fields.StringField() mechanics = fields.DynamicField() faction = fields.StringField() cost = fields.IntField() attack = fields.IntField() durability = fields.IntField() rarity = fields.StringField() flavor = fields.StringField() collectible = fields.BooleanField() race = fields.StringField() elite = fields.BooleanField() armor = fields.StringField()
class InvoicingSettings(EmbeddedDocument): """A wrapper to Invoicing's module settings.""" TAXES_APPLICATION = TAXES_APPLICATION PAYMENT_TYPES = PAYMENT_TYPES PAYMENT_CONDITIONS = PAYMENT_CONDITIONS supported_currencies = fields.ListField(fields.ReferenceField("Currency")) default_currency = fields.ReferenceField("Currency", required=True) fy_start_month = fields.IntField(required=True, default=0, min_value=0, max_value=11) inv_taxes_application = fields.StringField(required=True, choices=TAXES_APPLICATION, default="EXCLUSIVE") quotation_validity = fields.IntField(required=True, default=30) payment_conditions = fields.StringField(required=True, choices=PAYMENT_CONDITIONS, default="CASH") custom_payment_conditions = fields.StringField() accepted_payment_types = fields.ListField( fields.StringField(choices=PAYMENT_TYPES), required=True, default=lambda: ["CHECK", "CASH", "CREDIT_CARD", "TRANSFER"]) late_fee_rate = fields.DecimalField() down_payment_percent = fields.DecimalField(required=True, default=lambda: Decimal("0")) automatic_reminders = fields.BooleanField(required=True, default=False) automatic_reminders_text = fields.StringField(max_length=1024) automatic_reminders_send_copy = fields.BooleanField(required=True, default=True) numbering = fields.EmbeddedDocumentField( "InvoicingNumberingSettings", required=True, default=lambda: InvoicingNumberingSettings())
class CcUserProfile(Document): user_auth_id = fields.IntField(required=False) first_name = fields.StringField(required=False) last_name = fields.StringField(required=False) mobile_no = fields.StringField(required=False) email = fields.EmailField(required=False) gender = fields.IntField(required=False) alternate_number = fields.StringField(required=False) is_profile_verified = fields.DynamicField(required=False) cc_src_type_id = fields.IntField(null=True, required=False) cc_project_id = fields.IntField(required=False) cc_default_profile = fields.BooleanField(required=False) profile_type = fields.IntField(required=False) profile_others_info = fields.DynamicField(required=False) profile_max_lock_limit = fields.IntField(required=False) is_profile_active = fields.BooleanField(required=False) country_id = fields.StringField(null=True, required=False) state_id = fields.StringField(null=True, required=False) city_id = fields.StringField(null=True, required=False) area_id = fields.IntField(null=True, required=False) cc_user_type_id = fields.IntField(null=True, required=False) is_active = fields.BooleanField(default=False, required=False) created_by = fields.IntField(required=False) created_at = fields.DateTimeField(required=False) updated_by = fields.IntField(required=False) updated_at = fields.DateTimeField(default=datetime.utcnow) def save(self, *args, **kwargs): # if not self.created_at: # self.created_at = datetime.utcnow() return super(CcUserProfile, self).save(*args, **kwargs)
class CcUserCookies(Document): user_auth_id = fields.IntField(required=True, unique=True) cc_src_type_id = fields.ObjectIdField(null=True, required=False) cc_project_id = fields.ObjectIdField(required=True) cc_user_type_id = fields.ObjectIdField(null=True, required=False) cc_user_cookie_name = fields.StringField(required=True) cc_user_cookie_type = fields.IntField(required=True) cc_user_cookie_shared = fields.IntField(required=True) cc_user_cookie_key = fields.IntField(required=True) cc_user_cookie_details = fields.DynamicField(required=True) cc_user_cookie_creation_time = fields.DateTimeField() cc_user_cookie_expires_at = fields.DateTimeField() cc_user_is_cookie_active = fields.BooleanField(default=False, required=False) cc_user_cookie_storage_engine = fields.IntField(required=True) is_active = fields.BooleanField(default=False, required=False) created_by = fields.IntField(required=True) created_at = fields.DateTimeField() updated_by = fields.IntField(required=True) updated_at = fields.DateTimeField(default=datetime.utcnow) def save(self, *args, **kwargs): if not self.created_at: self.created_at = datetime.utcnow() return super(CcUserCookies, self).save(*args, **kwargs)
class Spell(Attack): level = fields.IntField() school = fields.StringField() casting_time = fields.IntField() duration = fields.IntField() is_verbal = fields.BooleanField() is_somatic = fields.BooleanField() is_material = fields.BooleanField()
class Editor(Document): first_name = fields.StringField(max_length=250) last_name = fields.StringField(max_length=250) email = fields.EmailField(max_length=250) is_definer = fields.BooleanField(default=True) is_reviewer = fields.BooleanField(default=False) is_publisher = fields.BooleanField(default=False)
class User(Document): name = fields.StringField(required=True) username = fields.StringField(required=True) password = fields.StringField(required=True) status = fields.BooleanField(default=True) client = fields.BooleanField(default=False) role = fields.StringField(required=False) created_at = fields.DateTimeField(default=datetime.utcnow)
class User(db.Document, BaseModelMixin): username = fields.StringField() _password = fields.StringField(db_field='password') email = fields.EmailField(unique=True) avatar = fields.StringField(default=None) position = fields.StringField() # 职位 department = fields.StringField() # 部门 phone = fields.StringField() equipment_num = fields.LongField(default=0) # 装置数量 device_num = fields.LongField(default=0) # 设备数量 interface_num = fields.LongField(default=0) # 接口数量 cable_num = fields.LongField(default=0) # 线缆数量 login_num = fields.LongField(default=0) search_num = fields.LongField(default=0) author_type = fields.IntField(default=0) author_editable = fields.BooleanField(default=True) deletable = fields.BooleanField(default=True) is_active = fields.BooleanField(default=True) token = fields.EmbeddedDocumentField(Token, default=None) is_anonymous = False def get_id(self): return str(self.id) @property def is_authenticated(self): return self.is_active and self.token is not None and self.token.expired_at > datetime.now( ) @property def password(self): return self._password @password.setter def password(self, pwd): self._password = pbkdf2_sha256.hash(pwd) def check_password(self, pwd): return pbkdf2_sha256.verify(pwd, self._password) def refresh_token(self, token_expired_time): self.token.expired_at = datetime.now() + timedelta( seconds=token_expired_time) return self.save() def generate_token(self, token_expired_time): token = binascii.hexlify( os.urandom(20) + str(self.id).encode('utf-8')).decode() expired_at = datetime.now() + timedelta(seconds=token_expired_time) self.token = Token(value=token, expired_at=expired_at) self.login_num += 1 self.save() return self.token.value
class Spell(Skill): def __str__(self): return 'Spell' level = fields.IntField() school = fields.StringField() is_verbal = fields.BooleanField() is_somatic = fields.BooleanField() is_material = fields.BooleanField()
class PLO(Document): numero = fields.StringField(required=True, null=False) autor = fields.StringField(required=False, null=True) ementa = fields.StringField(required=True, null=False) em_tramitacao = fields.BooleanField(required=True, null=False) eh_polemico = fields.BooleanField(required=True, null=False) apelido = fields.StringField(required=False, null=True) tramites = fields.StringField(required=False, null=True) texto_integral = fields.URLField(required=False, null=True)
class Identity(Document): display_name = fields.StringField(required=True, null=False) first_name = fields.StringField() last_name = fields.StringField() image_url = fields.StringField() large_image_url = fields.StringField() taste_maker = fields.BooleanField() verified = fields.BooleanField() meta = {"collection": "identity"}
class SODiagnosis(fields.Document): owner = fields.IntField() from_expert = fields.IntField() summary = fields.StringField() second_opinion = fields.StringField() diagnosis = fields.StringField() so_obj = fields.DictField() request_info = fields.DictField() is_closed = fields.BooleanField(default=False) is_closed_by_user = fields.BooleanField(default=False)
class Rule(Document): name = fields.StringField(max_length=100, default=None) consequence = fields.EmbeddedDocumentField(RuleConsequence) conditions = fields.ListField(fields.EmbeddedDocumentField(RuleCondition)) active = fields.BooleanField(default=True) original = fields.BooleanField(default=True) benefit = fields.BooleanField(default=False) redeemable = fields.BooleanField(default=False) redeemed_by = fields.ListField(fields.ReferenceField(User)) cost = fields.IntField(default=0)
class Attendee(EmbeddedDocument): id = fields.StringField() email = fields.StringField() displayName = fields.StringField() organizer = fields.BooleanField() self = fields.BooleanField() resource = fields.BooleanField() optional = fields.BooleanField() responseStatus = fields.StringField() comment = fields.StringField() additionalGuests = fields.IntField()
class Users(Document): cod = fields.StringField(required=True, unique=True) email = fields.StringField(required=True, unique=True, null=False, blank=False) password = fields.StringField(required=True, null=False, blank=False) last_name = fields.StringField(required=True, null=False, blank=False) first_name = fields.StringField(required=True, null=False, blank=False) mobile_phone = fields.StringField(required=False, null=False, blank=False) isAdmin = fields.BooleanField(required=False, null=False, blank=False) isActive = fields.BooleanField(required=False, null=False, blank=False) meta = {'strict': False}
class User(Document): userId = fields.StringField(unique=True) expiresAt = fields.DateTimeField() refreshToken = fields.StringField() lastUpdateTime = fields.DateTimeField(default=datetime.utcnow()) lastSync = fields.DateTimeField() isSync = fields.BooleanField(default=False) isFreshing = fields.BooleanField(default=False) color_onto = fields.EmbeddedDocumentField(Onto, default=Onto()) people_onto = fields.EmbeddedDocumentField(Onto, default=Onto()) @classmethod def pre_save(cls, sender, document): document.lastUpdateTime = datetime.utcnow()
class Testsuite(BaseModel): uid = fields.StringField(required=True, primary_key=True) name = fields.StringField(required=True, min_length=3, max_length=50) level = fields.StringField(required=True, choice=['basic', 'extended', 'advanced']) public = fields.BooleanField(default=False) enable_suggestions = fields.BooleanField(default=False) attempts = fields.IntField(default=0) group = fields.ReferenceField(Group, required=True, reverse_delete_rule=2) testcases = fields.EmbeddedDocumentListField(Testcase, default=[]) created_at = fields.IntField(required=True) created_by = fields.ReferenceField(User, required=True) updated_at = fields.IntField() updated_by = fields.ReferenceField(User) # db collection meta = {"collection": "testsuite"}
class Notification(DynamicDocument): tenant = fields.ReferenceField("Tenant", required=False) recipient = fields.ReferenceField("VosaeUser", required=True) sent_at = fields.DateTimeField(required=True, default=datetime_now) read = fields.BooleanField(required=True, default=False) meta = { "indexes": ["tenant", "recipient", "sent_at", "read"], "ordering": ["-sent_at"], "allow_inheritance": True } @classmethod def post_save(self, sender, document, **kwargs): """ Post save hook handler Emits notification through the realtime service """ from notification.api.resources import NotificationResource nr = NotificationResource() try: resource_type = nr._get_type_from_class(nr._meta.polymorphic, document.__class__) except: resource_type = None emit_to_channel( u'private-user-{0}'.format(unicode(document.recipient.id)), u'new-notification', { u'id': unicode(document.id), u'type': resource_type })
class Activity(Document): url_number = fields.IntField() name = fields.StringField(verbose_name=u'活动名称') detail = fields.StringField(verbose_name=u'活动详情') creator = fields.GenericReferenceField() # 发起社团 start_time = fields.DateTimeField() finish_time = fields.DateTimeField() place = fields.StringField(verbose_name=u'活动地点') max_student = fields.IntField() # 人数上限 pay = fields.IntField(verbose_name=u'人均花费') who_likes = fields.ListField( fields.ReferenceField(Student, reverse_delete_rule=PULL)) # 喜欢活动的人 who_entered = fields.ListField( fields.ReferenceField(Student, reverse_delete_rule=PULL)) # 参加这个活动的人 clicks = fields.IntField() # 点击数 is_active = fields.BooleanField() def description(self): return self.creator.corporation.name + "发起了" + self.name def is_started(self): # 判断是否已经开始 if self.finish_time < datetime.datetime.now(): return True else: return False def get_reply(self): from reply.models import Reply return Reply.objects(target=self)
class Customer(Document): customerId = fields.StringField(max_length=10, required=True, null=False) customerName = fields.StringField(max_length=100, required=True) credit = fields.IntField() status = fields.BooleanField() remarks = fields.StringField(max_length=255, required=False) orders = fields.EmbeddedDocumentListField(Order)
class Request(Document): category_id = fields.StringField(required=True) mobile = fields.StringField(max_length=11) # todo keep a check radius = fields.IntField(required=True) location = fields.PointField(required=True) comment = fields.StringField(max_length=1000) created_at = fields.DateTimeField(required=True) user_id = fields.StringField(max_length=300) isCompleted = fields.BooleanField(default=False) isPaid = fields.BooleanField(default=False) isExpired = fields.BooleanField(default=False) provider_id = fields.StringField(max_length=300) complaints = fields.ListField(fields.StringField()) meta = {"db_alias": "default"}
class Location(Document): """ A location object """ name = fields.StringField() description = fields.StringField() address = fields.StringField() lat = fields.StringField() lng = fields.StringField() submitted_by = fields.StringField() certified = fields.BooleanField() feature_set = fields.EmbeddedDocumentField(FeatureSet, default=FeatureSet()) comments = fields.EmbeddedDocumentListField(Comment) def __repr__(self): # pragma: no cover return "Location(name=%r)" % self.name def toJSType(self): """ => dict of Location """ return dict(name=self.name, description=self.description, address=self.address, lat=self.lat, lng=self.lng, submitted_by=self.submitted_by, certified=self.certified, id=str(self.id), comments=[c.toJSType() for c in self.comments], feature_set=self.feature_set.toJSType())
class Place(gj.Document): title = fields.StringField(required=True, max_length=70, unique_with='address') main_category = fields.StringField(max_length=30, choices=src.categories) categories = fields.ListField(fields.StringField(max_length=30, choices=src.categories), default=[]) main_cuisine = fields.StringField(max_length=30, choices=src.cuisines) cuisines = fields.ListField(fields.StringField(max_length=30, choices=src.cuisines), default=[]) additional_services = fields.ListField(fields.StringField( max_length=30, choices=src.additional_services), default=[]) description = fields.StringField(max_length=3000) phone = fields.StringField(required=True, max_length=20, unique=True) instagram = fields.URLField() website = fields.URLField() timezone = fields.StringField(required=True) opening_hours = fields.ListField(field=fields.ListField( field=fields.DateTimeField(default=datetime.utcnow), max_length=2), max_length=7, default=[[None, None]] * 7) address = fields.EmbeddedDocumentField(Address, required=True) main_photo = fields.ReferenceField(Image, reverse_delete_rule=NULLIFY) photos = fields.ListField(fields.ReferenceField(Image, reverse_delete_rule=PULL), default=[]) general_review = fields.ReferenceField(GeneralReview, reverse_delete_rule=NULLIFY, unique=True) configuration = fields.EmbeddedDocumentField(Configuration) is_active = fields.BooleanField(default=False)
class LocationUpdate(Document): driver = fields.ReferenceField(User) timestamp = fields.DateTimeField() location = fields.StringField() checkin = fields.BooleanField() vehicle = fields.ReferenceField(Vehicle) handoff = fields.ReferenceField(User)
class User(Document): meta = { "indexes": [ 'email', ] } id = fields.UUIDField(primary_key=True, binary=False) username = fields.StringField(required=True, max_length=50) email = fields.EmailField(required=True, unique=True) password = fields.StringField(required=True) role = fields.StringField(default="user") active = fields.BooleanField(default=True) created_at = fields.DateTimeField(default=datetime.datetime.utcnow()) modified_at = fields.DateTimeField(default=datetime.datetime.utcnow()) def get_id(self): return self.id.__str__() def dict(self): return { 'id': self.get_id(), 'username': self.username, 'email': self.email, 'role': self.role, 'active': self.active }
class User(UserMixin, Document): username = fields.StringField(unique=True, required=True) email = fields.EmailField(required=False) password = fields.StringField(required=True) api_key = fields.StringField() active = fields.BooleanField(default=True) slug = fields.StringField(unique=True, required=True) def _clean_api_key(self): if self.api_key: exist = User.objects(api_key=self.api_key, username__ne=self.username).first() if exist: message = _( u"Conflict with api_key[%s]. Already exist") % value raise NotUniqueError(message) @classmethod def create_user(cls, username=None, password=None, api_key=None, update_if_exist=False): user = cls.objects(username__exact=username).first() if user: if not update_if_exist: return user user = user or cls(username=username) user.set_password(password) user.api_key = api_key return user.save() def clean(self): Document.clean(self) validators.clean_email_or_username(self.username, field_name="username", error_class=ValidationError) if self.api_key: self._clean_api_key() def save(self, **kwargs): self.slug = ModelSlug.unique_slug(User)(self.username) return Document.save(self, **kwargs) def __unicode__(self): return self.username meta = { 'collection': 'user', 'ordering': ['username'], 'indexes': ['username', 'slug'], }
class EventClassVar(EmbeddedDocument): meta = {"strict": False} name = fields.StringField(required=True) description = fields.StringField(required=False) type = fields.StringField( required=True, choices=[(x, x) for x in ( "str", "int", "float", "ipv4_address", "ipv6_address", "ip_address", "ipv4_prefix", "ipv6_prefix", "ip_prefix", "mac", "interface_name", "oid", )], ) required = fields.BooleanField(required=True) def __str__(self): return self.name def __eq__(self, other): return (self.name == other.name and self.description == other.description and self.type == other.type and self.required == other.required)