Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 4m52s
- Switch polylines and circle markers to shared L.canvas() renderer, eliminating ~58k SVG DOM nodes in favor of 1 GPU-composited canvas - Add server-side callsign/date filtering to /api/contacts/map endpoint to reduce payload size when filters are active - Add early-exit fast path in applyCallsignFilter when no filter active - Batch rebuildDots with requestAnimationFrame to avoid redundant work during rapid filter changes
54 lines
2.7 KiB
Elixir
54 lines
2.7 KiB
Elixir
defmodule Microwaveprop.Radio do
|
|
@moduledoc false
|
|
|
|
alias Microwaveprop.Radio.Contacts
|
|
alias Microwaveprop.Radio.Import
|
|
|
|
# ── Contacts ──
|
|
|
|
defdelegate contact_map_payload(filters \\ []), to: Contacts
|
|
defdelegate list_contacts_for_user(owner, viewer \\ nil), to: Contacts
|
|
defdelegate list_contacts_involving_callsign(callsign, viewer \\ nil), to: Contacts
|
|
defdelegate list_contacts(opts \\ []), to: Contacts
|
|
defdelegate group_reciprocals(contacts), to: Contacts
|
|
defdelegate contacts_needing_enrichment(field, limit \\ 500, extra_filter \\ nil), to: Contacts
|
|
defdelegate unprocessed_contacts(limit \\ 500), to: Contacts
|
|
defdelegate unprocessed_hrrr_contacts(limit \\ 500), to: Contacts
|
|
defdelegate unprocessed_terrain_contacts(limit \\ 500), to: Contacts
|
|
defdelegate unprocessed_iemre_contacts(limit \\ 500), to: Contacts
|
|
defdelegate unprocessed_radar_contacts(limit \\ 500), to: Contacts
|
|
defdelegate set_enrichment_status!(ids, field, status), to: Contacts
|
|
defdelegate mark_weather_queued!(ids), to: Contacts
|
|
defdelegate mark_hrrr_queued!(ids), to: Contacts
|
|
defdelegate mark_terrain_queued!(ids), to: Contacts
|
|
defdelegate mark_iemre_queued!(ids), to: Contacts
|
|
defdelegate contact_path_points(contact), to: Contacts
|
|
defdelegate haversine_km(lat1, lon1, lat2, lon2), to: Contacts
|
|
defdelegate backfill_distances(contacts), to: Contacts
|
|
defdelegate get_contact!(id), to: Contacts
|
|
defdelegate can_view?(contact, scope), to: Contacts
|
|
defdelegate delete_contact!(contact), to: Contacts
|
|
defdelegate toggle_flagged_invalid!(contact, flagger \\ nil), to: Contacts
|
|
defdelegate list_flagged_contacts(), to: Contacts
|
|
defdelegate change_contact(contact, attrs \\ %{}), to: Contacts
|
|
defdelegate ensure_positions!(contact), to: Contacts
|
|
defdelegate create_contact(attrs, user_id \\ nil), to: Contacts
|
|
defdelegate owner?(contact, user), to: Contacts
|
|
|
|
# ── Import ──
|
|
|
|
defdelegate apply_contact_refinement(contact, changes), to: Import
|
|
defdelegate create_contact_edit(contact, user, proposed_changes), to: Import
|
|
defdelegate normalize_proposed(changes), to: Import
|
|
defdelegate diff_against_contact(contact, proposed), to: Import
|
|
defdelegate list_pending_edits(), to: Import
|
|
defdelegate pending_edits_query(), to: Import
|
|
defdelegate list_contact_edits(contact_id), to: Import
|
|
defdelegate pending_edit_count(), to: Import
|
|
defdelegate pending_edit_for_user(contact_id, user_id), to: Import
|
|
defdelegate get_contact_edit(id), to: Import
|
|
defdelegate approve_edit(edit, admin, note), to: Import
|
|
defdelegate reject_edit(edit, admin, note), to: Import
|
|
defdelegate apply_owner_edit(contact, user, proposed_changes), to: Import
|
|
defdelegate apply_edit_to_contact(contact, proposed_changes), to: Import
|
|
end
|