defmodule Silmataivas.Mailer do use Swoosh.Mailer, otp_app: :silmataivas require Logger def send_alert( email, %{ "main" => %{"temp" => temp}, "wind" => %{"speed" => speed}, "dt_txt" => time_str } = entry ) do rain_mm = get_in(entry, ["rain", "3h"]) || 0.0 wind_kmh = speed * 3.6 import Swoosh.Email body = """ 🚨 Weather alert for your location (#{time_str}): 🌬️ Wind: #{Float.round(wind_kmh, 1)} km/h 🌧️ Rain: #{rain_mm} mm 🌡️ Temperature: #{temp} °C Stay safe, — Silmätaivas """ email_struct = new() |> to(email) |> from({"Silmätaivas Alerts", "silmataivas@rycerz.cloud"}) |> subject("⚠️ Weather Alert for Your Location") |> text_body(body) case deliver(email_struct) do {:ok, response} -> Logger.info("📨 Email sent via SES: #{inspect(response)}") {:error, reason} -> Logger.error("❌ Failed to send email: #{inspect(reason)}") end end end