talk_tabs.dart 949 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:json_annotation/json_annotation.dart';
  2. import '../../module/talk/controller.dart';
  3. part 'talk_tabs.g.dart';
  4. @JsonSerializable()
  5. class TalkTabs {
  6. @JsonKey(name: 'name')
  7. final String name;
  8. @JsonKey(
  9. name: 'type',
  10. fromJson: _talkTabsTypeFromJson,
  11. includeToJson: false,
  12. includeFromJson: true)
  13. final TalkBarType type;
  14. @JsonKey(name: 'select')
  15. final bool? select;
  16. TalkTabs(this.name, this.type, this.select);
  17. factory TalkTabs.fromJson(Map<String, dynamic> json) =>
  18. _$TalkTabsFromJson(json);
  19. static _talkTabsTypeFromJson(String? target) {
  20. if (target == 'summary') {
  21. return TalkBarType.summary;
  22. } else if (target == 'mind') {
  23. return TalkBarType.mindMap;
  24. } else if (target == 'agenda') {
  25. return TalkBarType.myTask;
  26. } else if (target == 'original') {
  27. return TalkBarType.original;
  28. }
  29. throw Exception('Unknown TalkTabs type: $target');
  30. }
  31. }