class TriajeModel(bd.Model): __tablename__ = "t_triaje" id = bd.Column("triaje_id", bd.Integer, primary_key=True) peso = bd.Column("triaje_peso", bd.DECIMAL(5, 2)) temperatura = bd.Column("triaje_temp", bd.DECIMAL(5, 2)) # RELACIONES atencion_id = bd.Column(bd.Integer, bd.ForeignKey("t_atencion.atencion_id")) # esto sirve para crear nuestra relacion de uno a uno atencion = bd.relationship("AtencionModel", uselist=False) def __init__(self, peso, temperatura, atencion): self.peso = peso self.temperatura = temperatura self.atencion_id = atencion def guardar_bd(self): bd.session.add(self) bd.session.commit() def devolver_triaje(self): return { 'peso': self.peso, 'temperatura': self.temperatura, 'atencion': self.atencion_id } def actualizar_triaje(self, peso, temperatura): self.peso = peso self.temperatura = temperatura bd.session.commit()
class DetalleDocumentoModel(bd.Model): __tablename__ = "t_detalle_doc" id = bd.Column("dd_id", bd.Integer, primary_key=True) precio = bd.Column("dd_precio", bd.DECIMAL(5, 2)) descuento = bd.Column("db_dscto", bd.DECIMAL(5, 2)) # RELACION cd_id = bd.Column(bd.Integer, bd.ForeignKey("t_cabecera_doc.cd_id"), nullable=False) atencion_id = bd.Column(bd.Integer, bd.ForeignKey("t_atencion.atencion_id"), nullable=False) def __init__(self, precio, descuento, cabecera, atencion): self.precio = precio self.descuento = descuento self.cd_id = cabecera self.atencion_id = atencion def guardar_bd(self): bd.session.add(self) bd.session.commit() def traer_detalle(self): return {'precio': self.precio, 'cabecera': self.cd_id}
class CabeceraDocumentoModel(bd.Model): __tablename__="t_cabecera_doc" id = bd.Column("cd_id", bd.Integer, primary_key=True) fecha = bd.Column("cd_fech", bd.Date) numeracion = bd.Column("cd_numeracion", bd.String(25)) total = bd.Column("cd_total", bd.DECIMAL(5,2)) # RELACION usu_id = bd.Column(bd.Integer, bd.ForeignKey("t_usuario.usu_id"), nullable=False) detalles = bd.relationship("DetalleDocumentoModel") def __init__(self, fecha, numeracion, total, id_usu): self.fecha = fecha self.numeracion = numeracion self.total = total self.usu_id = id_usu def retornar_cabecera(self): return { 'nro': self.numeracion, 'fecha': self.fecha, 'total' : self.total } def guardar_bd(self): bd.session.add(self) bd.session.commit()
class PrecioModel(bd.Model): __tablename__="t_precio" id = bd.Column("precio_id",bd.Integer, primary_key=True) descripcion = bd.Column("precio_desc", bd.String(45)) precio = bd.Column("precio_precio", bd.DECIMAL(5,2)) # RELACIONES atenciones = bd.relationship("AtencionModel") def __init__(self, descripcion, precio): self.descripcion = descripcion self.precio = precio def guardar_bd(self): bd.session.add(self) bd.session.commit() def retornar_precio(self): return { 'descripcion':self.descripcion, 'precio':self.precio } def actualizar_precio(self, descripcion, precio): self.descripcion= descripcion self.precio = precio bd.session.commit()
class LocalModel(bd.Model): __tablename__ = "t_local" id = bd.Column("loc_id", bd.Integer, primary_key=True) nombre = bd.Column("loc_nombre", bd.String(45)) latitud = bd.Column("loc_lat", bd.DECIMAL(10, 8)) longitud = bd.Column("loc_lng", bd.DECIMAL(10, 8)) direccion = bd.Column("loc_direccion", bd.String(45)) fono = bd.Column("loc_fono", bd.String(15)) usuario = bd.Column("usu_id", bd.Integer, bd.ForeignKey('t_usuario.usu_id'), nullable=False) # ---------------- canchitas = bd.relationship('CanchitaModel', lazy=True, backref="cancha") # opcion = bd.relationship('OpcionesModel',lazy=True,backref="opciones") def __init__(self, nombre, latitud, longitud, direccion, fono, usu_id): self.nombre = nombre self.latitud = latitud self.longitud = longitud self.direccion = direccion self.fono = fono self.usuario = usu_id def retornar_yisun(self): return { 'id': self.id, 'nombre': self.nombre, 'latitud': str(self.latitud), 'longitud': str(self.longitud), 'direccion': self.direccion, 'fono': self.fono, } def guardar_na_bd(self): bd.session.add(self) bd.session.commit() # parametros para el lazy puede ser # 'select'/True => que va a cargar la data de su hijo # 'joined'/False => es como usar un inner join cuando vamos a hacer un select # 'subquery'' => es igual que joined pero x detras usa una subquery para jalar los datos del hijo # 'dynamic' => retorna los objetos del join de la consulta
class ReservaModel(bd.Model): __tablename__ = "t_reserva" id = bd.Column("res_id",bd.Integer,primary_key=True) fechainit = bd.Column("res_fechin",bd.DATETIME) fechaend = bd.Column("res_fechfin",bd.DATETIME) monto = bd.Column("res_monto",bd.DECIMAL(5,2)) adelanto = bd.Column("res_adelanto",bd.DECIMAL(5,2)) user = bd.Column("usu_id",bd.Integer,bd.ForeignKey('t_usuario.usu_id'), nullable=False) cancha = bd.Column("pc_id",bd.Integer,bd.ForeignKey('t_precioCancha.pc_id'),nullable=False) usuarios = bd.relationship('UsuarioModel', lazy=True) precio = bd.relationship('PrecioCanchaModel') valoraciones = bd.relationship('ValoracionesModel',lazy=True,backref="valoracion") def __init__(self,fechainit,fechaend,monto,adelanto,user,cancha): self.fechainit = fechainit self.fechaend = fechaend self.monto = monto self.adelanto = adelanto self.user = user self.cancha = cancha def retornar_json(self): return{ 'id': self.id, 'descripcion':{ 'fechainit': self.fechainit, 'fechaend': self.fechaend, # 'monto': self.monto, # 'adelanto': self.adelanto, # 'user': self.user, # 'cancha': self.cancha } } def guarda_en_la_bd(self): bd.session.add(self) bd.session.commit()
class PrecioCanchaModel(bd.Model): __tablename__ = "t_precioCancha" id = bd.Column("pc_id", bd.Integer, primary_key=True) descripcion = bd.Column("pc_desc", bd.String(45)) monto = bd.Column("pc_monto", bd.DECIMAL(5, 2)) disponible = bd.Column("pc_disponibilidad", bd.Boolean) canchita = bd.Column("can_id", bd.Integer, bd.ForeignKey('t_canchita.can_id'), nullable=False) cancha = bd.relationship("CanchitaModel", lazy=True) reservas = bd.relationship("ReservaModel", lazy=True, backref="reserva") def __init__(self, descripcion, monto, disponibilidad, canchita): self.descripcion = descripcion self.monto = monto self.disponible = disponibilidad self.canchita = canchita def retornar_yisus(self): return { 'id': self.id, 'descripcion': self.descripcion, 'monto': str(self.monto), # 'disponible': self.disponible, } def guarda_en_la_bd(self): bd.session.add(self) bd.session.commit() def actualizar_estado(self, nuevo_estado): self.disponible = nuevo_estado bd.session.commit()