"""Cree una clase llamada Producto que contenga los atributos de nombre, referencia, precio y descripción, además
utilizando la herencia cree subclases para libros, adornos y alimentos y coloque los atributos correspondientes
para cada uno, recuerde que un atributo para libro seria autor pero en un alimento el autor no tendria sentido.
Esto se soluciona usando la herencia, para evitar confusiones entre atributos."""

# El ejercicio comienza aquí.

class Producto:

    def __init__(self, nombre, referencia, precio, descripcion):
        self.nombre = nombre
        self.referencia = referencia
        self.precio = precio
        self.descripcion = descripcion

    def __str__(self):
        return """\
    Nombre:\t\t{}
    Referencia:\t\t{}
    Precio:\t\t{}
    Descripción:\t{}""".format(self.nombre, self.referencia, self.precio, self.descripcion)

class Adorno(Producto):

    pass

adorno1 = Adorno("Vaso de vidrio con lentejuelas","#VAS135", "1.75$", "Vaso para fiestas en familia")

class Libro(Producto):

    autor = ""
    editorial = ""

    def __str__(self):
        return """\
    Nombre:\t\t{}
    Referencia:\t\t{}
    Precio:\t\t{}
    Descripción:\t{}
    Autor:\t\t{}
    Editorial:\t\t{}""".format(self.nombre, self.referencia, self.precio, self.descripcion, self.autor, self.editorial)


libro1 = Libro("El Caracol", "#LIB275", "25$", "Libro para estudiantes de primaria")
libro1.autor = "Juan Barradas"
libro1.editorial = "Santillana"

class Alimentos(Producto):
    
    productor = ""
    distribuidor = ""
    sabor = ""

    def __str__(self):
            return """\
    Nombre:\t\t{}
    Referencia:\t\t{}
    Precio:\t\t{}
    Descripción:\t{}
    Productor:\t\t{}
    Distribuidor:\t{}
    Sabor:\t\t{}""".format(self.nombre, self.referencia, self.precio, self.descripcion, self.productor, self.distribuidor, self.sabor)

alimento1 = Alimentos("Helado de migurt".upper(), "#HEL2657".upper(), 1.25, "Helado hecho a base de yogurt de fresa".upper())
alimento1.sabor = "Fresa"
alimento1.productor = "Empresas Polar"
alimento1.distribuidor = "Empresas podemos"

productos = [alimento1, libro1, adorno1]

for p in productos:
    if (isinstance(p, Adorno)):
        print(p.nombre, p.referencia)
    elif isinstance(p, Alimentos):
        print(p.nombre, p.referencia)
    elif isinstance(p, Libro):
        print(p.nombre, p.referencia)
    else:
        print("El producto no se encuentra en inventario.")

def rebajar_precio(p, rebaja):
    p.precio = p.precio - (p.precio/100 * rebaja)
    return p
