Class LogicaNegocio

java.lang.Object
model.infraestructura.LogicaNegocio

public class LogicaNegocio extends Object
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 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

      public boolean ValidarLimiteDiario(CuentaBancaria cuenta, BigDecimal monto)
      Valida si una cuenta puede realizar una operacion respetando sus limites diarios. Verifica tanto retiros como transferencias.
      Parameters:
      cuenta - Cuenta bancaria a validar
      monto - Monto de la operacion
      Returns:
      true si el monto no excede los limites diarios, false en caso contrario
    • VerificarBloqueo

      public boolean VerificarBloqueo(CuentaBancaria cuenta)
      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

      public void RegistrarIntentoFallido(CuentaBancaria cuenta)
      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

      public void AplicarIntereses(CuentaAhorro cuenta)
      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

      public void EnviarNotificacion(String mensaje)
      Envia una notificacion al usuario si las notificaciones estan activadas.
      Parameters:
      mensaje - Mensaje a enviar como notificacion
    • registrarTransaccion

      public void registrarTransaccion(Transaccion transaccion)
      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

      public boolean esTransaccionSospechosa(Transaccion transaccion)
      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

      public List<Transaccion> getUltimasTresTransacciones()
      Returns:
      Lista de las ultimas tres transacciones
    • setUltimasTresTransacciones

      public void setUltimasTresTransacciones(List<Transaccion> ultimasTresTransacciones)
      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

      public String getPreferenciaIdioma()
      Returns:
      Idioma preferido del usuario
    • setPreferenciaIdioma

      public void setPreferenciaIdioma(String preferenciaIdioma)
      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