Class Producto

java.lang.Object
model.Producto
Direct Known Subclasses:
Bebida, Combo, Comida, Postre

public abstract class Producto extends Object
Clase abstracta que representa un producto del restaurante/cafeteria. Contiene los atributos y comportamientos comunes a todos los tipos de productos (Bebidas, Comidas, Postres, Combos). Gestiona informacion basica como precio, disponibilidad, informacion nutricional e ingredientes.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Field Details

    • idProducto

      protected int idProducto
      Identificador unico del producto.
    • nombreProducto

      protected String nombreProducto
      Nombre del producto.
    • descripcionProducto

      protected String descripcionProducto
      Descripcion detallada del producto.
    • precioBase

      protected BigDecimal precioBase
      Precio base del producto sin extras ni descuentos.
    • costoProduccion

      protected BigDecimal costoProduccion
      Costo de produccion del producto.
    • tiempoPreparacionMinutos

      protected int tiempoPreparacionMinutos
      Tiempo estimado de preparacion en minutos.
    • disponible

      protected boolean disponible
      Indica si el producto esta disponible para la venta.
    • imagenProducto

      protected String imagenProducto
      URL o ruta de la imagen del producto.
    • calorias

      protected int calorias
      Cantidad de calorias del producto.
    • ingredientesPrincipales

      protected List<String> ingredientesPrincipales
      Lista de ingredientes principales del producto.
    • esVegetariano

      protected boolean esVegetariano
      Indica si el producto es apto para vegetarianos.
    • esVegano

      protected boolean esVegano
      Indica si el producto es apto para veganos.
    • contieneGluten

      protected boolean contieneGluten
      Indica si el producto contiene gluten.
    • fechaIngresoMenu

      protected LocalDateTime fechaIngresoMenu
      Fecha en que el producto fue agregado al menu.
  • Constructor Details

    • Producto

      public Producto(int idProducto, String nombreProducto, BigDecimal precioBase)
      Constructor para crear un nuevo producto. Inicializa la disponibilidad como true y la fecha de ingreso como la fecha actual.
      Parameters:
      idProducto - Identificador unico del producto
      nombreProducto - Nombre del producto
      precioBase - Precio base del producto
  • Method Details

    • CalcularPrecioVenta

      public abstract BigDecimal CalcularPrecioVenta()
      Calcula el precio de venta final del producto. Puede incluir recargos, descuentos o ajustes especificos segun el tipo de producto.
      Returns:
      Precio de venta final
    • getIdProducto

      public int getIdProducto()
      Returns:
      Identificador unico del producto
    • setIdProducto

      public void setIdProducto(int idProducto)
      Parameters:
      idProducto - Nuevo identificador del producto
    • getNombreProducto

      public String getNombreProducto()
      Returns:
      Nombre del producto
    • setNombreProducto

      public void setNombreProducto(String nombreProducto)
      Parameters:
      nombreProducto - Nuevo nombre del producto
    • getDescripcionProducto

      public String getDescripcionProducto()
      Returns:
      Descripcion del producto
    • setDescripcionProducto

      public void setDescripcionProducto(String descripcionProducto)
      Parameters:
      descripcionProducto - Nueva descripcion del producto
    • getPrecioBase

      public BigDecimal getPrecioBase()
      Returns:
      Precio base del producto
    • setPrecioBase

      public void setPrecioBase(BigDecimal precioBase)
      Parameters:
      precioBase - Nuevo precio base
    • getCostoProduccion

      public BigDecimal getCostoProduccion()
      Returns:
      Costo de produccion
    • setCostoProduccion

      public void setCostoProduccion(BigDecimal costoProduccion)
      Parameters:
      costoProduccion - Nuevo costo de produccion
    • getTiempoPreparacionMinutos

      public int getTiempoPreparacionMinutos()
      Returns:
      Tiempo de preparacion en minutos
    • setTiempoPreparacionMinutos

      public void setTiempoPreparacionMinutos(int tiempoPreparacionMinutos)
      Parameters:
      tiempoPreparacionMinutos - Nuevo tiempo de preparacion
    • isDisponible

      public boolean isDisponible()
      Returns:
      true si esta disponible para la venta
    • setDisponible

      public void setDisponible(boolean disponible)
      Parameters:
      disponible - Nueva disponibilidad
    • getImagenProducto

      public String getImagenProducto()
      Returns:
      URL o ruta de la imagen
    • setImagenProducto

      public void setImagenProducto(String imagenProducto)
      Parameters:
      imagenProducto - Nueva URL de la imagen
    • getCalorias

      public int getCalorias()
      Returns:
      Calorias del producto
    • setCalorias

      public void setCalorias(int calorias)
      Parameters:
      calorias - Nuevas calorias
    • getIngredientesPrincipales

      public List<String> getIngredientesPrincipales()
      Returns:
      Lista de ingredientes principales
    • setIngredientesPrincipales

      public void setIngredientesPrincipales(List<String> ingredientesPrincipales)
      Parameters:
      ingredientesPrincipales - Nueva lista de ingredientes
    • isEsVegetariano

      public boolean isEsVegetariano()
      Returns:
      true si es vegetariano
    • setEsVegetariano

      public void setEsVegetariano(boolean esVegetariano)
      Parameters:
      esVegetariano - Nueva condicion vegetariana
    • isEsVegano

      public boolean isEsVegano()
      Returns:
      true si es vegano
    • setEsVegano

      public void setEsVegano(boolean esVegano)
      Parameters:
      esVegano - Nueva condicion vegana
    • isContieneGluten

      public boolean isContieneGluten()
      Returns:
      true si contiene gluten
    • setContieneGluten

      public void setContieneGluten(boolean contieneGluten)
      Parameters:
      contieneGluten - Nueva condicion de gluten
    • getFechaIngresoMenu

      public LocalDateTime getFechaIngresoMenu()
      Returns:
      Fecha de ingreso al menu
    • setFechaIngresoMenu

      public void setFechaIngresoMenu(LocalDateTime fechaIngresoMenu)
      Parameters:
      fechaIngresoMenu - Nueva fecha de ingreso
    • toString

      public String toString()
      Devuelve una representacion textual del producto. Formato: "id - nombre - $precioBase"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal del producto