completeValidation method

Future<void> completeValidation({
  1. required String sessionId,
  2. required String result,
  3. String? topicId,
  4. String? validationTarget,
})

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.
  if (result == 'confirmed' && topicId != null && validationTarget != null) {
    await updateProgress(topicId, {
      'mastery': validationTarget,
      'last_studied_at': DateTime.now().toIso8601String(),
    });

    // Fire-and-forget: check if any certifications should be auto-issued
    _tryIssueCertificates(topicId);
  }
}