nexus/lib/models/room_metadata.dart

32 lines
1.1 KiB
Dart

import "package:freezed_annotation/freezed_annotation.dart";
import "package:nexus/models/epoch_date_time_converter.dart";
import "package:nexus/models/lazy_load_summary.dart";
part "room_metadata.freezed.dart";
part "room_metadata.g.dart";
@Freezed(toJson: false, fromJson: false)
@JsonSerializable()
class const RoomMetadata({
@JsonKey(name: "room_id") required final String id,
// CreateEventContent creationContent,
// TombstoneEventContent tombstoneEventContent,
final String? name,
final Uri? avatar,
final String? dmUserId,
final String? topic,
final String? canonicalAlias,
final LazyLoadSummary? lazyLoadSummary,
required final bool hasMemberList,
@JsonKey(name: "preview_event_rowid") required final int previewEventRowID,
@EpochDateTimeConverter() required final DateTime sortingTimestamp,
required final int unreadHighlights,
required final int unreadNotifications,
required final int unreadMessages,
}) with _$RoomMetadata {
Map<String, Object?> toJson() => _$RoomMetadataToJson(this);
factory RoomMetadata.fromJson(Map<String, Object?> json) =>
_$RoomMetadataFromJson(json);
}