import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:json_annotation/json_annotation.dart'; part 'inbox_state.g.dart'; @JsonSerializable( ignoreUnannotated: true, ) class InboxState with EquatableMixin { final bool isLoaded; final Iterable inboxTags; final Iterable inboxItems; final Map availableTags; final Map availableDocumentTypes; final Map availableCorrespondents; final Map suggestions; @JsonKey() final bool isHintAcknowledged; const InboxState({ this.isLoaded = false, this.inboxTags = const [], this.inboxItems = const [], this.isHintAcknowledged = false, this.availableTags = const {}, this.availableDocumentTypes = const {}, this.availableCorrespondents = const {}, this.suggestions = const {}, }); @override List get props => [ isLoaded, inboxTags, inboxItems, isHintAcknowledged, availableTags, availableDocumentTypes, availableCorrespondents, suggestions, ]; InboxState copyWith({ bool? isLoaded, Iterable? inboxTags, Iterable? inboxItems, bool? isHintAcknowledged, Map? availableTags, Map? availableCorrespondents, Map? availableDocumentTypes, Map? suggestions, }) { return InboxState( isLoaded: isLoaded ?? this.isLoaded, inboxItems: inboxItems ?? this.inboxItems, inboxTags: inboxTags ?? this.inboxTags, isHintAcknowledged: isHintAcknowledged ?? this.isHintAcknowledged, availableCorrespondents: availableCorrespondents ?? this.availableCorrespondents, availableDocumentTypes: availableDocumentTypes ?? this.availableDocumentTypes, availableTags: availableTags ?? this.availableTags, suggestions: suggestions ?? this.suggestions, ); } factory InboxState.fromJson(Map json) => _$InboxStateFromJson(json); Map toJson() => _$InboxStateToJson(this); }