Class Cliente
java.lang.Object
model.clientes.Cliente
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAcumularPuntos(BigDecimal monto) Acumula puntos segun el monto gastado.voidagregarReserva(String idReserva) Agrega una reserva al historial del cliente.Calcula el descuento aplicable al cliente segun su nivel de membresia y puntos acumulados.booleanVerifica si el cliente es mayor de edad (18 años o mas).intbooleanbooleanisEsVIP()booleanpuedeVerPelicula(String clasificacion) Verifica si el cliente puede ver una pelicula segun su clasificacion.voidsetConsentimientoDatos(boolean consentimientoDatos) voidsetDocumentoIdentidad(String documentoIdentidad) voidsetEmailCliente(String emailCliente) voidsetEsVIP(boolean esVIP) voidsetFechaNacimiento(LocalDateTime fechaNacimiento) voidsetFechaRegistro(LocalDateTime fechaRegistro) voidsetHistorialReservas(List<String> historialReservas) voidsetIdCliente(String idCliente) voidsetNivelMembresia(String nivelMembresia) voidsetNombreCliente(String nombreCliente) voidsetPreferenciaGenero(String preferenciaGenero) voidsetPreferenciaIdioma(String preferenciaIdioma) voidsetPuntosAcumulados(int puntosAcumulados) voidsetTelefonoCliente(String telefonoCliente) voidsetTipoCliente(String tipoCliente) toString()Devuelve una representacion textual del cliente.
-
Constructor Details
-
Cliente
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 clientenombreCliente- Nombre completo del clientedocumentoIdentidad- Documento de identidad
-
-
Method Details
-
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
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
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
Agrega una reserva al historial del cliente.- Parameters:
idReserva- Identificador de la reserva
-
getIdCliente
- Returns:
- Identificador unico del cliente
-
setIdCliente
- Parameters:
idCliente- Nuevo identificador del cliente
-
getNombreCliente
- Returns:
- Nombre completo del cliente
-
setNombreCliente
- Parameters:
nombreCliente- Nuevo nombre del cliente
-
getDocumentoIdentidad
- Returns:
- Documento de identidad
-
setDocumentoIdentidad
- Parameters:
documentoIdentidad- Nuevo documento de identidad
-
getEmailCliente
- Returns:
- Correo electronico
-
setEmailCliente
- Parameters:
emailCliente- Nuevo correo electronico
-
getTelefonoCliente
- Returns:
- Telefono de contacto
-
setTelefonoCliente
- Parameters:
telefonoCliente- Nuevo telefono
-
getTipoCliente
- Returns:
- Tipo de cliente (REGULAR, VIP)
-
setTipoCliente
- Parameters:
tipoCliente- Nuevo tipo de cliente
-
getFechaNacimiento
- Returns:
- Fecha de nacimiento
-
setFechaNacimiento
- 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
- Returns:
- Nivel de membresia (BASICA, PLATA, ORO, PLATINO)
-
setNivelMembresia
- Parameters:
nivelMembresia- Nuevo nivel de membresia
-
getHistorialReservas
-
setHistorialReservas
-
getFechaRegistro
- Returns:
- Fecha de registro
-
setFechaRegistro
- Parameters:
fechaRegistro- Nueva fecha de registro
-
getPreferenciaGenero
- Returns:
- Genero de pelicula preferido
-
setPreferenciaGenero
- Parameters:
preferenciaGenero- Nueva preferencia de genero
-
getPreferenciaIdioma
- Returns:
- Idioma preferido
-
setPreferenciaIdioma
- 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
-