/// Completion always carries its proof. The server decides Complete vs Late
/// Complete from the window, never the client.
class CompletionRequest {
  String commitmentId;

  String proofType;

  /// Reference to the uploaded artefact — photo id, timer session id, geofence
  /// dwell id or witness confirmation id.
  String proofRef;

  /// Foreground seconds actually run, for Timer proof.
  int timerSeconds;

  double latitude;

  double longitude;

  CompletionRequest({
    this.commitmentId = "",
    this.proofType = "Honour",
    this.proofRef = "",
    this.timerSeconds = 0,
    this.latitude = 0,
    this.longitude = 0,
  });

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['commitmentId'] = commitmentId;
    data['proofType'] = proofType;
    data['proofRef'] = proofRef;
    data['timerSeconds'] = timerSeconds;
    data['latitude'] = latitude;
    data['longitude'] = longitude;
    return data;
  }
}
