Class ClaseGrupal

java.lang.Object
model.clases.ClaseGrupal
Direct Known Subclasses:
ClaseCrossfit, ClasePilates, ClaseSpinning, ClaseYoga

public abstract class ClaseGrupal extends Object
Clase abstracta que representa una clase grupal del gimnasio. Contiene los atributos y comportamientos comunes a todos los tipos de clases (Yoga, Spinning, Crossfit, Pilates). Gestiona horarios, cupos, inscripciones y lista de miembros inscritos.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Field Details

    • idClase

      protected String idClase
      Identificador unico de la clase.
    • nombreClase

      protected String nombreClase
      Nombre de la clase.
    • horarioInicio

      protected LocalDateTime horarioInicio
      Fecha y hora de inicio de la clase.
    • duracionMinutos

      protected int duracionMinutos
      Duracion de la clase en minutos (por defecto 60).
    • cupoMaximo

      protected int cupoMaximo
      Capacidad maxima de miembros por clase (por defecto 20).
    • inscritosActuales

      protected int inscritosActuales
      Cantidad actual de miembros inscritos.
    • instructorAsignado

      protected String instructorAsignado
      Nombre del instructor asignado a la clase.
    • salonUbicacion

      protected String salonUbicacion
      Ubicacion del salon donde se dicta la clase.
    • miembrosInscritos

      protected List<String> miembrosInscritos
      Lista de identificadores de miembros inscritos.
  • Constructor Details

    • ClaseGrupal

      public ClaseGrupal(String idClase, String nombreClase, LocalDateTime horarioInicio)
      Constructor para crear una nueva clase grupal. Inicializa la duracion en 60 minutos, cupo maximo en 20, inscritosActuales en 0 y lista de inscritos vacia.
      Parameters:
      idClase - Identificador unico de la clase
      nombreClase - Nombre de la clase
      horarioInicio - Fecha y hora de inicio de la clase
  • Method Details

    • CalcularHoraFin

      public LocalDateTime CalcularHoraFin()
      Calcula la hora de finalizacion de la clase. Suma la duracion en minutos a la hora de inicio.
      Returns:
      Fecha y hora de finalizacion
    • HayCupo

      public boolean HayCupo()
      Verifica si hay cupo disponible en la clase.
      Returns:
      true si inscritosActuales es menor a cupoMaximo
    • InscribirMiembro

      public boolean InscribirMiembro(String idMiembro)
      Inscribe un miembro en la clase. Solo si hay cupo disponible y el miembro no esta ya inscrito.
      Parameters:
      idMiembro - Identificador del miembro a inscribir
      Returns:
      true si la inscripcion fue exitosa, false en caso contrario
    • CancelarInscripcion

      public void CancelarInscripcion(String idMiembro)
      Cancela la inscripcion de un miembro en la clase.
      Parameters:
      idMiembro - Identificador del miembro a cancelar
    • getTipoClase

      public abstract String getTipoClase()
      Obtiene el tipo de clase como texto.
      Returns:
      Tipo de clase (YOGA, SPINNING, CROSSFIT, PILATES)
    • getIdClase

      public String getIdClase()
      Returns:
      Identificador unico de la clase
    • setIdClase

      public void setIdClase(String idClase)
      Parameters:
      idClase - Nuevo identificador de la clase
    • getNombreClase

      public String getNombreClase()
      Returns:
      Nombre de la clase
    • setNombreClase

      public void setNombreClase(String nombreClase)
      Parameters:
      nombreClase - Nuevo nombre de la clase
    • getHorarioInicio

      public LocalDateTime getHorarioInicio()
      Returns:
      Fecha y hora de inicio
    • setHorarioInicio

      public void setHorarioInicio(LocalDateTime horarioInicio)
      Parameters:
      horarioInicio - Nueva fecha y hora de inicio
    • getDuracionMinutos

      public int getDuracionMinutos()
      Returns:
      Duracion en minutos
    • setDuracionMinutos

      public void setDuracionMinutos(int duracionMinutos)
      Parameters:
      duracionMinutos - Nueva duracion en minutos
    • getCupoMaximo

      public int getCupoMaximo()
      Returns:
      Cupo maximo de la clase
    • setCupoMaximo

      public void setCupoMaximo(int cupoMaximo)
      Parameters:
      cupoMaximo - Nuevo cupo maximo
    • getInscritosActuales

      public int getInscritosActuales()
      Returns:
      Cantidad actual de inscritos
    • setInscritosActuales

      public void setInscritosActuales(int inscritosActuales)
      Parameters:
      inscritosActuales - Nueva cantidad de inscritos
    • getInstructorAsignado

      public String getInstructorAsignado()
      Returns:
      Nombre del instructor asignado
    • setInstructorAsignado

      public void setInstructorAsignado(String instructorAsignado)
      Parameters:
      instructorAsignado - Nuevo instructor asignado
    • getSalonUbicacion

      public String getSalonUbicacion()
      Returns:
      Ubicacion del salon
    • setSalonUbicacion

      public void setSalonUbicacion(String salonUbicacion)
      Parameters:
      salonUbicacion - Nueva ubicacion del salon
    • getMiembrosInscritos

      public List<String> getMiembrosInscritos()
      Returns:
      Lista de identificadores de miembros inscritos
    • toString

      public String toString()
      Devuelve una representacion textual de la clase. Formato: "nombreClase - horaInicio (inscritos/cupoMaximo)"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal de la clase