rigs completed

This commit is contained in:
2026-05-28 18:35:22 +02:00
parent d3c9982c66
commit e8cac569e3
26 changed files with 3834 additions and 391 deletions
+50
View File
@@ -0,0 +1,50 @@
-- Operating conditions: per-profile tree of stations (radios) → antennas →
-- bands. Used to auto-populate MY_RIG / MY_ANTENNA on each logged QSO
-- based on the current band, so the operator doesn't have to retype them.
--
-- Tree shape:
-- profile
-- └── station (one row per radio: name + ADIF MY_RIG value)
-- └── antenna (one row per antenna for that radio: name + ADIF MY_ANTENNA)
-- └── band (band tags the antenna covers; one may be flagged default)
--
-- "Default for a band" is a per-profile flag: when the user picks 20m in the
-- entry strip and an antenna on 20m is marked default, MY_RIG and MY_ANTENNA
-- auto-fill from that antenna and its parent station. At most one antenna
-- can be the default for any given (profile, band) — enforced by a partial
-- unique index below.
CREATE TABLE operating_stations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
profile_id INTEGER NOT NULL,
name TEXT NOT NULL, -- display name, e.g. "Flex 8600"
adif_rig TEXT NOT NULL DEFAULT '', -- value written to MY_RIG ADIF field
sort_order INTEGER NOT NULL DEFAULT 0,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
FOREIGN KEY (profile_id) REFERENCES station_profiles(id) ON DELETE CASCADE
);
CREATE INDEX idx_operating_stations_profile ON operating_stations(profile_id, sort_order);
CREATE TABLE operating_antennas (
id INTEGER PRIMARY KEY AUTOINCREMENT,
station_id INTEGER NOT NULL,
name TEXT NOT NULL, -- e.g. "UB640 VL2.3"
adif_ant TEXT NOT NULL DEFAULT '', -- value written to MY_ANTENNA ADIF field
sort_order INTEGER NOT NULL DEFAULT 0,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
FOREIGN KEY (station_id) REFERENCES operating_stations(id) ON DELETE CASCADE
);
CREATE INDEX idx_operating_antennas_station ON operating_antennas(station_id, sort_order);
-- The bands an antenna covers. Composite PK = one row per (antenna, band).
-- is_default = the entry-form autofill picks this row when the user sets band.
CREATE TABLE operating_antenna_bands (
antenna_id INTEGER NOT NULL,
band TEXT NOT NULL, -- ADIF lowercase, e.g. "20m"
is_default INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (antenna_id, band),
FOREIGN KEY (antenna_id) REFERENCES operating_antennas(id) ON DELETE CASCADE
);
CREATE INDEX idx_operating_bands_band ON operating_antenna_bands(band, is_default);