submitBugReport method

String submitBugReport({
  1. required String description,
  2. Map<String, dynamic>? metadata,
})

Submit a bug report. Returns a local UUID immediately. The report is enqueued to the outbox and uploaded in background. Use getSubmissionStatus to track progress.

Implementation

String submitBugReport({
  required String description,
  Map<String, dynamic>? metadata,
}) {
  final localId = const Uuid().v4();
  final payload = jsonEncode({
    'projectId': config.projectId,
    'description': description,
    'metadata': metadata ?? {},
    'timestamp': DateTime.now().toIso8601String(),
  });
  unawaited(
    outboxDao
        .enqueue(type: 'bug_report', payload: payload, id: localId)
        .then((_) {
          outboxDrainer.scheduleDrain();
        })
        .catchError((Object e) {
          // Never throw into the host — fire-and-forget contract.
          debugPrint('TesterPayKit: submitBugReport enqueue failed: $e');
        }),
  );
  return localId;
}