From 322ccafcae1cd2d251060bb34785aa0010dcba76 Mon Sep 17 00:00:00 2001 From: Joerg Date: Sat, 17 Jan 2026 11:24:01 +0100 Subject: [PATCH] docs: add DLD (Deutschland Diplom) award documentation Add comprehensive documentation for the DLD award including: - Award definition and JSON structure - Progress calculation logic - DOK entity type and DARC category - Example DOKs and confirmation details - DCL resources and references Co-Authored-By: Claude Sonnet 4.5 --- docs/DOCUMENTATION.md | 65 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/docs/DOCUMENTATION.md b/docs/DOCUMENTATION.md index 82f4ee2..994e60b 100644 --- a/docs/DOCUMENTATION.md +++ b/docs/DOCUMENTATION.md @@ -131,7 +131,8 @@ Defines the database structure using Drizzle ORM schema builder. - Award progress calculation - Entity breakdown by band/mode - Confirmation status tracking (LoTW, DCL) -- DXCC, WAS, VUCC award support +- DXCC, WAS, VUCC, DLD award support +- DOK-based award calculation with DCL confirmation **Job Queue Service** (`src/backend/services/job-queue.service.js`) - Background job management @@ -194,7 +195,9 @@ award/ │ ├── dxcc-cw.json # DXCC CW-specific award │ ├── was.json # WAS award configurations │ ├── vucc-sat.json # VUCC Satellite award -│ └── sat-rs44.json # Satellite RS-44 award +│ ├── sat-rs44.json # Satellite RS-44 award +│ ├── special-stations.json # Special event stations award +│ └── dld.json # DLD (Deutschland Diplom) award │ ├── drizzle/ # Database migrations │ └── 0000_init.sql # Initial schema @@ -288,8 +291,12 @@ award/ county: text satName: text (satellite name) satMode: text (satellite mode) + myDarcDok: text (user's DOK - DARC Ortsverband Kennung) + darcDok: text (QSO partner's DOK) lotwQslRdate: text (LoTW confirmation date) lotwQslRstatus: text ('Y', 'N', '?') + dclQslRdate: text (DCL confirmation date) + dclQslRstatus: text ('Y', 'N', '?') lotwSyncedAt: timestamp createdAt: timestamp } @@ -361,6 +368,7 @@ Each award is defined with the following structure: | `dxcc` | DXCC entities (countries) | `entityId` | | `state` | US States, Canadian provinces | `state` | | `grid` | Maidenhead grid squares | `grid` | +| `dok` | DARC Ortsverband Kennung (German local clubs) | `darcDok` | ### Filter Operators @@ -380,6 +388,7 @@ Each award is defined with the following structure: - **`was`**: Worked All States awards - **`vucc`**: VHF/UHF Century Club awards - **`satellite`**: Satellite-specific awards +- **`darc`**: DARC (German Amateur Radio Club) awards --- @@ -603,6 +612,55 @@ confirmed = COUNT(DISTINCT callsign --- +### 6. DLD (Deutschland Diplom) + +**File**: `award-definitions/dld.json` + +```json +{ + "id": "dld", + "name": "DLD", + "description": "Deutschland Diplom - Confirm 100 unique DOKs on different bands/modes", + "caption": "Contact and confirm stations with 100 unique DOKs (DARC Ortsverband Kennung) on different band/mode combinations. Each unique DOK on a unique band/mode counts as one point. Only DCL-confirmed QSOs with valid DOK information count toward this award.", + "category": "darc", + "rules": { + "type": "dok", + "target": 100, + "confirmationType": "dcl", + "displayField": "darcDok" + } +} +``` + +**Explanation:** +- Counts unique (DOK, band, mode) combinations +- Only QSOs with valid `darcDok` values are counted +- Only DCL-confirmed QSOs (`dclQslRstatus = 'Y'`) count toward the award +- Target: 100 unique DOKs on different band/mode combinations +- Each unique DOK on a unique band/mode combination counts as one point +- Example: Working DOK F03 on 20m CW and 40m SSB counts as 2 points + +**Progress Calculation:** +```javascript +worked = COUNT(DISTINCT darcDok + WHERE darcDok IS NOT NULL) +confirmed = COUNT(DISTINCT darcDok + WHERE darcDok IS NOT NULL AND dclQslRstatus = 'Y') +``` + +**Example DOKs:** +- `"F03"` - Ortsverband Frankfurt am Main +- `"P30"` - Ortsverband München +- `"G20"` - Ortsverband Köln +- DOKs consist of a letter (district) and two digits (local club) + +**Confirmation:** +- Only DCL (DARC Community Logbook) confirmations count +- LoTW confirmations do not count toward this award +- This is a DARC-specific award using DARC's confirmation system + +--- + ### Advanced Filter Examples #### Multiple Conditions (AND) @@ -776,6 +834,7 @@ The award system is designed for extensibility. Planned enhancements: - CQ Zones - ITU Zones - Counties + - DOK (German DARC Ortsverband Kennung) ✓ **Implemented** 2. **Advanced Filters**: - Date ranges @@ -812,7 +871,9 @@ When adding new awards or modifying the award system: ## Resources - [ARRL LoTW](https://lotw.arrl.org/) +- [DARC Community Logbook (DCL)](https://dcl.darc.de/) - [ADIF Specification](https://adif.org/) - [DXCC List](https://www.arrl.org/dxcc) - [VUCC Program](https://www.arrl.org/vucc) - [WAS Award](https://www.arrl.org/was) +- [DLD Award](https://www.darc.de/der-club/referate/conteste/dld/)