defmodule Cannery.EmailWorker do
  @moduledoc """
  Oban worker that dispatches emails
  """

  use Oban.Worker, queue: :mailers, tags: ["email"]
  alias Cannery.{Accounts, Email, Mailer}

  @impl Oban.Worker
  def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do
    Email.generate_email(email, user_id |> Accounts.get_user!(), attrs) |> Mailer.deliver()
  end
end
