Class Membresia

java.lang.Object
model.miembros.Membresia
Direct Known Subclasses:
MembresiaAnual, MembresiaMensual, MembresiaTrimestral, MembresiaVitalicia

public abstract class Membresia extends Object
Clase abstracta que representa una membresia del gimnasio. Contiene los atributos y comportamientos comunes a todos los tipos de membresia (Mensual, Trimestral, Anual, Vitalicia). Gestiona fechas de inicio y fin, validacion de acceso, registro de accesos y calculo de dias restantes.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Field Details

    • idMembresia

      protected String idMembresia
      Identificador unico de la membresia.
    • fechaInicio

      protected LocalDateTime fechaInicio
      Fecha y hora de inicio de la membresia.
    • fechaFin

      protected LocalDateTime fechaFin
      Fecha y hora de finalizacion de la membresia.
    • precioPagado

      protected BigDecimal precioPagado
      Precio pagado por la membresia.
    • metodoPago

      protected String metodoPago
      Metodo de pago utilizado (Efectivo, Tarjeta, Transferencia).
    • diasRestantes

      protected int diasRestantes
      Cantidad de dias restantes de vigencia.
    • accesosIncluidos

      protected int accesosIncluidos
      Cantidad de accesos incluidos en la membresia (0 = ilimitados).
    • accesosRealizados

      protected int accesosRealizados
      Cantidad de accesos ya realizados.
  • Constructor Details

    • Membresia

      public Membresia(String idMembresia, LocalDateTime fechaInicio, int diasVigencia)
      Constructor para crear una nueva membresia. Inicializa la fecha de fin sumando los dias de vigencia a la fecha de inicio. Los accesos realizados comienzan en cero.
      Parameters:
      idMembresia - Identificador unico de la membresia
      fechaInicio - Fecha y hora de inicio
      diasVigencia - Cantidad de dias de vigencia
  • Method Details

    • CalcularDiasRestantes

      public int CalcularDiasRestantes()
      Calcula los dias restantes de vigencia de la membresia. Si la fecha actual es posterior a la fecha de fin, retorna 0.
      Returns:
      Cantidad de dias restantes
    • ValidarAcceso

      public boolean ValidarAcceso()
      Valida si el miembro puede acceder al gimnasio con esta membresia. Condiciones: - La fecha actual no debe ser posterior a la fecha de fin - Si hay limite de accesos, no deben haberse superado
      Returns:
      true si el acceso esta permitido, false en caso contrario
    • RegistrarAcceso

      public void RegistrarAcceso()
      Registra un acceso del miembro al gimnasio. Solo incrementa el contador si el acceso es valido.
    • getTipoMembresia

      public abstract String getTipoMembresia()
      Obtiene el tipo de membresia como texto.
      Returns:
      Tipo de membresia (MENSUAL, TRIMESTRAL, ANUAL, VITALICIA)
    • getIdMembresia

      public String getIdMembresia()
      Returns:
      Identificador unico de la membresia
    • setIdMembresia

      public void setIdMembresia(String idMembresia)
      Parameters:
      idMembresia - Nuevo identificador
    • getFechaInicio

      public LocalDateTime getFechaInicio()
      Returns:
      Fecha de inicio
    • setFechaInicio

      public void setFechaInicio(LocalDateTime fechaInicio)
      Parameters:
      fechaInicio - Nueva fecha de inicio
    • getFechaFin

      public LocalDateTime getFechaFin()
      Returns:
      Fecha de fin
    • setFechaFin

      public void setFechaFin(LocalDateTime fechaFin)
      Parameters:
      fechaFin - Nueva fecha de fin
    • getPrecioPagado

      public BigDecimal getPrecioPagado()
      Returns:
      Precio pagado
    • setPrecioPagado

      public void setPrecioPagado(BigDecimal precioPagado)
      Parameters:
      precioPagado - Nuevo precio pagado
    • getMetodoPago

      public String getMetodoPago()
      Returns:
      Metodo de pago
    • setMetodoPago

      public void setMetodoPago(String metodoPago)
      Parameters:
      metodoPago - Nuevo metodo de pago
    • getDiasRestantes

      public int getDiasRestantes()
      Returns:
      Dias restantes de vigencia
    • getAccesosIncluidos

      public int getAccesosIncluidos()
      Returns:
      Accesos incluidos (0 = ilimitados)
    • setAccesosIncluidos

      public void setAccesosIncluidos(int accesosIncluidos)
      Parameters:
      accesosIncluidos - Nueva cantidad de accesos incluidos
    • getAccesosRealizados

      public int getAccesosRealizados()
      Returns:
      Accesos realizados
    • setAccesosRealizados

      public void setAccesosRealizados(int accesosRealizados)
      Parameters:
      accesosRealizados - Nueva cantidad de accesos realizados
    • toString

      public String toString()
      Devuelve una representacion textual de la membresia. Formato: "tipo - Vigente hasta: fecha - Accesos: realizados/incluidos"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal de la membresia