class Schedule(VistaApiDocument): employee = fl.ReferenceField(Employee) shift_start_time = fl.IntField(max_value=1000, choices=SHIFT_START_TIME, required=True) work_day = fl.DateField() # indexed vacation_day = fl.DateField()
class Task(Document): """""" name = fields.StringField(required=True) description = fields.StringField() start_date = fields.DateField() end_date = fields.DateField() phase = fields.StringField(choices=PHASES_CHOICE, required=True) project = fields.ReferenceField('Project', required=True, reverse_delete_rule=mongoengine.CASCADE) assignee = fields.ReferenceField('User', required=True, reverse_delete_rule=mongoengine.CASCADE) reporter = fields.ReferenceField('User', reverse_delete_rule=mongoengine.NULLIFY) comments = fields.StringField(null=True) created_on = fields.DateTimeField() modified_on = fields.DateTimeField(default=datetime.datetime.now()) parent_task = fields.ReferenceField( 'self', required=False, blank=True, null=True, reverse_delete_rule=mongoengine.CASCADE) def save(self, *args, **kwargs): if not self.created_on: self.created_on = datetime.datetime.now() self.modified_on = datetime.datetime.now() return super(Task, self).save(*args, **kwargs)
class People(Document): _id = fields.ObjectIdField() name = fields.StringField() born = fields.DateField() sexuality = fields.StringField() school = fields.ReferenceField(School) group = fields.ListField(fields.ReferenceField(Group)) year = fields.DateField() types = fields.StringField() email = fields.EmailField() password = fields.StringField() favorites = fields.ReferenceField(Folder) meta = {'allow_inheritance': True}
class Employee(VistaApiDocument): class VacationDates(EmbeddedDocument): vacation_start_date = fl.DateField() vacation_end_date = fl.DateField() first_name = fl.StringField(max_length=30, required=True) last_name = fl.StringField(max_length=30, required=True) # indexed patronymic = fl.StringField(max_length=30) active = fl.BooleanField(default=True) preffered_time = fl.IntField(max_value=1000, choices=SHIFT_START_TIME) start_work_date = fl.DateField(default=(datetime.utcnow()).date()) date_of_dismissal = fl.DateField() vacation_days = fl.IntField(default=0) vacation_dates = fl.EmbeddedDocumentListField(VacationDates)
class User(Document): """Defines a user model for the database Attributes: email: The unique email used to register the user hashed_password: The string representation of the user's hashed password date_registered: The date the user registered for an account email_verified: A flag to track whether the user has verified their email """ email = fields.EmailField(unique=True, required=True) hashed_password = fields.StringField(required=True) date_registered = fields.DateField( default=datetime.now().strftime("%Y-%m-%d")) email_verified = fields.BooleanField(default=False) def check_user_provided_password(self, user_provided_password) -> bool: """Checks the validity of the user provided password Parameters: user_provided_password: password entered by the user Returns: Boolean value associated with validity of user provided password """ return check_password_hash(self.hashed_password, user_provided_password)
class Graffiti(EmbeddedDocument): _id = fields.ObjectIdField(required=True, default=lambda: fields.ObjectId()) imagen = fields.URLField(required=True) estado = fields.StringField(required=True) #poner enumerado fechaCaptura = fields.DateField(required=True) autor = fields.ReferenceField(Usuario, required=True)
class FundHistoryNetWorth(MongoModel): """基金历史净值""" meta = {'collection': 'fund_history_net_worth', 'indexes': ['code']} code = fields.StringField(max_length=6, verbose_name='基金代码') fund_name = fields.StringField(verbose_name='基金代码') net_worth = fields.IntField(verbose_name='净值, x1000') date = fields.DateField(verbose_name='日期') daily_growth_rate = fields.FloatField(verbose_name='日增长率') @classmethod def create(cls, code, fund_name, net_worth, date, daily_growth_rate, **kwargs): """注意使用同步需要保证有connection""" obj = cls(code=code, fund_name=fund_name, net_worth=net_worth, date=date, daily_growth_rate=daily_growth_rate, **kwargs) return obj.save() async def normal_info(self): return { 'code': self.code, 'fund_name': self.fund_name, 'net_worth': self.net_worth, 'date': self.date, 'daily_growth_rate': self.daily_growth_rate }
class TaskCard(BaseDocument): task_due_date = fl.DateField(default=datetime.utcnow) task_type = fl.StringField(max_length=10, choices=['Reminder', 'Call', 'Event']) task_status = fl.StringField(max_length=10, choices=['Active', 'Completed', 'Ended']) # TODO: set max_length task_body = fl.StringField() assigned_by_user = fl.ReferenceField(User, reverse_delete_rule=DENY)
class Project(Document): """""" name = fields.StringField(required=True) description = fields.StringField() maintainer = fields.ReferenceField('User', required=True, reverse_delete_rule=mongoengine.CASCADE) organization = fields.ReferenceField( 'Organization', required=True, reverse_delete_rule=mongoengine.CASCADE) start_date = fields.DateField() end_date = fields.DateField() created_on = fields.DateTimeField() modified_on = fields.DateTimeField(default=datetime.datetime.now()) time = fields.DateTimeField() def save(self, *args, **kwargs): if not self.created_on: self.created_on = datetime.datetime.now() self.modified_on = datetime.datetime.now() return super(Project, self).save(*args, **kwargs)
class CovidPersonalUser(Document): user = fields.LongField(required=True) date_birth = fields.DateField(required=True) last_send_geo = fields.DateTimeField() last_update_status = fields.DateTimeField(default=datetime.now) created_at = fields.DateTimeField(default=datetime.now) status = fields.StringField(required=True) observation = fields.StringField() coordinates = fields.PointField() class Meta: verbose_name = 'CovidPersonalUser' verbose_name_plural = 'CovidPersonalUsers' def __str__(self): return User.objects.get(pk=self.user).name
class CustomerDetails(Document): id = fields.IntField(db_field='id', primary_key=True, name='Customer ID') first_name = fields.StringField(required=True, name="First Name") last_name = fields.StringField(required=True, name="Last Name") full_name = fields.StringField(name="Customer Name") dob = fields.DateField(name="Date Of Birth", blank=False) phone_no = fields.IntField(name='Phone Number') pan_no = fields.DynamicField(name='PAN No') adhaar_no = fields.IntField(name='Adhaar No') # Seperate entity Address address = fields.ListField(fields.EmbeddedDocumentField(CustomerAddress)) def save(self, *args, **kw): if self.full_name == '': self.full_name = '{0} {1}'.format(self.first_name, self.last_name) id_count = CustomerDetails.objects.count() + 1 self.id = id_count super(CustomerDetails, self).save(*args, **kw)
class Rollcall(mongoengine.Document): """A rollcall object.""" bill_number = fields.StringField() clerk_rollnumber = fields.IntField() congress = fields.IntField() session = fields.IntField() vote_desc = fields.StringField() vote_question = fields.StringField() rollnumber = fields.IntField() rollcall_id = fields.StringField(db_field="id") vote_type = fields.StringField() nominate = fields.EmbeddedDocumentField(RollcallNominate) vote_result = fields.StringField() date = fields.DateField() legis_num = fields.StringField() percent_support = fields.FloatField() chamber = fields.StringField() last_updated = fields.DateTimeField() votes = fields.ListField(fields.EmbeddedDocumentField(Vote)) meta = {"collection": "voteview_rollcalls", "strict": False}
class Deal(BaseDocument): deal_date = fl.DateField() amount = fl.IntField() client = fl.StringField()
class Patient(Document): pid = fields.StringField(required=True) name = fields.StringField(required=True) phone = fields.StringField(required=True) dob = fields.DateField(required=True) tests = fields.ListField(fields.EmbeddedDocumentField(Test))
class Todo(DynamicDocument): date = fields.DateField() event = fields.StringField()
class Lote(EmbeddedDocument): existencia = fields.IntField() fecha_vencimiento = fields.DateField()
class VacationDates(EmbeddedDocument): vacation_start_date = fl.DateField() vacation_end_date = fl.DateField()
class Noticia(Document): titulo_noticia = fields.StringField(required=True) texto_noticia = fields.StringField(required=True) data_noticia = fields.DateField(required=False, null=True) autor_noticia = fields.StringField(required=True)
class DefecturaCard(VistaApiDocument): drug_name = fl.StringField(max_length=60, required=True) comment = fl.StringField(max_length=200) employee_name = fl.StringField(max_length=30, required=True) in_zd = fl.BooleanField(default=False) # indexed date = fl.DateField(default=(datetime.utcnow()).date()) # indexed
class Autor(Document): nome_autor = fields.StringField(required=True) email_autor = fields.StringField(required=True) data_cadastro_autor = fields.DateField(required=False,null=True)
class Project(EmbeddedDocument): projectId = fields.StringField(max_length=10, required=True, null=False) projectName = fields.StringField(max_length=100, required=True) startDate = fields.DateField() endDate = fields.DateField()
class Group(Document): _id = fields.ObjectIdField() name = fields.StringField() rank = fields.IntField() year = fields.DateField() school = fields.ReferenceField(School)