Class Cliente

java.lang.Object
model.clientes.Cliente

public class Cliente extends Object
Clase que representa un cliente del cine. Contiene informacion personal del cliente, su membresia, puntos acumulados, preferencias y metodos para calcular descuentos, acumular puntos, verificar edad y validar si puede ver peliculas segun su clasificacion.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • Cliente

      public Cliente(String idCliente, String nombreCliente, String documentoIdentidad)
      Constructor para crear un nuevo cliente. Inicializa al cliente como tipo REGULAR, membresia BASICA, puntos en cero, historial vacio, fecha de registro actual y consentimiento de datos activado por defecto.
      Parameters:
      idCliente - Identificador unico del cliente
      nombreCliente - Nombre completo del cliente
      documentoIdentidad - Documento de identidad
  • Method Details

    • CalcularDescuento

      public BigDecimal CalcularDescuento()
      Calcula el descuento aplicable al cliente segun su nivel de membresia y puntos acumulados. Descuentos por membresia: PLATA 5%, ORO 10%, PLATINO 15%. Descuento adicional del 2% si tiene mas de 1000 puntos.
      Returns:
      Porcentaje de descuento como BigDecimal (ej: 0.10 = 10%)
    • AcumularPuntos

      public void AcumularPuntos(BigDecimal monto)
      Acumula puntos segun el monto gastado. Regla: 1 punto por cada $1,000 gastados. Actualiza automaticamente el nivel de membresia segun los puntos: - PLATINO: mas de 5000 puntos - ORO: mas de 2000 puntos - PLATA: mas de 500 puntos
      Parameters:
      monto - Monto gastado para calcular puntos
    • EsMayorEdad

      public boolean EsMayorEdad()
      Verifica si el cliente es mayor de edad (18 años o mas).
      Returns:
      true si tiene 18 años o mas, false en caso contrario
    • puedeVerPelicula

      public boolean puedeVerPelicula(String clasificacion)
      Verifica si el cliente puede ver una pelicula segun su clasificacion.
      Parameters:
      clasificacion - Clasificacion de la pelicula (TODO PUBLICO, MAYORES 7, 12, 15, 18)
      Returns:
      true si la edad del cliente cumple con la clasificacion
    • agregarReserva

      public void agregarReserva(String idReserva)
      Agrega una reserva al historial del cliente.
      Parameters:
      idReserva - Identificador de la reserva
    • getIdCliente

      public String getIdCliente()
      Returns:
      Identificador unico del cliente
    • setIdCliente

      public void setIdCliente(String idCliente)
      Parameters:
      idCliente - Nuevo identificador del cliente
    • getNombreCliente

      public String getNombreCliente()
      Returns:
      Nombre completo del cliente
    • setNombreCliente

      public void setNombreCliente(String nombreCliente)
      Parameters:
      nombreCliente - Nuevo nombre del cliente
    • getDocumentoIdentidad

      public String getDocumentoIdentidad()
      Returns:
      Documento de identidad
    • setDocumentoIdentidad

      public void setDocumentoIdentidad(String documentoIdentidad)
      Parameters:
      documentoIdentidad - Nuevo documento de identidad
    • getEmailCliente

      public String getEmailCliente()
      Returns:
      Correo electronico
    • setEmailCliente

      public void setEmailCliente(String emailCliente)
      Parameters:
      emailCliente - Nuevo correo electronico
    • getTelefonoCliente

      public String getTelefonoCliente()
      Returns:
      Telefono de contacto
    • setTelefonoCliente

      public void setTelefonoCliente(String telefonoCliente)
      Parameters:
      telefonoCliente - Nuevo telefono
    • getTipoCliente

      public String getTipoCliente()
      Returns:
      Tipo de cliente (REGULAR, VIP)
    • setTipoCliente

      public void setTipoCliente(String tipoCliente)
      Parameters:
      tipoCliente - Nuevo tipo de cliente
    • getFechaNacimiento

      public LocalDateTime getFechaNacimiento()
      Returns:
      Fecha de nacimiento
    • setFechaNacimiento

      public void setFechaNacimiento(LocalDateTime fechaNacimiento)
      Parameters:
      fechaNacimiento - Nueva fecha de nacimiento
    • getPuntosAcumulados

      public int getPuntosAcumulados()
      Returns:
      Puntos acumulados
    • setPuntosAcumulados

      public void setPuntosAcumulados(int puntosAcumulados)
      Parameters:
      puntosAcumulados - Nuevos puntos acumulados
    • getNivelMembresia

      public String getNivelMembresia()
      Returns:
      Nivel de membresia (BASICA, PLATA, ORO, PLATINO)
    • setNivelMembresia

      public void setNivelMembresia(String nivelMembresia)
      Parameters:
      nivelMembresia - Nuevo nivel de membresia
    • getHistorialReservas

      public List<String> getHistorialReservas()
      Returns:
      Lista de identificadores de reservas
    • setHistorialReservas

      public void setHistorialReservas(List<String> historialReservas)
      Parameters:
      historialReservas - Nueva lista de reservas
    • getFechaRegistro

      public LocalDateTime getFechaRegistro()
      Returns:
      Fecha de registro
    • setFechaRegistro

      public void setFechaRegistro(LocalDateTime fechaRegistro)
      Parameters:
      fechaRegistro - Nueva fecha de registro
    • getPreferenciaGenero

      public String getPreferenciaGenero()
      Returns:
      Genero de pelicula preferido
    • setPreferenciaGenero

      public void setPreferenciaGenero(String preferenciaGenero)
      Parameters:
      preferenciaGenero - Nueva preferencia de genero
    • getPreferenciaIdioma

      public String getPreferenciaIdioma()
      Returns:
      Idioma preferido
    • setPreferenciaIdioma

      public void setPreferenciaIdioma(String preferenciaIdioma)
      Parameters:
      preferenciaIdioma - Nueva preferencia de idioma
    • isConsentimientoDatos

      public boolean isConsentimientoDatos()
      Returns:
      true si acepto tratamiento de datos
    • setConsentimientoDatos

      public void setConsentimientoDatos(boolean consentimientoDatos)
      Parameters:
      consentimientoDatos - Nuevo estado de consentimiento
    • isEsVIP

      public boolean isEsVIP()
      Returns:
      true si es VIP
    • setEsVIP

      public void setEsVIP(boolean esVIP)
      Parameters:
      esVIP - Nuevo estado VIP
    • toString

      public String toString()
      Devuelve una representacion textual del cliente. Formato: "nombre (tipo) - Puntos: puntos"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal del cliente