Skip to content

Mejoras en entidades - K3152 - Wyse Ezequiel#9

Open
Ezewyse wants to merge 3 commits intodds-utn:mainfrom
Ezewyse:Entrega_Tp
Open

Mejoras en entidades - K3152 - Wyse Ezequiel#9
Ezewyse wants to merge 3 commits intodds-utn:mainfrom
Ezewyse:Entrega_Tp

Conversation

@Ezewyse
Copy link

@Ezewyse Ezewyse commented May 28, 2025

Cambios realizados:
Se agrego la entidad Alerta, esto encapsula la generación de Alertas.
Se modifico Clima, ahora Ubicación y CondicionesClimaticas son objetos, cada clase manejara sus responsabilidades (Single responsability Principle de los SOLID), además si se agregan parámetros nuevos de condiciones climáticas, no afectan Clima.
Se modifico el repositorio de Clima para adaptarse a estas dos nuevas entidades.
Se adapto ClimaService para convertir estas entidades en DTOs.

Cambios en AlertasService:
Se agrego EvaluadorAlertas, que libera la responsabilidad de validación a AlertasServices (Siguiendo el Single responsability Principle de SOLID).
Las condiciones de alerta implementan TipoAlerta como interfaz, esto permite agregar nuevas condiciones sin modificar el código existente, por ejemplo, si necesito agregar la velocidad del viento, puedo crear una nueva clase que implemente TipoAlerta. Aplica el principio Open-Closed de SOLID.
Los valores hardcodeados de temperatura y humedad ahora se obtienen con @value desde application.properties. Esto hace que sea mas mantenible, desde el archivo de configuración puedo cambiar estos valores sin tocar el código.
El método generarYEnviarEmail ahora trabaja con EmailDTO, y no con instancias de Email, además se incorporó EmailSenderAdapter, que desacopla EmailService del envío de emails, cumpliendo con el principio de inversión de Dependencias.
Se agrego EmailDTO para no trabajar con instancias de Email, sino que con data transfer objects.
El método crearEmail() dentro de EmailService ahora recibe DTOs en lugar de instancias de Email (se modificó también el EmailController ya que recibía y enviaba Emails y no EmailDTOs).
Se implemento un patrón Adapter: EmailSenderAdapter así puedo cambiar de biblioteca para enviar de emails si es que el día de mañana quiero hacerlo (agregue una clase “Simple” para enviar emails). Modifique el método Enviar() dentro de Email para el adapter.
Modifique LoguearEmailsPendientes() y obtenerEmails() para aceptar DTOs.

Ezewyse added 3 commits May 23, 2025 21:30
…Se modificaron los Services acorde a estas nuevas entidades, y se agrego un evaluadorAlertas para validar las condiciones que cumple el clima
…anejar Ubicacion y CondicionesClimaticas, y ademas correcciones menores.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant