class DetalleField(EmbeddedDocument): PERIODO = fields.StringField(required=True) CREDITO = fields.IntField() DEBITO = fields.IntField() COMPROBANTE_ID = fields.LazyReferenceField('Comprobantes', passthrough=False, dbref=False) CUENTA_COBRO_ID = fields.LazyReferenceField('Cuenta_Cobro', passthrough=False, dbref=False)
class UnidadPrivadaField(EmbeddedDocument): PROPIEDAD = fields.StringField(required=True) IDENTIFICADOR = fields.StringField(required=True) GRUPO = fields.StringField(required=True) UNIDAD_PRIVADA_ID = fields.LazyReferenceField('Unidades_Privadas', passthrough=False, dbref=False) PROPIEDAD_ID = fields.LazyReferenceField('Propiedades_Horizontales', passthrough=False, dbref=False)
class Interface(db.Document, BaseApplianceMixin): name = fields.StringField() type = fields.StringField() protocol = fields.StringField() location = fields.StringField() note = fields.StringField() pcl = fields.StringField() _parent_device = fields.LazyReferenceField(Device, db_field='parent_device_id', reverse_delete_rule=CASCADE) _parent_equipment = fields.LazyReferenceField( Equipment, db_field='parent_equipment_id', reverse_delete_rule=CASCADE) images = fields.ListField(fields.ReferenceField(Image)) meta = { 'indexes': [ ('is_deleted', 'is_template'), ('name', 'note', 'is_deleted', 'is_template'), ('_parent_device', 'is_deleted', 'is_template'), ('_parent_equipment', 'is_deleted', 'is_template'), ('_create_user', 'is_deleted', 'is_template'), ('created_at', 'is_deleted', 'is_template'), ] } @property def parent_equipment(self): try: equipment = self._parent_equipment.fetch() return equipment if not equipment.is_deleted or not self.is_template else None except Equipment.DoesNotExist: return None @parent_equipment.setter def parent_equipment(self, parent_equipment): self._parent_equipment = parent_equipment @property def parent_device(self): try: device = self._parent_device.fetch() return device if not device.is_deleted or not self.is_template else None except Device.DoesNotExist: return None @parent_device.setter def parent_device(self, parent_device): self._parent_device = parent_device
class Device(db.Document, BaseApplianceMixin): name = fields.StringField(default=None) type = fields.StringField(default=None) location = fields.StringField(default=None) system = fields.StringField(default=None) sn = fields.StringField(default=None) manufacturer = fields.StringField(default=None) note = fields.StringField(default=None) _parent_equipment = fields.LazyReferenceField( Equipment, db_field='parent_equipment_id', reverse_delete_rule=CASCADE) images = fields.ListField(fields.ReferenceField(Image)) meta = { 'indexes': [ ('is_deleted', 'is_template'), ('name', 'note', 'is_deleted', 'is_template'), ('_parent_equipment', 'is_deleted', 'is_template'), ('_create_user', 'is_deleted', 'is_template'), ('created_at', 'is_deleted', 'is_template'), ] } @property def parent_equipment(self): try: equipment = self._parent_equipment.fetch() return equipment if not equipment.is_deleted or not self.is_template else None except Equipment.DoesNotExist: return None @parent_equipment.setter def parent_equipment(self, parent_equipment): self._parent_equipment = parent_equipment
class Unidades_Privadas(Document): PROPIEDAD_ID = fields.LazyReferenceField('Propiedades_Horizontales', passthrough=False, dbref=False) IDENTIFICADOR = fields.StringField(required=True) GRUPO = fields.StringField(required=True) MATRICULA_INMOBILIARIA = fields.StringField(required=True) AREA_PRIVADA = fields.FloatField() AREA_COMUN = fields.FloatField() AREA_CONSTRUIDA = fields.FloatField() ESTADO_UNIDAD = fields.StringField(required=True) HABITACIONES = fields.IntField() BAÑOS = fields.IntField() CANTIDAD_PARQUEADEROS = fields.IntField() MAXIMO_AUTOS = fields.IntField() MAXIMO_MOTOS = fields.IntField() COEFICIENTE_COPROPIEDAD = fields.FloatField() ESTADO_CARTERA = fields.StringField() RESIDENTES = fields.ListField(fields.EmbeddedDocumentField(ResidenteField)) PARQUEADEROS = fields.ListField(fields.StringField()) VEHICULOS_PERMANENTES = fields.ListField( fields.EmbeddedDocumentField(VehiculoPermanenteField)) VEHICULOS_TEMPORALES = fields.ListField( fields.EmbeddedDocumentField(VehiculoTemporalField)) PROPIETARIO = fields.EmbeddedDocumentField(PropietarioField) ESTADO_CUENTA = fields.EmbeddedDocumentField(EstadoCuentaField) HABILITADO = fields.BooleanField()
class Historico_Parametros(DynamicDocument): PROPIEDAD_ID = fields.LazyReferenceField(Usuarios, passthrough=False, dbref=False) TIPO = fields.StringField(required=True) FECHA_DESDE = fields.DateTimeField(default=datetime.datetime.utcnow) FECHA_HASTA = fields.DateTimeField(default=datetime.datetime.utcnow)
class AdministradorField(EmbeddedDocument): NOMBRE = fields.StringField(required=True) TELEFONO = fields.StringField(required=True) CORREO = fields.EmailField() USUARIO_ID = fields.LazyReferenceField(Usuarios, passthrough=False, dbref=False)
class RepresentanteField(EmbeddedDocument): NOMBRE = fields.StringField(required=True) TIPO_DOCUMENTO = fields.StringField(required=True) NUMERO_DOCUMENTO = fields.StringField(required=True) CORREO = fields.LazyReferenceField(Usuarios, passthrough=False, dbref=False)
class BaseApplianceMixin(BaseModelMixin): is_template = fields.BooleanField(default=False) _verify_user = fields.LazyReferenceField(User, db_field='verify_user_id') _create_user = fields.LazyReferenceField(User, required=True, db_field='create_user_id') _update_user = fields.LazyReferenceField(User, required=True, db_field='update_user_id') update_num = fields.IntField(default=1) updatable = fields.BooleanField(default=True) @property def create_user(self): try: return self._create_user.fetch() except User.DoesNotExist: return None @create_user.setter def create_user(self, create_user): self._create_user = create_user @property def update_user(self): try: return self._update_user.fetch() except User.DoesNotExist: return None @update_user.setter def update_user(self, update_user): self._update_user = update_user @property def verify_user(self): try: return self._verify_user.fetch() except User.DoesNotExist: return None @verify_user.setter def verify_user(self, verify_user): self._verify_user = verify_user
class PropietarioField(EmbeddedDocument): NOMBRE = fields.StringField(required=True) CORREO = fields.EmailField() TIPO_DOCUMENTO = fields.StringField(required=True) DOCUMENTO = fields.StringField(required=True) USUARIO_ID = fields.LazyReferenceField('Usuarios', passthrough=False, dbref=False)
class User(Document): email = fields.EmailField(unique=True) password = fields.StringField() name = fields.StringField() profile = fields.URLField() acquisition_date = fields.DateTimeField() last_login = fields.DateTimeField() boards = fields.ListField(fields.LazyReferenceField('Board'))
class AsignacionPHField(EmbeddedDocument): ROL = fields.StringField(required=True) FECHA_INICIO = fields.DateTimeField(default=datetime.datetime.utcnow) FECHA_FIN = fields.DateTimeField(default=datetime.datetime.utcnow) PROPIEDAD_ID = fields.LazyReferenceField('Propiedades_Horizontales', passthrough=False, dbref=False) HABILITADO = fields.BooleanField()
class Noticias(DynamicDocument): PROPIEDAD_ID = fields.LazyReferenceField(Propiedades_Horizontales, passthrough=False, dbref=False) TITULO = fields.StringField(required=True) MENSAJE = fields.StringField(required=True) IMAGEN = fields.FileField() TIPO = fields.StringField(required=True) FECHA_INICIO = fields.DateTimeField(default=datetime.datetime.utcnow) FECHA_FIN = fields.DateTimeField(default=datetime.datetime.utcnow) HABILITADO = fields.BooleanField()
class Comprobantes(Document): PROPIEDAD_ID = fields.LazyReferenceField('Propiedades_Horizontales', passthrough=False, dbref=False) UNIDAD_PRIVADA = fields.EmbeddedDocumentField(UnidadPrivadaField) PERIODO = fields.StringField(required=True) VALOR = fields.IntField() DOCUMENTO = fields.FileField() FECHA_PAGO = fields.DateTimeField(default=datetime.datetime.utcnow)
class Cobros(DynamicDocument): PROPIEDAD_ID = fields.LazyReferenceField(Propiedades_Horizontales, passthrough=False, dbref=False) PERIODO = fields.StringField(required=True) TIPO = fields.StringField(required=True) DESCRIPCION = fields.StringField() VALOR = fields.IntField() FECHA = fields.DateTimeField(default=datetime.datetime.utcnow) HABILITADO = fields.BooleanField()
class Image(db.Document, BaseModelMixin): name = fields.StringField() type = fields.StringField() _create_user = fields.LazyReferenceField(User, required=True, db_field='create_user_id') @property def url(self): resource_context = current_app.config['STATIC_RESOURCE_CONTEXT'] date_path = datetime.strftime(self.created_at, '%Y/%m') return path.join(resource_context, date_path, self.real_name) @property def real_name(self): return str(self.id) + get_file_ext(self.name) @property def create_user(self): return self._create_user.fetch() @create_user.setter def create_user(self, create_user): self._create_user = create_user
class Thread(Document): board = fields.LazyReferenceField(Board) content = fields.StringField(max_length=512, required=True)
class Cable(db.Document, BaseApplianceMixin): name = fields.StringField(default=None) signal_type = fields.StringField(default=None) shield_type = fields.StringField(default=None) note = fields.StringField(default=None) is_custom = fields.BooleanField(default=False) parameter_list = fields.StringField(default=None) images = fields.ListField(fields.ReferenceField(Image)) _start_equipment = fields.LazyReferenceField(Equipment, db_field='start_equipment_id', reverse_delete_rule=CASCADE) _start_device = fields.LazyReferenceField(Device, db_field='start_device_id', reverse_delete_rule=CASCADE) _start_interface = fields.LazyReferenceField(Interface, db_field='start_interface_id', reverse_delete_rule=CASCADE) _end_equipment = fields.LazyReferenceField(Equipment, db_field='end_equipment_id', reverse_delete_rule=CASCADE) _end_device = fields.LazyReferenceField(Device, db_field='end_device_id', reverse_delete_rule=CASCADE) _end_interface = fields.LazyReferenceField(Interface, db_field='end_interface_id', reverse_delete_rule=CASCADE) meta = { 'indexes': [ ('is_deleted', 'is_template'), ('name', 'note', 'is_deleted', 'is_template'), ('_start_equipment', 'is_deleted', 'is_template'), ('_start_device', 'is_deleted', 'is_template'), ('_start_interface', 'is_deleted', 'is_template'), ('_end_equipment', 'is_deleted', 'is_template'), ('_end_device', 'is_deleted', 'is_template'), ('_end_interface', 'is_deleted', 'is_template'), ('_create_user', 'is_deleted', 'is_template'), ('created_at', 'is_deleted', 'is_template'), ] } @property def start_device(self): try: start_device = self._start_device.fetch() return start_device if not start_device.is_deleted or not self.is_template else None except Device.DoesNotExist: return None @start_device.setter def start_device(self, start_device): self._start_device = start_device @property def start_equipment(self): try: start_equipment = self._start_equipment.fetch() return start_equipment if not start_equipment.is_deleted or not self.is_template else None except Equipment.DoesNotExist: return None @start_equipment.setter def start_equipment(self, start_equipment): self._start_equipment = start_equipment @property def start_interface(self): try: start_interface = self._start_interface.fetch() return start_interface if not start_interface.is_deleted or not self.is_template else None except Interface.DoesNotExist: return None @start_interface.setter def start_interface(self, start_interface): self._start_interface = start_interface @property def end_device(self): try: end_device = self._end_device.fetch() return end_device if not end_device.is_deleted or not self.is_template else None except Device.DoesNotExist: return None @end_device.setter def end_device(self, end_device): self._end_device = end_device @property def end_equipment(self): try: end_equipment = self._end_equipment.fetch() return end_equipment if not end_equipment.is_deleted or not self.is_template else None except Equipment.DoesNotExist: return None @end_equipment.setter def end_equipment(self, end_equipment): self._end_equipment = end_equipment @property def end_interface(self): try: end_interface = self._end_interface.fetch() return end_interface if not end_interface.is_deleted or not self.is_template else None except Interface.DoesNotExist: return None @end_interface.setter def end_interface(self, end_interface): self._end_interface = end_interface
class Post(Document): post_id = fields.IntField(primary_key=True) author = fields.LazyReferenceField(User)
class PropiedadHorizontalField(EmbeddedDocument): PROPIEDAD_ID = fields.LazyReferenceField(Propiedades_Horizontales, passthrough=False, dbref=False) NOMBRE = fields.StringField(required=True) DIRECCION = fields.EmbeddedDocumentField(DireccionField) NIT = fields.StringField(required=True)
class ElementoField(EmbeddedDocument): DESCRIPCION = fields.StringField(required=True) VALOR = fields.IntField() COBRO_ID = fields.LazyReferenceField(Cobros, passthrough=False, dbref=False)
class Parametros(DynamicDocument): PROPIEDAD_ID = fields.LazyReferenceField(Propiedades_Horizontales, passthrough=False, dbref=False) TIPO = fields.StringField(required=True)
class ComprobanteField(EmbeddedDocument): PERIODO = fields.StringField(required=True) VALOR_PAGO = fields.IntField() FECHA_PAGO = fields.DateTimeField(default=datetime.datetime.utcnow) COMPROBANTE_ID = fields.LazyReferenceField(Comprobantes, passthrough=False, dbref=False)
class CharacterTurn(Turn): character = fields.LazyReferenceField('Character')
class BoardAccessMatrix(Document): board = fields.LazyReferenceField('Board') user = fields.LazyReferenceField('User') level = fields.StringField()
class Board(Document): title = fields.StringField() description = fields.StringField() lanes = fields.ListField(fields.LazyReferenceField('Lane')) access_level = fields.IntField()
class Lane(Document): board = fields.LazyReferenceField('Board') title = fields.StringField() description = fields.StringField() cards = fields.ListField(fields.LazyReferenceField('Card'))
class Card(Document): lane = fields.LazyReferenceField('Lane') title = fields.StringField() description = fields.StringField() ctype = fields.IntField()