magic_metadata.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import 'dart:convert';
  2. const visibilityVisible = 0;
  3. const visibilityArchive = 1;
  4. const magicKeyVisibility = 'visibility';
  5. const pubMagicKeyEditedTime = 'editedTime';
  6. const pubMagicKeyEditedName = 'editedName';
  7. const pubMagicKeyCaption = "caption";
  8. class MagicMetadata {
  9. // 0 -> visible
  10. // 1 -> archived
  11. // 2 -> hidden etc?
  12. int visibility;
  13. MagicMetadata({required this.visibility});
  14. factory MagicMetadata.fromEncodedJson(String encodedJson) =>
  15. MagicMetadata.fromJson(jsonDecode(encodedJson));
  16. factory MagicMetadata.fromJson(dynamic json) => MagicMetadata.fromMap(json);
  17. static fromMap(Map<String, dynamic>? map) {
  18. if (map == null) return null;
  19. return MagicMetadata(
  20. visibility: map[magicKeyVisibility] ?? visibilityVisible,
  21. );
  22. }
  23. }
  24. class PubMagicMetadata {
  25. int? editedTime;
  26. String? editedName;
  27. String? caption;
  28. PubMagicMetadata({this.editedTime, this.editedName, this.caption});
  29. factory PubMagicMetadata.fromEncodedJson(String encodedJson) =>
  30. PubMagicMetadata.fromJson(jsonDecode(encodedJson));
  31. factory PubMagicMetadata.fromJson(dynamic json) =>
  32. PubMagicMetadata.fromMap(json);
  33. static fromMap(Map<String, dynamic>? map) {
  34. if (map == null) return null;
  35. return PubMagicMetadata(
  36. editedTime: map[pubMagicKeyEditedTime],
  37. editedName: map[pubMagicKeyEditedName],
  38. caption: map[pubMagicKeyCaption],
  39. );
  40. }
  41. }
  42. class CollectionMagicMetadata {
  43. // 0 -> visible
  44. // 1 -> archived
  45. // 2 -> hidden etc?
  46. int visibility;
  47. CollectionMagicMetadata({required this.visibility});
  48. factory CollectionMagicMetadata.fromEncodedJson(String encodedJson) =>
  49. CollectionMagicMetadata.fromJson(jsonDecode(encodedJson));
  50. factory CollectionMagicMetadata.fromJson(dynamic json) =>
  51. CollectionMagicMetadata.fromMap(json);
  52. static fromMap(Map<String, dynamic>? map) {
  53. if (map == null) return null;
  54. return CollectionMagicMetadata(
  55. visibility: map[magicKeyVisibility] ?? visibilityVisible,
  56. );
  57. }
  58. }