defmodule Azan.CalculationMethod do @moduledoc """ Documentation for `CalculationMethod`. """ alias Azan.CalculationParameter def muslim_world_league do %CalculationParameter{ method: :muslim_world_league, fajr_angle: 18.0, isha_angle: 17.0 } |> CalculationParameter.adjust_by_method(:dhuhr, 1) end def egyptian do %CalculationParameter{ method: :egyptian, fajr_angle: 19.5, isha_angle: 17.5 } |> CalculationParameter.adjust_by_method(:dhuhr, 1) end def karachi do %CalculationParameter{ method: :karachi, fajr_angle: 18.0, isha_angle: 18.0 } |> CalculationParameter.adjust_by_method(:dhuhr, 1) end def umm_al_quran do %CalculationParameter{ method: :umm_al_quran, fajr_angle: 18.5, isha_angle: 0, isha_interval: 90 } end def dubai do %CalculationParameter{ method: :dubai, fajr_angle: 18.2, isha_angle: 18.2 } |> CalculationParameter.adjust_by_method(:sunrise, -3) |> CalculationParameter.adjust_by_method(:dhuhr, 3) |> CalculationParameter.adjust_by_method(:asr, -3) |> CalculationParameter.adjust_by_method(:maghrib, 3) end def moonsighting_committee do params = %CalculationParameter{ method: :moonsighting_committee, fajr_angle: 18.0, isha_angle: 18.0 } params |> CalculationParameter.adjust_by_method(:dhuhr, 5) |> CalculationParameter.adjust_by_method(:maghrib, 3) end def north_america do %CalculationParameter{ method: :north_america, fajr_angle: 15, isha_angle: 15 } |> CalculationParameter.adjust_by_method(:dhuhr, 1) end def kuwait do %CalculationParameter{ method: :kuwait, fajr_angle: 18.0, isha_angle: 17.5 } end def qatar do %CalculationParameter{ method: :qatar, fajr_angle: 18.0, isha_angle: 0, isha_interval: 90 } end def singapore do %CalculationParameter{ method: :singapore, fajr_angle: 20.0, isha_angle: 18.0, rounding: :up } |> CalculationParameter.adjust_by_method(:dhuhr, 1) end def tehran do %CalculationParameter{ method: :tehran, fajr_angle: 17.7, isha_angle: 14.0, isha_interval: 4 } end def turkey do %CalculationParameter{ method: :turkey, fajr_angle: 18.0, isha_angle: 17.0 } |> CalculationParameter.adjust_by_method(:sunrise, -7) |> CalculationParameter.adjust_by_method(:dhuhr, 5) |> CalculationParameter.adjust_by_method(:asr, 4) |> CalculationParameter.adjust_by_method(:maghrib, 7) end def other do %CalculationParameter{ method: :other, fajr_angle: 0, isha_angle: 0 } end end