Пример #1
0
class precioCanchaModel(bd.Model):
    __tablename__ = "t_precioCancha"
    pc_id = bd.Column(bd.Integer, primary_key=True)
    pc_desc = bd.Column(bd.String(45))
    pc_monto = bd.Column(bd.DECIMAL(5, 2))
    pc_disponibilidad = bd.Column(bd.Boolean)
    can_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_canchita.can_id'),
                       nullable=False)
    reservas = bd.relationship('reservaModel', lazy=True, backref='reserva')

    def __init__(self, descripcion, monto, disponibilidad, cancha_id):
        self.pc_desc = descripcion
        self.pc_monto = monto
        self.pc_disponibilidad = disponibilidad
        self.can_id = cancha_id

    def retornar_json(self):
        return {
            'id': self.pc_id,
            'descripcion': self.pc_desc,
            'monto': str(self.pc_monto),
            'id_cancha': self.can_id
        }

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()

    def actualizar_estado(self, nuevo_estado):
        self.pc_disponibilidad = nuevo_estado
        bd.session.commit()
Пример #2
0
class reservaModel(bd.Model):
    __tablename__ = "t_reserva"
    res_id = bd.Column(bd.Integer, primary_key=True)
    res_fechin = bd.Column(bd.DateTime)
    res_fechfin = bd.Column(bd.DateTime)
    res_monto = bd.Column(bd.DECIMAL(5, 2))
    res_adelanto = bd.Column(bd.DECIMAL(5, 2))
    usu_id = bd.Column(bd.Integer, bd.ForeignKey('t_usuario.usu_id'))
    pc_id = bd.Column(bd.Integer, bd.ForeignKey('t_precioCancha.pc_id'))

    valoraciones = bd.relationship('valoracionesModel',
                                   backref='valoraciones',
                                   lazy=True)

    def __init__(self, fecha_inicio, fecha_fin, monto, adelanto, id_usu,
                 id_precio):
        self.res_fechin = fecha_inicio
        self.res_fechfin = fecha_fin
        self.res_monto = monto
        self.res_adelanto = adelanto
        self.usu_id = id_usu
        self.pc_id = id_precio

    def retornar_json(self):
        return {
            'id': self.tipo_id,
            'descripcion': {
                'fecha inicio': self.res_fechin,
                'fecha fin': self.res_fechfin
            }
        }

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
Пример #3
0
class TipoModel(bd.Model):
    __tablename__ = "t_tipo"
    tipo_id = bd.Column(bd.Integer, primary_key=True)
    tipo_desc = bd.Column(bd.String(45), nullable=True)
    canchitas = bd.relationship('CanchitaModel', lazy=True, backref='t_tipo')

    # es una manera simple de declara una nueva propiedad en la clase CanchitasModel para poder ingresar a sus valores solamente necesitaria canchita.tipo para acceder a todos los valores del tipo

    def __init__(self, descripcion):
        self.tipo_desc = descripcion

    def retornar_json(self):
        return {'id': self.tipo_id, 'descripcion': self.tipo_desc}

    def retornar_json_con_nombre_local(self):
        locales = []
        for canchita in self.canchitas:
            locales.append({
                'nombre': canchita.local.loc_nombre,
                'latitud': str(canchita.local.loc_lat),
                'longitud': str(canchita.local.loc_lng)
            })

        listanuevalocales = []
        for local in locales:
            if local not in listanuevalocales:
                listanuevalocales.append(local)
        return {'descripcion': self.tipo_desc, 'locales': listanuevalocales}

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
Пример #4
0
class CanchitaModel(bd.Model):
    __tablename__ = "t_canchita"
    can_id = bd.Column(bd.Integer, primary_key=True)
    can_tam = bd.Column(bd.String(45))
    can_foto = bd.Column(bd.Text)
    # RELACIONES
    loc_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_local.loc_id'),
                       nullable=False)
    tipo_id = bd.Column(bd.Integer,
                        bd.ForeignKey('t_tipo.tipo_id'),
                        nullable=False)
    # ESTO NO CREA LA RELACION ( LO QUE CREA LA RELACION ES
    # EL FOREIGN KEY)
    local = bd.relationship('LocalModel', lazy=True)
    tipos = bd.relationship('TipoModel', lazy=True)
    preciocancha = bd.relationship('precioCanchaModel', lazy=True)

    def __init__(self, tamanio, foto, local, tipo):
        self.can_tam = tamanio
        self.can_foto = foto
        self.loc_id = local
        self.tipo_id = tipo

    def retornar_json(self):
        return {
            'id': self.can_id,
            'tamaño': self.can_tam,
            'foto': self.can_foto,
            'local': self.local.loc_nombre,
            'tipo': self.tipos.tipo_desc
        }

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
Пример #5
0
class LocalModel(bd.Model):
    __tablename__ = "t_local"
    loc_id = bd.Column(bd.Integer, primary_key=True)
    loc_nombre = bd.Column(bd.String(45))
    loc_lat = bd.Column(bd.DECIMAL(10, 8))
    loc_lng = bd.Column(bd.DECIMAL(10, 8))
    loc_direccion = bd.Column(bd.String(45))
    loc_fono = bd.Column(bd.String(15))
    usu_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_usuario.usu_id'),
                       nullable=False)
    canchitas = bd.relationship('CanchitaModel', lazy=True, backref='cancha')

    # 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
    def __init__(self, nombre, latitud, longitud, direccion, telefono, id_usu):
        self.loc_nombre = nombre
        self.loc_lat = latitud
        self.loc_lng = longitud
        self.loc_direccion = direccion
        self.loc_fono = telefono
        self.usu_id = id_usu

    def retornar_json(self):
        return {
            'id': self.loc_id,
            'nombre': self.loc_nombre,
            'latitud': str(self.loc_lat),
            'longitud': str(self.loc_lng),
            'direccion': self.loc_direccion,
            'telefono': self.loc_fono
        }

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()