diff --git a/CHANGELOG.md b/CHANGELOG.md index e03427c..3eca73b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.7.7 + +- Added `RealtimeMessage` model with `topic` and `payload` fields in the new `realtime` module. + ## 3.7.6 - Added `ATS_PREVENT_CHANGES_IN_CACL_TELEMETRY_INPUTS` value to `ReferenceCategory` enum diff --git a/lib/layrz_models.dart b/lib/layrz_models.dart index e364e65..f0f71ec 100644 --- a/lib/layrz_models.dart +++ b/lib/layrz_models.dart @@ -26,6 +26,9 @@ export 'src/brickhouse/brickhouse.dart'; // import 'src/builder/builder.dart'; export 'src/builder/builder.dart'; +// import 'src/realtime/realtime.dart'; +export 'src/realtime/realtime.dart'; + import 'src/care_protocols/care_protocols.dart'; export 'src/care_protocols/care_protocols.dart'; diff --git a/lib/src/realtime/realtime.dart b/lib/src/realtime/realtime.dart new file mode 100644 index 0000000..be0f21d --- /dev/null +++ b/lib/src/realtime/realtime.dart @@ -0,0 +1,8 @@ +library; + +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'realtime.freezed.dart'; +part 'realtime.g.dart'; + +part 'src/message.dart'; diff --git a/lib/src/realtime/realtime.freezed.dart b/lib/src/realtime/realtime.freezed.dart new file mode 100644 index 0000000..928bab4 --- /dev/null +++ b/lib/src/realtime/realtime.freezed.dart @@ -0,0 +1,286 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'realtime.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +// dart format off +T _$identity(T value) => value; + +/// @nodoc +mixin _$RealtimeMessage { + + String get topic; Map get payload; +/// Create a copy of RealtimeMessage +/// with the given fields replaced by the non-null parameter values. +@JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +$RealtimeMessageCopyWith get copyWith => _$RealtimeMessageCopyWithImpl(this as RealtimeMessage, _$identity); + + /// Serializes this RealtimeMessage to a JSON map. + Map toJson(); + + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is RealtimeMessage&&(identical(other.topic, topic) || other.topic == topic)&&const DeepCollectionEquality().equals(other.payload, payload)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,topic,const DeepCollectionEquality().hash(payload)); + +@override +String toString() { + return 'RealtimeMessage(topic: $topic, payload: $payload)'; +} + + +} + +/// @nodoc +abstract mixin class $RealtimeMessageCopyWith<$Res> { + factory $RealtimeMessageCopyWith(RealtimeMessage value, $Res Function(RealtimeMessage) _then) = _$RealtimeMessageCopyWithImpl; +@useResult +$Res call({ + String topic, Map payload +}); + + + + +} +/// @nodoc +class _$RealtimeMessageCopyWithImpl<$Res> + implements $RealtimeMessageCopyWith<$Res> { + _$RealtimeMessageCopyWithImpl(this._self, this._then); + + final RealtimeMessage _self; + final $Res Function(RealtimeMessage) _then; + +/// Create a copy of RealtimeMessage +/// with the given fields replaced by the non-null parameter values. +@pragma('vm:prefer-inline') @override $Res call({Object? topic = null,Object? payload = null,}) { + return _then(_self.copyWith( +topic: null == topic ? _self.topic : topic // ignore: cast_nullable_to_non_nullable +as String,payload: null == payload ? _self.payload : payload // ignore: cast_nullable_to_non_nullable +as Map, + )); +} + +} + + +/// Adds pattern-matching-related methods to [RealtimeMessage]. +extension RealtimeMessagePatterns on RealtimeMessage { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _RealtimeMessage value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _RealtimeMessage() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _RealtimeMessage value) $default,){ +final _that = this; +switch (_that) { +case _RealtimeMessage(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _RealtimeMessage value)? $default,){ +final _that = this; +switch (_that) { +case _RealtimeMessage() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String topic, Map payload)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _RealtimeMessage() when $default != null: +return $default(_that.topic,_that.payload);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String topic, Map payload) $default,) {final _that = this; +switch (_that) { +case _RealtimeMessage(): +return $default(_that.topic,_that.payload);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String topic, Map payload)? $default,) {final _that = this; +switch (_that) { +case _RealtimeMessage() when $default != null: +return $default(_that.topic,_that.payload);case _: + return null; + +} +} + +} + +/// @nodoc +@JsonSerializable() + +class _RealtimeMessage extends RealtimeMessage { + const _RealtimeMessage({required this.topic, required final Map payload}): _payload = payload,super._(); + factory _RealtimeMessage.fromJson(Map json) => _$RealtimeMessageFromJson(json); + +@override final String topic; + final Map _payload; +@override Map get payload { + if (_payload is EqualUnmodifiableMapView) return _payload; + // ignore: implicit_dynamic_type + return EqualUnmodifiableMapView(_payload); +} + + +/// Create a copy of RealtimeMessage +/// with the given fields replaced by the non-null parameter values. +@override @JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +_$RealtimeMessageCopyWith<_RealtimeMessage> get copyWith => __$RealtimeMessageCopyWithImpl<_RealtimeMessage>(this, _$identity); + +@override +Map toJson() { + return _$RealtimeMessageToJson(this, ); +} + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _RealtimeMessage&&(identical(other.topic, topic) || other.topic == topic)&&const DeepCollectionEquality().equals(other._payload, _payload)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,topic,const DeepCollectionEquality().hash(_payload)); + +@override +String toString() { + return 'RealtimeMessage(topic: $topic, payload: $payload)'; +} + + +} + +/// @nodoc +abstract mixin class _$RealtimeMessageCopyWith<$Res> implements $RealtimeMessageCopyWith<$Res> { + factory _$RealtimeMessageCopyWith(_RealtimeMessage value, $Res Function(_RealtimeMessage) _then) = __$RealtimeMessageCopyWithImpl; +@override @useResult +$Res call({ + String topic, Map payload +}); + + + + +} +/// @nodoc +class __$RealtimeMessageCopyWithImpl<$Res> + implements _$RealtimeMessageCopyWith<$Res> { + __$RealtimeMessageCopyWithImpl(this._self, this._then); + + final _RealtimeMessage _self; + final $Res Function(_RealtimeMessage) _then; + +/// Create a copy of RealtimeMessage +/// with the given fields replaced by the non-null parameter values. +@override @pragma('vm:prefer-inline') $Res call({Object? topic = null,Object? payload = null,}) { + return _then(_RealtimeMessage( +topic: null == topic ? _self.topic : topic // ignore: cast_nullable_to_non_nullable +as String,payload: null == payload ? _self._payload : payload // ignore: cast_nullable_to_non_nullable +as Map, + )); +} + + +} + +// dart format on diff --git a/lib/src/realtime/realtime.g.dart b/lib/src/realtime/realtime.g.dart new file mode 100644 index 0000000..d8204d6 --- /dev/null +++ b/lib/src/realtime/realtime.g.dart @@ -0,0 +1,16 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'realtime.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_RealtimeMessage _$RealtimeMessageFromJson(Map json) => + _RealtimeMessage( + topic: json['topic'] as String, + payload: json['payload'] as Map, + ); + +Map _$RealtimeMessageToJson(_RealtimeMessage instance) => + {'topic': instance.topic, 'payload': instance.payload}; diff --git a/lib/src/realtime/src/message.dart b/lib/src/realtime/src/message.dart new file mode 100644 index 0000000..05747ea --- /dev/null +++ b/lib/src/realtime/src/message.dart @@ -0,0 +1,13 @@ +part of '../realtime.dart'; + +@freezed +abstract class RealtimeMessage with _$RealtimeMessage { + const RealtimeMessage._(); + + const factory RealtimeMessage({ + required String topic, + required Map payload, + }) = _RealtimeMessage; + + factory RealtimeMessage.fromJson(Map json) => _$RealtimeMessageFromJson(json); +} diff --git a/pubspec.yaml b/pubspec.yaml index e217a3f..18a5ceb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ description: Layrz API models for Dart/Flutter. This package contains the models used by the Layrz API. name: layrz_models -version: "3.7.6" +version: "3.7.7" repository: https://github.com/goldenm-software/layrz_models environment: