class Auction(Document): class Meta: strict = False id = fields.IntegerField(attribute="_id") guild_id = fields.IntegerField(required=True) message_id = fields.IntegerField(required=True) pokemon = fields.EmbeddedField(EmbeddedPokemon, required=True) user_id = fields.IntegerField(required=True) current_bid = fields.IntegerField(required=True) bid_increment = fields.IntegerField(required=True) bidder_id = fields.IntegerField(default=None) ends = fields.DateTimeField(required=True)
class FormFillingTest(Document): # pylint: disable=abstract-method """ Represents finished/inprogress tests of form filling """ # config to test course_config = fields.ObjectIdField(required=True) # with information from this user requested_by = fields.ObjectIdField( required=False) # holds which user (fenetre) can see this time_executed = fields.DateTimeField(required=False, allow_none=True) # status is_finished = fields.BoolField(default=False) in_progress = fields.BoolField(default=False) is_scheduled = fields.BoolField(default=False) # results errors = fields.ListField(fields.EmbeddedField(LockboxFailure), default=[]) fill_result = fields.EmbeddedField(FillFormResult, default=None, allow_none=True)
class Form(Document): sub_fields = fields.ListField(fields.EmbeddedField(FormField), default=list, validate=_validate_form_fields) # id of file in gridfs, should be a png representative_thumbnail = fields.ObjectIdField(default=None) # Friendly title for this form configuration name = fields.StrField() # is this form the default? if there are multiple of these, uh panic # TODO: use io_validate to check that is_default = fields.BoolField(default=False)
class City(Document, metaclass=MetaBaseTemplate): __collection__ = 'cities' geonameid = fields.IntegerField(required=True) code_name = fields.StringField(required=True) iso_name = fields.StringField() count_journeys = fields.IntegerField(required=True, missing=0) count_articles = fields.IntegerField(required=True, missing=0) points = fields.ListField(fields.EmbeddedField(Point), required=True) class Meta: indexes = [ IndexModel([('geonameid', ASCENDING), ('code_name', ASCENDING)], unique=True) ]
class Form(Document): # pylint: disable=abstract-method """ Configuration for a form type to fill out. Taken from fenetre/db.py. """ sub_fields = fields.ListField(fields.EmbeddedField(FormField)) # id of file in gridfs, should be a png representative_thumbnail = fields.ObjectIdField(default=None) # Friendly title for this form configuration name = fields.StrField() # is this form the default? is_default = fields.BoolField(default=False)
class CachedFormGeometry(Document): # pylint: disable=abstract-method """ A document used for caching results to requests for form geometry. """ url = fields.URLField(required=True, unique=True) # Token of the user that requested this form geometry # used to limit requests per user requested_by = fields.StrField(required=False, allow_none=True) geometry = fields.ListField(fields.EmbeddedField(FormGeometryEntry), required=False, allow_none=True) auth_required = fields.BoolField(required=False, allow_none=True) screenshot_file_id = fields.ObjectIdField(required=False, allow_none=True) grab_screenshot = fields.BoolField(default=False) response_status = fields.IntField(required=False) error = fields.StrField(required=False)
class Chat(umongo.Document): chat_id = fields.IntegerField(required=True, unique=True) settings = fields.EmbeddedField(ChatSettings) class Meta: collection_name = "chats" @staticmethod async def create_chat( chat_id: int, settings: ChatSettings ) -> Union["Chat", NoReturn]: chat = Chat(chat_id=chat_id, settings=settings) await chat.commit() return chat @staticmethod async def get_chat(chat_id: int) -> Optional["Chat"]: chat = await Chat.find_one({"chat_id": chat_id}) return chat
class Post(Document): title = fields.StrField() content = fields.StrField() comments = fields.ListField(fields.EmbeddedField(Comment)) created_by = fields.ReferenceField(User) created_at = fields.DateTimeField(default=datetime.now()) updated_at = fields.DateTimeField(default=datetime.now()) class Meta: collection = db.post @classmethod async def get(cls, id: str): if not ObjectId.is_valid(id): return None return await cls.find_one({'_id': ObjectId(id)}) def add_comment(self, comment: Comment): self.comments = self.comments + [comment]
class ChatSettings(umongo.EmbeddedDocument): cas_banned = fields.EmbeddedField(Punishment) spamwatch_banned = fields.EmbeddedField(Punishment) intellivoid_banned = fields.EmbeddedField(Punishment) account_creation_date_less_than_months = fields.IntegerField() inappropriate_account_creation_date = fields.EmbeddedField(Punishment) rtl_characters_in_name = fields.EmbeddedField(Punishment) url_in_name = fields.EmbeddedField(Punishment) def sort_punishments_by_weight( self, ignore_none_punishments: bool = True, sort_by_length: bool = False ): punishments = sort_punishments_by_weight(self, ignore_none_punishments) if sort_by_length: punishments = sorted( punishments, key=lambda p: len(violations_display_name[p.name]) ) return punishments
class MyDoc(Document): embedded = fields.EmbeddedField(MyEmbeddedDocument, attribute='in_mongo_embedded', allow_none=True)
class MyParentEmbeddedDocument(EmbeddedDocument): embedded = fields.EmbeddedField(MyChildEmbeddedDocument)
class MyDoc(Document): impossibru = fields.EmbeddedField(AbstractChild)
class MyDoc(Document): parent = fields.EmbeddedField(EmbeddedParent) child = fields.EmbeddedField(EmbeddedChild)
class Team(Document): name = fields.StrField(attribute='n') leader = fields.EmbeddedField(Person, attribute='l') sponsors = fields.ListField(fields.EmbeddedField(Company), attribute='s')
class Bag(Document): id = fields.EmbeddedField(Accessory, attribute='_id', required=True) content = fields.ListField(fields.EmbeddedField(Accessory))
class Parent(Document): name = fields.StrField() child = fields.EmbeddedField(Child)
class MyDoc(Document): embeds = fields.ListField(fields.EmbeddedField(MyEmbeddedDocument)) refs = fields.ListField(fields.ReferenceField(ToRefDoc))
class MyOtherDoc(Document): impossible = fields.EmbeddedField(AbstractChild)
class Listing(Document): id = fields.IntegerField(attribute="_id") pokemon = fields.EmbeddedField(Pokemon, required=True) user_id = fields.IntegerField(required=True) price = fields.IntegerField(required=True)
class MyDoc(Document): embeds = fields.DictField( values=fields.EmbeddedField(MyEmbeddedDocument)) refs = fields.DictField(values=fields.ReferenceField(ToRefDoc))
class MyDoc(Document): embedded_list = fields.ListField(fields.EmbeddedField(MyEmbedded), allow_none=True) embedded_dict = fields.DictField( values=fields.EmbeddedField(MyEmbedded), allow_none=True) embedded = fields.EmbeddedField(MyEmbedded, allow_none=True)
class IOStudent(Student): io_field = fields.StrField(io_validate=io_validate) list_io_field = fields.ListField(fields.IntField(io_validate=io_validate)) reference_io_field = fields.ReferenceField(classroom_model.Course, io_validate=io_validate) embedded_io_field = fields.EmbeddedField(EmbeddedDoc, io_validate=io_validate)
class Book(Document): title = fields.StrField() length = fields.IntField(attribute='l') author = fields.EmbeddedField(Author, attribute='a') chapters = fields.ListField(fields.EmbeddedField(Chapter)) tags = fields.ListField(fields.StrField(), attribute='t')
class MyDoc(Document): embedded = fields.EmbeddedField(MyEmbedded) embedded_required = fields.EmbeddedField(MyEmbedded, required=True) embedded_list = fields.ListField(fields.EmbeddedField(MyEmbedded))
class Driver(Document): name = fields.StrField() vehicle = fields.EmbeddedField(Vehicle)
class MyDoc(Document): e = fields.EmbeddedField(MyEmbeddedDocument) l = fields.ListField(fields.EmbeddedField(MyEmbeddedDocument)) b = fields.IntField(required=True)
class Parent(Document): name = fields.StrField() birthday = fields.DateTimeField(dump_only=True) child = fields.EmbeddedField(Child)
class MyDoc(Document): embedded = fields.EmbeddedField(MyParentEmbeddedDocument)
class Book(Document): title = fields.StrField(attribute='t') author = fields.EmbeddedField(Author, attribute='a') chapters = fields.ListField(fields.EmbeddedField(Chapter), attribute='c')
class Company(EmbeddedDocument): name = fields.StrField(attribute='cn') contact = fields.EmbeddedField(Person, attribute='cc')