Add award rule captions and configurable point counting modes

- Add caption field to all award definitions with detailed rule explanations
- Rename Special Stations Award to Wavelog Award
- Add configurable countMode for point-based awards:
  - perBandMode: count unique (callsign, band, mode) combinations
  - perStation: count each station once
  - perQso: count every QSO
- Update backend to respect countMode in progress calculation
- Add target field to award API responses
- Fix "Needed" calculation for point-based awards
- Display caption on award detail pages with styled info box

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-16 10:14:41 +01:00
parent ac79645477
commit 436e9c2278
14 changed files with 266 additions and 78 deletions

View File

@@ -2,6 +2,7 @@
"id": "dxcc-cw",
"name": "DXCC CW",
"description": "Confirm 100 DXCC entities using CW mode",
"caption": "Contact and confirm 100 different DXCC entities using CW mode only. Only QSOs made with CW mode count toward this award. QSOs are confirmed when LoTW QSL is received.",
"category": "dxcc",
"rules": {
"type": "filtered",

View File

@@ -2,6 +2,7 @@
"id": "dxcc-mixed",
"name": "DXCC Mixed Mode",
"description": "Confirm 100 DXCC entities on any band/mode",
"caption": "Contact and confirm 100 different DXCC entities. Any band and mode combination counts. QSOs are confirmed when LoTW QSL is received.",
"category": "dxcc",
"rules": {
"type": "entity",

View File

@@ -2,6 +2,7 @@
"id": "sat-rs44",
"name": "RS-44 Satellite",
"description": "Work 44 QSOs on satellite RS-44",
"caption": "Make 44 unique QSOs via the RS-44 satellite. Each QSO with a different callsign counts toward the total.",
"category": "custom",
"rules": {
"type": "counter",

View File

@@ -1,11 +1,13 @@
{
"id": "special-stations",
"name": "Special Stations Award",
"description": "Contact special stations to earn points - reach 50 points to complete",
"id": "wavelog-award",
"name": "Wavelog Award",
"description": "Contact special stations on multiple bands and modes to earn points - reach 50 points to complete",
"caption": "Contact special stations to earn points. Points are awarded for each unique band/mode combination confirmed. 10-point stations: DF2ET, DJ7NT, HB9HIL, LA8AJA. 5-point stations: DB4SCW, DG2RON, DG0TM, DO8MKR. Example: Working DF2ET on 20m/SSB and 20m/CW earns 20 points. Same band/mode combinations are only counted once. Only LoTW-confirmed QSOs count.",
"category": "special",
"rules": {
"type": "points",
"target": 50,
"countMode": "perBandMode",
"stations": [
{ "callsign": "DF2ET", "points": 10 },
{ "callsign": "DJ7NT", "points": 10 },

View File

@@ -2,6 +2,7 @@
"id": "vucc-satellite",
"name": "VUCC Satellite",
"description": "Confirm 100 unique grid squares via satellite",
"caption": "Contact and confirm 100 unique 4-character grid squares via satellite. Only satellite QSOs count. Grid squares are counted as the first 4 characters (e.g., FN31). QSOs are confirmed when LoTW QSL is received.",
"category": "vucc",
"rules": {
"type": "entity",

View File

@@ -2,6 +2,7 @@
"id": "was-mixed",
"name": "WAS Mixed Mode",
"description": "Confirm all 50 US states",
"caption": "Contact and confirm all 50 US states. Only QSOs with stations located in United States states count toward this award. QSOs are confirmed when LoTW QSL is received.",
"category": "was",
"rules": {
"type": "entity",