completeValidation method
Complete a validation session by setting the result and optionally advancing mastery if the validation was confirmed.
Implementation
Future<void> completeValidation({
required String sessionId,
required String result,
String? topicId,
String? validationTarget,
}) async {
await _client
.from('learning_sessions')
.update({'validation_result': result})
.eq('id', sessionId);
// If confirmed and we know the target, advance mastery via the authorized
// RPC (mastery column is trigger-protected; migration 071).
if (result == 'confirmed' && topicId != null && validationTarget != null) {
await setTopicMastery(
topicId: topicId,
target: validationTarget,
source: 'validation',
sessionId: sessionId,
);
// Fire-and-forget: check if any certifications should be auto-issued
_tryIssueCertificates(topicId);
}
}