defmodule FreelancerRates do
  def daily_rate(hourly_rate) do
    8.0 * hourly_rate
  end

  def monthly_rate(hourly_rate) do
    22.0 * daily_rate(hourly_rate)
  end

  def monthly_rate(hourly_rate, discount) do
    hourly_rate
    |> monthly_rate()
    |> apply_discount(discount)
    |> ceil()
  end

  def apply_discount(before_discount, discount) do
    before_discount - (before_discount * (discount / 100))
  end

  def days_in_budget(budget, hourly_rate, discount) do
    hourly_rate
    |> daily_rate()
    |> apply_discount(discount)
    |> then(fn rate -> budget / rate end)
    |> Float.floor(1)
  end
end