feat: group satellite QSOs under SAT column in award detail

Satellite QSOs are now grouped under a "SAT" column instead of their
frequency band. The backend now includes satName in QSO data, and the
frontend detects satellite QSOs and groups them appropriately.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-22 08:03:03 +01:00
parent c75e55d130
commit dc34fc20b1
2 changed files with 11 additions and 2 deletions

View File

@@ -239,6 +239,7 @@ async function calculateDOKAwardProgress(userId, award, options = {}) {
qsoDate: qso.qsoDate,
timeOn: qso.timeOn,
band: qso.band,
satName: qso.satName,
confirmed: true,
});
}
@@ -368,6 +369,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
qsoDate: qso.qsoDate,
timeOn: qso.timeOn,
band: qso.band,
satName: qso.satName,
confirmed: true,
});
}
@@ -412,6 +414,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
qsoDate: qso.qsoDate,
timeOn: qso.timeOn,
band: qso.band,
satName: qso.satName,
confirmed: true,
});
}
@@ -450,6 +453,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
qsoDate: qso.qsoDate,
timeOn: qso.timeOn,
band: qso.band,
satName: qso.satName,
confirmed: true,
}],
});
@@ -759,6 +763,7 @@ export async function getAwardEntityBreakdown(userId, awardId) {
qsoDate: qso.qsoDate,
timeOn: qso.timeOn,
band: qso.band,
satName: qso.satName,
confirmed: true,
});
}

View File

@@ -118,7 +118,9 @@
const entityData = entityMap.get(entityName);
const band = entity.band || 'Unknown';
// Check if this is a satellite QSO - use "SAT" instead of band
const isSatellite = entity.qsos && entity.qsos.some(qso => qso.satName);
const band = isSatellite ? 'SAT' : (entity.band || 'Unknown');
if (isMixedMode) {
// Mixed Mode: aggregate by band only, collect all QSOs across modes
@@ -209,7 +211,9 @@
const entityData = entityMap.get(entityName);
const band = entity.band || 'Unknown';
// Check if this is a satellite QSO - use "SAT" instead of band
const isSatellite = entity.qsos && entity.qsos.some(qso => qso.satName);
const band = isSatellite ? 'SAT' : (entity.band || 'Unknown');
if (isMixedMode) {
// Mixed Mode: aggregate by band only