Class LogicaNegocio
java.lang.Object
model.infraestructura.LogicaNegocio
Clase que contiene la logica de negocio y reglas del sistema bancario.
Gestiona validaciones de limites diarios, bloqueo de cuentas,
aplicacion de intereses, notificaciones y deteccion de transacciones sospechosas.
- Author:
- ISC Israel de Jesus Mar Parada
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAplicarIntereses(CuentaAhorro cuenta) Aplica los intereses a una cuenta de ahorro.voidEnviarNotificacion(String mensaje) Envia una notificacion al usuario si las notificaciones estan activadas.booleanesTransaccionSospechosa(Transaccion transaccion) Detecta si una transaccion es potencialmente sospechosa o fraudulenta.intbooleanbooleanvoidRegistra un intento fallido de autenticacion en una cuenta.voidregistrarTransaccion(Transaccion transaccion) Registra una transaccion en el historial reciente.voidsetContadorTransferenciasHoy(int contadorTransferenciasHoy) voidsetEsPrimerInicioSesion(boolean esPrimerInicioSesion) voidsetNotificacionesActivadas(boolean notificacionesActivadas) voidsetPreferenciaIdioma(String preferenciaIdioma) voidsetUltimasTresTransacciones(List<Transaccion> ultimasTresTransacciones) booleanValidarLimiteDiario(CuentaBancaria cuenta, BigDecimal monto) Valida si una cuenta puede realizar una operacion respetando sus limites diarios.booleanVerificarBloqueo(CuentaBancaria cuenta) Verifica si una cuenta bancaria esta bloqueada.
-
Constructor Details
-
LogicaNegocio
public LogicaNegocio()Constructor para crear la logica de negocio. Inicializa el contador de transferencias en cero, lista de ultimas transacciones vacia, primer inicio de sesion verdadero, idioma preferido "ES" (espanol) y notificaciones activadas.
-
-
Method Details
-
ValidarLimiteDiario
Valida si una cuenta puede realizar una operacion respetando sus limites diarios. Verifica tanto retiros como transferencias.- Parameters:
cuenta- Cuenta bancaria a validarmonto- Monto de la operacion- Returns:
- true si el monto no excede los limites diarios, false en caso contrario
-
VerificarBloqueo
Verifica si una cuenta bancaria esta bloqueada.- Parameters:
cuenta- Cuenta bancaria a verificar- Returns:
- true si la cuenta esta bloqueada, false en caso contrario
-
RegistrarIntentoFallido
Registra un intento fallido de autenticacion en una cuenta. Si se alcanzan 3 intentos fallidos, envia una notificacion de bloqueo.- Parameters:
cuenta- Cuenta en la que se registro el intento fallido
-
AplicarIntereses
Aplica los intereses a una cuenta de ahorro. Calcula los intereses, los deposita en la cuenta y envia una notificacion.- Parameters:
cuenta- Cuenta de ahorro a la que se aplicaran los intereses
-
EnviarNotificacion
Envia una notificacion al usuario si las notificaciones estan activadas.- Parameters:
mensaje- Mensaje a enviar como notificacion
-
registrarTransaccion
Registra una transaccion en el historial reciente. Mantiene solo las ultimas 3 transacciones y actualiza el contador de transferencias del dia si la transaccion es una transferencia.- Parameters:
transaccion- Transaccion a registrar
-
esTransaccionSospechosa
Detecta si una transaccion es potencialmente sospechosa o fraudulenta. Criterios: montos mayores a $5,000,000 o mas de 10 transferencias en el dia.- Parameters:
transaccion- Transaccion a evaluar- Returns:
- true si la transaccion es sospechosa, false en caso contrario
-
getContadorTransferenciasHoy
public int getContadorTransferenciasHoy()- Returns:
- Contador de transferencias realizadas hoy
-
setContadorTransferenciasHoy
public void setContadorTransferenciasHoy(int contadorTransferenciasHoy) - Parameters:
contadorTransferenciasHoy- Nuevo contador de transferencias
-
getUltimasTresTransacciones
- Returns:
- Lista de las ultimas tres transacciones
-
setUltimasTresTransacciones
- Parameters:
ultimasTresTransacciones- Nueva lista de ultimas transacciones
-
isEsPrimerInicioSesion
public boolean isEsPrimerInicioSesion()- Returns:
- true si es el primer inicio de sesion
-
setEsPrimerInicioSesion
public void setEsPrimerInicioSesion(boolean esPrimerInicioSesion) - Parameters:
esPrimerInicioSesion- Nuevo estado de primer inicio
-
getPreferenciaIdioma
- Returns:
- Idioma preferido del usuario
-
setPreferenciaIdioma
- Parameters:
preferenciaIdioma- Nuevo idioma preferido
-
isNotificacionesActivadas
public boolean isNotificacionesActivadas()- Returns:
- true si las notificaciones estan activadas
-
setNotificacionesActivadas
public void setNotificacionesActivadas(boolean notificacionesActivadas) - Parameters:
notificacionesActivadas- Nuevo estado de notificaciones
-