class Feedback(MongoModel): agentId = fields.ObjectIdField() consumerId = fields.ObjectIdField() transactionId = fields.ObjectIdField() value = fields.IntegerField() message = fields.CharField(blank=True) created_at = fields.DateTimeField()
class Accommodation(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId()) hotel_id = fields.ObjectIdField() name = fields.CharField() description = fields.CharField() max_guests = fields.IntegerField() image_url = fields.CharField(default='') created_at = fields.DateTimeField() updated_at = fields.DateTimeField(default=datetime.utcnow())
class Transactions(MongoModel): agentId = fields.ObjectIdField(required=True) consumerId = fields.ObjectIdField(required=True) consumeragentId = fields.ObjectIdField(required=True) offerId = fields.ObjectIdField(blank=True) bill = fields.IntegerField(blank=True) isFirst = fields.BooleanField(blank=True) redeem_points = fields.IntegerField(blank=True) created_at = fields.DateTimeField(required=True)
class PromotionsScheduler(MongoModel): offerId = fields.ObjectIdField() scheduler_at = fields.DateTimeField() agentId = fields.ObjectIdField() # asd= rest.objects.raw({'location': {'$near': SON([('$geometry', SON([('type', 'Point'), ('coordinates', [-122.406417,37.785834])])), ('$maxDistance', 500)])}}) # asd = rest.objects.raw({"location":{"$near": {"$geometry": {"type":"Point","coordinates":[-122.406417,37.785834]},"$maxDistance":500}}}) # for i in asd: # print i._data
class User(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId()) first_name = fields.CharField() last_name = fields.CharField() email = fields.CharField() password = fields.CharField() role = fields.ObjectIdField() superuser = fields.BooleanField() created_at = fields.DateTimeField() updated_at = fields.DateTimeField(default=datetime.utcnow()) @staticmethod def find_user(email, password): return User.objects.get({'email': email, 'password': password})
class RoomInventory(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId()) accommodation_id = fields.ObjectIdField() name = fields.CharField() description = fields.CharField(default='') daily_rates = fields.EmbeddedDocumentListField(DailyRate, default=[]) sell_start_date = fields.DateTimeField() sell_end_date = fields.DateTimeField() created_at = fields.DateTimeField() updated_at = fields.DateTimeField(default=datetime.utcnow()) @staticmethod def find_room_inventory(id): return RoomInventory.objects.get({'_id': ObjectId(id)})
class Role(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId()) name = fields.CharField() permissions = fields.ListField(fields.ObjectIdField(), default=[]) created_at = fields.DateTimeField() updated_at = fields.DateTimeField(default=datetime.utcnow()) def find_permissions(self): '''Find permissions belonging to this role''' permissions = Permission.objects.raw( {'_id': { '$in': self.permissions }}) return [p.name for p in list(permissions) if permissions]
def test_add_field(self): options = MongoOptions() # Add new Fields. options.add_field(fields.CharField(mongo_name='fname')) options.add_field(fields.UUIDField(mongo_name='id')) self.assertEqual(['fname', 'id'], [field.mongo_name for field in options.get_fields()]) # Replace a Field. options.add_field(fields.ObjectIdField(mongo_name='id')) self.assertIsInstance(options.get_fields()[-1], fields.ObjectIdField) # Replace a field with a different mongo_name, but same attname. new_field = fields.ObjectIdField(mongo_name='newid') new_field.attname = 'id' options.add_field(new_field) self.assertEqual(len(options.get_fields()), 2)
class Tasks(MongoModel): task_id = fields.CharField() task_description = fields.CharField() attempt_count = fields.IntegerField() required_points = fields.FloatField() criteria_pack_id = fields.CharField() presentation_id = fields.ObjectIdField(blank=True)
class MDBHyperpipe(MongoModel): class Meta: final = True connection_alias = 'photon_core' name = fields.CharField() version = fields.CharField() output_folder = fields.CharField(blank=True) permutation_id = fields.CharField(blank=True) permutation_failed = fields.CharField(blank=True) permutation_test = fields.EmbeddedDocumentField(MDBPermutationResults, blank=True) computation_completed = fields.BooleanField(default=False) computation_start_time = fields.DateTimeField(blank=True) computation_end_time = fields.DateTimeField(blank=True) outer_folds = fields.EmbeddedDocumentListField(MDBOuterFold, default=[], blank=True) best_config = fields.EmbeddedDocumentField(MDBConfig, blank=True) best_config_feature_importances = fields.ListField(blank=True) metrics_train = fields.EmbeddedDocumentListField(MDBFoldMetric, default=[], blank=True) metrics_test = fields.EmbeddedDocumentListField(MDBFoldMetric, default=[], blank=True) hyperpipe_info = fields.EmbeddedDocumentField(MDBHyperpipeInfo) # dummy estimator dummy_estimator = fields.EmbeddedDocumentField(MDBDummyResults, blank=True) # stuff for wizard connection user_id = fields.CharField(blank=True) wizard_object_id = fields.ObjectIdField(blank=True) wizard_system_name = fields.CharField(blank=True)
class Promotions(MongoModel): ''' if offer_type == rewardpoint: offer_data = {"reward_name":"spend 100 and get coke free","reward_points":100,"reward_Info":"coke"} ''' agentId = fields.ObjectIdField(required=True) consumerId = fields.ObjectIdField(blank=True) offerId = fields.ObjectIdField(blank=True) valid_from = fields.DateTimeField(required=True) valid_to = fields.DateTimeField(required=True) # asd= rest.objects.raw({'location': {'$near': SON([('$geometry', SON([('type', 'Point'), ('coordinates', [-122.406417,37.785834])])), ('$maxDistance', 500)])}}) # asd = rest.objects.raw({"location":{"$near": {"$geometry": {"type":"Point","coordinates":[-122.406417,37.785834]},"$maxDistance":500}}}) # for i in asd: # print i._data
class Response(BaseMongoModel): id = fields.ObjectIdField(primary_key=True) form = fields.ReferenceField(Form, on_delete=fields.ReferenceField.CASCADE) user = fields.ReferenceField(User, on_delete=fields.ReferenceField.CASCADE, blank=True) # paymentInfo = fields.EmbeddedDocumentField(PaymentInfo) paymentInfo = fields.DictField() payment_status_detail = fields.EmbeddedDocumentListField( PaymentStatusDetailItem, blank=True, default=list) paid = fields.BooleanField(default=False) amount_paid = fields.CharField(default="0") payment_trail = fields.EmbeddedDocumentListField(PaymentTrailItem, blank=True, default=list) update_trail = fields.EmbeddedDocumentListField(UpdateTrailItem, blank=True, default=list) email_trail = fields.EmbeddedDocumentListField(EmailTrailItem, blank=True, default=list) value = fields.DictField() date_created = fields.DateTimeField(required=True) date_modified = fields.DateTimeField(required=True) pending_update = fields.DictField(blank=True) admin_info = fields.DictField() modify_link = fields.CharField(blank=True) predicate = fields.DictField() counter = fields.IntegerField(blank=True)
class Offers(MongoModel): ''' if offer_type == rewardpoint: offer_data = {"reward_name":"spend 100 and get coke free","reward_points":100,"reward_Info":"coke"} ''' agentId = fields.ObjectIdField(required=True) name = fields.CharField(required=True) offer_type = fields.CharField(required=True) offer_data = fields.DictField(blank=True) promotion_data = fields.DictField(blank=True) scheduled_at = fields.DateTimeField(blank=True) valid_from = fields.DateTimeField(required=True) valid_to = fields.DateTimeField(required=True) class Meta: indexes = [ pymongo.IndexModel([('agentId', pymongo.ALL)], name="OffersagentIdIndexField"), pymongo.IndexModel([('valid_from', pymongo.ALL)], name="OffersvalidFromIndexField"), pymongo.IndexModel([('valid_to', pymongo.ALL)], name="OffersvalidToIndexField") ] # indexes # asd= rest.objects.raw({'location': {'$near': SON([('$geometry', SON([('type', 'Point'), ('coordinates', [-122.406417,37.785834])])), ('$maxDistance', 500)])}}) # asd = rest.objects.raw({"location":{"$near": {"$geometry": {"type":"Point","coordinates":[-122.406417,37.785834]},"$maxDistance":500}}}) # for i in asd: # print i._data
class Item(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId) name = fields.CharField(required=True) category = fields.CharField(required=True) price = fields.FloatField(required=True) availability = fields.IntegerField(default=0) updated_on = fields.DateTimeField(required=True)
class Language(MongoModel): alias = fields.CharField(required=True) label = fields.CharField(required=True) parent = fields.ObjectIdField(blank=True, default=None) @classmethod def get_all(cls): """ Get list of all language aliases :return: ['en_us', ...] :rtype: list """ return [lang.alias for lang in cls.objects.all()] @classmethod def get_by_alias(cls, alias): """ Get Language by alias :param alias: alias, like 'en_us' and s.o. :type: string :return: Language instance :rtype: Language """ if not alias: return None try: return cls.objects.get({'alias': alias}) except cls.DoesNotExist: return None class Meta: final = True indexes = [IndexModel('alias', unique=True)]
class Delivery(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId) creation_date = fields.DateTimeField(default=datetime.now) delivery_date = fields.DateTimeField(default=lambda: datetime.now() + timedelta(days=7)) status = fields.CharField(default='processing') current_location= fields.CharField(default='Depot') destination = fields.CharField(required=True) order_id = fields.CharField(required=True)
class Order(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId) name = fields.CharField() items = fields.ListField(field=fields.CharField()) bill = fields.FloatField() creation_date = fields.DateTimeField() destination = fields.CharField() delivery_id = fields.CharField()
class Sample(MongoModel): _id = fields.ObjectIdField(primary_key=True) data = fields.EmbeddedDocumentField(Data) class Meta: connection_alias = 'smsinfo' collection_name = 'sample' final = True
class Transcriptions(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId) transcription = fields.CharField() createdAt = fields.DateTimeField() class Meta: write_concern = WriteConcern(j=True) connection_alias = 'FirstSource'
class User(MongoModel): _id=fields.ObjectIdField(primary_key=True) text=fields.CharField() class Meta: connection_alias='user' collection_name='user' final=True
class NetworkObject(MongoModel): name = fields.CharField(max_length=MAX_LENGTH_CHAR) properties = fields.DictField() variables = fields.ListField(fields.ReferenceField(Variable)) connection_points = fields.ListField(fields.ReferenceField(Variable)) children = fields.ListField(fields.ObjectIdField()) interfaces = fields.ListField( fields.ReferenceField(NetworkInterfaceObject))
class NetworkObject(MongoModel): name = fields.CharField(primary_key=True, required=True) driver = fields.CharField(required=True) object_type = cusfields.EnumField(enums.ObjectType, required=True) management_ip = fields.CharField() children = fields.ListField(fields.ObjectIdField()) software = fields.EmbeddedDocumentField(SoftwareDataModel) class Meta: indexes = [IndexModel('children')]
class User(MongoModel): ''' if offer_type == rewardpoint: offer_data = {"reward_name":"spend 100 and get coke free","reward_points":100,"reward_Info":"coke"} ''' agentId = fields.ObjectIdField(required=True) email = fields.EmailField(required=True) password = fields.CharField(required=True) created_at = fields.DateTimeField(required=True) updated_at = fields.DateTimeField(required=True)
def test_add_field(self): options = MongoOptions() # Add new Fields. options.add_field(fields.CharField(mongo_name='fname')) options.add_field(fields.UUIDField(mongo_name='id')) self.assertEqual(['fname', 'id'], [field.mongo_name for field in options.get_fields()]) # Replace a Field. options.add_field(fields.ObjectIdField(mongo_name='id')) self.assertIsInstance(options.get_fields()[-1], fields.ObjectIdField)
class Reservation(MongoModel): _id = fields.ObjectIdField(primary_key=True, default=ObjectId()) check_in = fields.DateTimeField() check_out = fields.DateTimeField() adults = fields.IntegerField() children = fields.IntegerField() room_inventory_id = fields.ObjectIdField() first_name = fields.CharField() last_name = fields.CharField() email = fields.CharField() phone = fields.CharField() message = fields.CharField() conf_number = fields.CharField(default='undefined') status = fields.CharField(choices=('pending', 'confirmed', 'cancelled'), default='pending') created_at = fields.DateTimeField() updated_at = fields.DateTimeField(default=datetime.utcnow()) @staticmethod def find_reservation(id): return Reservation.objects.get({"_id": ObjectId(id)})
class Session(MongoModel): """ A session is the object representing the connection of a user to the API. """ token = fields.CharField() creator_id = fields.ObjectIdField() class Meta: collection_name = 'arkaan_authentication_sessions' final = True ignore_unknown_fields = True
class SmsInfo(MongoModel): _id = fields.ObjectIdField(primary_key=True) message = fields.EmbeddedDocumentField(Message) status = fields.EmbeddedDocumentField(Status) transaction = fields.EmbeddedDocumentField(Transaction) objects = SmsInfoManager() class Meta: connection_alias = 'smsinfo' collection_name = 'transactions' final = True
class Form(BaseMongoModel): name = fields.CharField(required=True) id = fields.ObjectIdField(primary_key=True) schema = fields.DictField(required=True) uiSchema = fields.DictField(required=True) formOptions = fields.EmbeddedDocumentField(FormOptions, required=True) couponCodes_used = fields.DictField(required=False) cff_permissions = fields.DictField(required=True) center = fields.CharField() date_modified = fields.DateTimeField(required=True) date_created = fields.DateTimeField(required=True) formType = fields.CharField() version = fields.IntegerField()
class Login(MongoModel): token = fields.CharField() fcmId = fields.CharField(blank=True) tokenId = fields.ObjectIdField() class Meta: indexes = [ pymongo.IndexModel([('tokenId', pymongo.ALL)], name="LogintokenDIndexField") ] # indexes # asd= rest.objects.raw({'location': {'$near': SON([('$geometry', SON([('type', 'Point'), ('coordinates', [-122.406417,37.785834])])), ('$maxDistance', 500)])}}) # asd = rest.objects.raw({"location":{"$near": {"$geometry": {"type":"Point","coordinates":[-122.406417,37.785834]},"$maxDistance":500}}}) # for i in asd: # print i._data
class Device(EmbeddedMongoModel): ID_FIELD = 'id' NAME_FIELD = 'name' STATUS_FIELD = 'status' CREATED_DATE_FIELD = 'created_date' DEFAULT_DEVICE_NAME = 'Device' MIN_DEVICE_NAME_LENGTH = 2 MAX_DEVICE_NAME_LENGTH = 32 class Status(IntEnum): NOT_ACTIVE = 0 ACTIVE = 1 BANNED = 2 @classmethod def choices(cls): return [(choice, choice.name) for choice in cls] @classmethod def coerce(cls, item): return cls(int(item)) if not isinstance(item, cls) else item def __str__(self): return str(self.value) id = fields.ObjectIdField(required=True, default=ObjectId, primary_key=True) created_date = fields.DateTimeField(default=datetime.now) status = fields.IntegerField(default=Status.NOT_ACTIVE) name = fields.CharField(default=DEFAULT_DEVICE_NAME, min_length=MIN_DEVICE_NAME_LENGTH, max_length=MAX_DEVICE_NAME_LENGTH, required=True) def get_id(self) -> str: return str(self.id) def to_dict(self) -> dict: return { Device.ID_FIELD: self.get_id(), Device.NAME_FIELD: self.name, Device.STATUS_FIELD: self.status, Device.CREATED_DATE_FIELD: date_to_utc_msec(self.created_date) }