4
0

payload.dart 884 B

123456789101112131415161718192021222324252627282930
  1. /// Builds the minimal `POST /api/inventory` document for a partial update.
  2. /// Merge mode treats omitted/null/empty fields as "don't touch", so only
  3. /// changed values are sent.
  4. Map<String, dynamic> buildUpsertPayload({
  5. required int version,
  6. required List<Map<String, dynamic>> resources,
  7. }) {
  8. return {
  9. 'version': version,
  10. 'resources': resources,
  11. };
  12. }
  13. Map<String, dynamic> resourcePatch({
  14. required String kind,
  15. required String name,
  16. Map<String, Object?> fields = const {},
  17. List<String>? tags,
  18. Map<String, String>? labels,
  19. String? notes,
  20. List<String>? runsOn,
  21. }) {
  22. final patch = <String, Object?>{'kind': kind, 'name': name};
  23. patch.addAll(fields);
  24. if (tags != null) patch['tags'] = tags;
  25. if (labels != null) patch['labels'] = labels;
  26. if (notes != null) patch['notes'] = notes;
  27. if (runsOn != null) patch['runsOn'] = runsOn;
  28. return patch;
  29. }