prop/lib/microwaveprop/propagation.ex
Graham McIntire 5a0113aac2
Add Leaflet map integration with propagation score display
Vendor Leaflet 1.9.4 (JS, CSS, marker images) and wire it into
the esbuild/Tailwind asset pipeline. Create MapLive with band
selector buttons, auto-refresh, and a colocated JS hook that
renders propagation scores as color-coded circle markers with a
legend. Stub Propagation context and BandConfig modules provide
the data interface for the scoring pipeline.

Add nav bar with links to Map, QSOs, and Submit pages.
2026-03-30 17:11:00 -05:00

28 lines
871 B
Elixir

defmodule Microwaveprop.Propagation do
@moduledoc """
Context module for propagation scoring and forecasting.
Provides functions to retrieve propagation scores for display on the map.
Score computation and grid workers will be implemented in subsequent tasks.
"""
@doc """
Returns the latest propagation scores for the given band frequency in MHz.
Each score is a map with `:lat`, `:lon`, and `:score` keys.
Returns an empty list until the scoring pipeline is operational.
"""
@spec latest_scores(integer()) :: [%{lat: float(), lon: float(), score: number()}]
def latest_scores(_band_freq_mhz) do
[]
end
@doc """
Returns the valid time of the most recent propagation score computation,
or nil if no scores have been computed yet.
"""
@spec latest_valid_time() :: DateTime.t() | nil
def latest_valid_time do
nil
end
end