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 <noreply@anthropic.com>
This commit is contained in:
2026-01-17 11:24:01 +01:00
parent c982dcd0fe
commit 322ccafcae

View File

@@ -131,7 +131,8 @@ Defines the database structure using Drizzle ORM schema builder.
- Award progress calculation - Award progress calculation
- Entity breakdown by band/mode - Entity breakdown by band/mode
- Confirmation status tracking (LoTW, DCL) - 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`) **Job Queue Service** (`src/backend/services/job-queue.service.js`)
- Background job management - Background job management
@@ -194,7 +195,9 @@ award/
│ ├── dxcc-cw.json # DXCC CW-specific award │ ├── dxcc-cw.json # DXCC CW-specific award
│ ├── was.json # WAS award configurations │ ├── was.json # WAS award configurations
│ ├── vucc-sat.json # VUCC Satellite award │ ├── 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 ├── drizzle/ # Database migrations
│ └── 0000_init.sql # Initial schema │ └── 0000_init.sql # Initial schema
@@ -288,8 +291,12 @@ award/
county: text county: text
satName: text (satellite name) satName: text (satellite name)
satMode: text (satellite mode) satMode: text (satellite mode)
myDarcDok: text (user's DOK - DARC Ortsverband Kennung)
darcDok: text (QSO partner's DOK)
lotwQslRdate: text (LoTW confirmation date) lotwQslRdate: text (LoTW confirmation date)
lotwQslRstatus: text ('Y', 'N', '?') lotwQslRstatus: text ('Y', 'N', '?')
dclQslRdate: text (DCL confirmation date)
dclQslRstatus: text ('Y', 'N', '?')
lotwSyncedAt: timestamp lotwSyncedAt: timestamp
createdAt: timestamp createdAt: timestamp
} }
@@ -361,6 +368,7 @@ Each award is defined with the following structure:
| `dxcc` | DXCC entities (countries) | `entityId` | | `dxcc` | DXCC entities (countries) | `entityId` |
| `state` | US States, Canadian provinces | `state` | | `state` | US States, Canadian provinces | `state` |
| `grid` | Maidenhead grid squares | `grid` | | `grid` | Maidenhead grid squares | `grid` |
| `dok` | DARC Ortsverband Kennung (German local clubs) | `darcDok` |
### Filter Operators ### Filter Operators
@@ -380,6 +388,7 @@ Each award is defined with the following structure:
- **`was`**: Worked All States awards - **`was`**: Worked All States awards
- **`vucc`**: VHF/UHF Century Club awards - **`vucc`**: VHF/UHF Century Club awards
- **`satellite`**: Satellite-specific 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 ### Advanced Filter Examples
#### Multiple Conditions (AND) #### Multiple Conditions (AND)
@@ -776,6 +834,7 @@ The award system is designed for extensibility. Planned enhancements:
- CQ Zones - CQ Zones
- ITU Zones - ITU Zones
- Counties - Counties
- DOK (German DARC Ortsverband Kennung) ✓ **Implemented**
2. **Advanced Filters**: 2. **Advanced Filters**:
- Date ranges - Date ranges
@@ -812,7 +871,9 @@ When adding new awards or modifying the award system:
## Resources ## Resources
- [ARRL LoTW](https://lotw.arrl.org/) - [ARRL LoTW](https://lotw.arrl.org/)
- [DARC Community Logbook (DCL)](https://dcl.darc.de/)
- [ADIF Specification](https://adif.org/) - [ADIF Specification](https://adif.org/)
- [DXCC List](https://www.arrl.org/dxcc) - [DXCC List](https://www.arrl.org/dxcc)
- [VUCC Program](https://www.arrl.org/vucc) - [VUCC Program](https://www.arrl.org/vucc)
- [WAS Award](https://www.arrl.org/was) - [WAS Award](https://www.arrl.org/was)
- [DLD Award](https://www.darc.de/der-club/referate/conteste/dld/)