Skip to content

Commit 18aeea3

Browse files
committed
Improve import log: show skip reasons and warn about merged users
- Log why each expense was skipped (already exists / unknown payer) - Include expense ID in skip messages for debugging - Warn when multiple exported user IDs map to same DB user (merged accounts) so the deduplication is visible Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019wMSFyaUDFVGr31qqm7tk7
1 parent 42dbf30 commit 18aeea3

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

src/server/api/services/splitService.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,22 @@ export async function importSplitProData(
512512
log('info', `User created: ${localName}`);
513513
}
514514

515+
// Warn about multiple export IDs mapping to the same DB user
516+
const reverseMap = new Map<number, number[]>();
517+
for (const [exportId, dbId] of userIdMap) {
518+
const list = reverseMap.get(dbId) ?? [];
519+
list.push(exportId);
520+
reverseMap.set(dbId, list);
521+
}
522+
for (const [, exportIds] of reverseMap) {
523+
if (exportIds.length > 1) {
524+
log(
525+
'warn',
526+
`${exportIds.length} exported user IDs (${exportIds.join(', ')}) map to same DB user — participants will be deduplicated`,
527+
);
528+
}
529+
}
530+
515531
log('info', `Users resolved: ${userIdMap.size} total`);
516532

517533
// Create groups
@@ -592,14 +608,21 @@ export async function importSplitProData(
592608
skipDuplicates: true,
593609
});
594610
}
611+
log(
612+
'warn',
613+
`Expense "${exportedExpense.name}" (${exportedExpense.id}): skipped (already exists)`,
614+
);
595615
expensesSkipped++;
596616
continue;
597617
}
598618

599619
const paidByUserId = userIdMap.get(exportedExpense.paidByUserId);
600620
const addedByUserId = userIdMap.get(exportedExpense.addedByUserId);
601621
if (!paidByUserId || !addedByUserId) {
602-
log('warn', `Expense "${exportedExpense.name}": skipped (unknown payer/creator)`);
622+
log(
623+
'warn',
624+
`Expense "${exportedExpense.name}" (${exportedExpense.id}): skipped (paidBy=${exportedExpense.paidByUserId} addedBy=${exportedExpense.addedByUserId} not found in user map)`,
625+
);
603626
expensesSkipped++;
604627
continue;
605628
}

0 commit comments

Comments
 (0)