feat: add WAE (Worked All Europe) award implementation
Implement DARC's WAE award with dual metrics tracking (countries + bandpoints). Features: - 54 European countries with correct DXCC entityIds from ARRL - 8 WAE-specific entities (Shetland, Sicily, Sardinia, Crete, etc.) - Bandpoints calculation: 1 pt/band (2 pts for 160m/80m), max 5 bands/country - 5 award levels: WAE III (40/100), WAE II (50/150), WAE I (60/200), WAE TOP (70/300), WAE Trophy (all/365) - Mode groups: CW, SSB, RTTY, FT8, Digi-Modes, Mixed-Mode - Admin UI support for creating/editing WAE awards - Award detail page with dual metrics display Files: - award-data/wae-country-list.json: WAE country definitions - award-definitions/wae.json: Award configuration - src/backend/services/awards.service.js: WAE calculation functions - src/frontend: Admin and award detail views Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
115
award-data/wae-country-list.json
Normal file
115
award-data/wae-country-list.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"dxccBased": [
|
||||
{ "entityId": 230, "country": "Germany", "prefix": "DL", "deleted": false },
|
||||
{ "entityId": 227, "country": "France", "prefix": "F", "deleted": false },
|
||||
{ "entityId": 248, "country": "Italy", "prefix": "I", "deleted": false },
|
||||
{ "entityId": 223, "country": "England", "prefix": "G", "deleted": false },
|
||||
{ "entityId": 279, "country": "Scotland", "prefix": "GM", "deleted": false },
|
||||
{ "entityId": 265, "country": "Northern Ireland", "prefix": "GI", "deleted": false },
|
||||
{ "entityId": 294, "country": "Wales", "prefix": "GW", "deleted": false },
|
||||
{ "entityId": 114, "country": "Isle of Man", "prefix": "GD", "deleted": false },
|
||||
{ "entityId": 122, "country": "Jersey", "prefix": "GJ", "deleted": false },
|
||||
{ "entityId": 106, "country": "Guernsey", "prefix": "GU", "deleted": false },
|
||||
{ "entityId": 236, "country": "Greece", "prefix": "SV", "deleted": false },
|
||||
{ "entityId": 209, "country": "Belgium", "prefix": "ON", "deleted": false },
|
||||
{ "entityId": 263, "country": "Netherlands", "prefix": "PA", "deleted": false },
|
||||
{ "entityId": 287, "country": "Switzerland", "prefix": "HB", "deleted": false },
|
||||
{ "entityId": 281, "country": "Spain", "prefix": "EA", "deleted": false },
|
||||
{ "entityId": 272, "country": "Portugal", "prefix": "CT", "deleted": false },
|
||||
{ "entityId": 206, "country": "Austria", "prefix": "OE", "deleted": false },
|
||||
{ "entityId": 503, "country": "Czech Republic", "prefix": "OK", "deleted": false },
|
||||
{ "entityId": 504, "country": "Slovakia", "prefix": "OM", "deleted": false },
|
||||
{ "entityId": 239, "country": "Hungary", "prefix": "HA", "deleted": false },
|
||||
{ "entityId": 269, "country": "Poland", "prefix": "SP", "deleted": false },
|
||||
{ "entityId": 284, "country": "Sweden", "prefix": "SM", "deleted": false },
|
||||
{ "entityId": 266, "country": "Norway", "prefix": "LA", "deleted": false },
|
||||
{ "entityId": 221, "country": "Denmark", "prefix": "OZ", "deleted": false },
|
||||
{ "entityId": 224, "country": "Finland", "prefix": "OH", "deleted": false },
|
||||
{ "entityId": 52, "country": "Estonia", "prefix": "ES", "deleted": false },
|
||||
{ "entityId": 145, "country": "Latvia", "prefix": "YL", "deleted": false },
|
||||
{ "entityId": 146, "country": "Lithuania", "prefix": "LY", "deleted": false },
|
||||
{ "entityId": 27, "country": "Belarus", "prefix": "EU", "deleted": false },
|
||||
{ "entityId": 288, "country": "Ukraine", "prefix": "UR", "deleted": false },
|
||||
{ "entityId": 179, "country": "Moldova", "prefix": "ER", "deleted": false },
|
||||
{ "entityId": 275, "country": "Romania", "prefix": "YO", "deleted": false },
|
||||
{ "entityId": 212, "country": "Bulgaria", "prefix": "LZ", "deleted": false },
|
||||
{ "entityId": 296, "country": "Serbia", "prefix": "YT", "deleted": false },
|
||||
{ "entityId": 497, "country": "Croatia", "prefix": "9A", "deleted": false },
|
||||
{ "entityId": 499, "country": "Slovenia", "prefix": "S5", "deleted": false },
|
||||
{ "entityId": 501, "country": "Bosnia and Herzegovina", "prefix": "E7", "deleted": false },
|
||||
{ "entityId": 502, "country": "North Macedonia", "prefix": "Z3", "deleted": false },
|
||||
{ "entityId": 7, "country": "Albania", "prefix": "ZA", "deleted": false },
|
||||
{ "entityId": 514, "country": "Montenegro", "prefix": "4O", "deleted": false },
|
||||
{ "entityId": 54, "country": "Russia (European)", "prefix": "UA", "deleted": false },
|
||||
{ "entityId": 126, "country": "Kaliningrad", "prefix": "UA2", "deleted": false },
|
||||
{ "entityId": 390, "country": "Turkey", "prefix": "TA", "deleted": false },
|
||||
{ "entityId": 215, "country": "Cyprus", "prefix": "5B", "deleted": false },
|
||||
{ "entityId": 257, "country": "Malta", "prefix": "9H", "deleted": false },
|
||||
{ "entityId": 242, "country": "Iceland", "prefix": "TF", "deleted": false },
|
||||
{ "entityId": 245, "country": "Ireland", "prefix": "EI", "deleted": false },
|
||||
{ "entityId": 254, "country": "Luxembourg", "prefix": "LX", "deleted": false },
|
||||
{ "entityId": 260, "country": "Monaco", "prefix": "3A", "deleted": false },
|
||||
{ "entityId": 203, "country": "Andorra", "prefix": "C3", "deleted": false },
|
||||
{ "entityId": 278, "country": "San Marino", "prefix": "T7", "deleted": false },
|
||||
{ "entityId": 295, "country": "Vatican City", "prefix": "HV", "deleted": false },
|
||||
{ "entityId": 251, "country": "Liechtenstein", "prefix": "HB0", "deleted": false }
|
||||
],
|
||||
"waeSpecific": [
|
||||
{
|
||||
"country": "Shetland Islands",
|
||||
"prefix": "GM/S",
|
||||
"callsigns": ["GM/S*", "GS/S*", "2M/S*"],
|
||||
"parentDxcc": 279
|
||||
},
|
||||
{
|
||||
"country": "European Turkey",
|
||||
"prefix": "TA1",
|
||||
"callsigns": ["TA1*"],
|
||||
"parentDxcc": 390
|
||||
},
|
||||
{
|
||||
"country": "Sardinia",
|
||||
"prefix": "IS0",
|
||||
"callsigns": ["IS0*"],
|
||||
"parentDxcc": 248
|
||||
},
|
||||
{
|
||||
"country": "Sicily",
|
||||
"prefix": "IT9",
|
||||
"callsigns": ["IT9*"],
|
||||
"parentDxcc": 248
|
||||
},
|
||||
{
|
||||
"country": "Corsica",
|
||||
"prefix": "TK",
|
||||
"callsigns": ["TK*"],
|
||||
"parentDxcc": 227
|
||||
},
|
||||
{
|
||||
"country": "Crete",
|
||||
"prefix": "SV9",
|
||||
"callsigns": ["SV9*", "J49*"],
|
||||
"parentDxcc": 236
|
||||
},
|
||||
{
|
||||
"country": "ITU Headquarters Geneva",
|
||||
"prefix": "4U1I",
|
||||
"callsigns": ["4U1I"],
|
||||
"parentDxcc": null
|
||||
},
|
||||
{
|
||||
"country": "UN Vienna",
|
||||
"prefix": "4U1V",
|
||||
"callsigns": ["4U1V"],
|
||||
"parentDxcc": null
|
||||
}
|
||||
],
|
||||
"deletedCountries": [
|
||||
{
|
||||
"country": "German Democratic Republic",
|
||||
"prefix": "Y2",
|
||||
"deleted": "1990-10-03",
|
||||
"formerEntityId": 229
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user