job property

Future<QueueJob?> get job

Returns the persisted QueueJob record for this job payload, if one already exists.

The payload hash is derived from _name plus the serialized job fields, allowing equivalent jobs to resolve to the same stored queue record.

Returns null when no matching queue record exists.

Example:

final existing = await SendWelcomeEmail('jane@example.com').job;
print(existing?.status.name);

Implementation

Future<QueueJob?> get job async {
  final modelFields = toJson();
  final jobNameField = {'_name': runtimeType.toString()};

  final payloadData = {...jobNameField, ...modelFields};

  final payloadString = jsonEncode(payloadData);

  final payloadBytes = utf8.encode(payloadString);

  final payloadHash = sha256.convert(payloadBytes).toString();

  return await Model.firstWhere<QueueJob>(field: "hash", value: payloadHash);
}