import "package:fast_immutable_collections/fast_immutable_collections.dart"; import "package:freezed_annotation/freezed_annotation.dart"; import "package:nexus/models/content/content.dart"; part "power_levels.freezed.dart"; part "power_levels.g.dart"; @freezed sealed class PowerLevelsContent extends Content with _$PowerLevelsContent { PowerLevelsContent._(); factory PowerLevelsContent({ @Default(IMap.empty()) IMap events, @Default(IMap.empty()) IMap users, Notifications? notifications, @Default(50) int ban, @Default(0) int eventsDefault, @Default(0) int invite, @Default(50) int kick, @Default(50) int redact, @Default(50) int stateDefault, @Default(0) int usersDefault, }) = _PowerLevelsContent; factory PowerLevelsContent.fromJson(Map json) => _$PowerLevelsContentFromJson(json); } @Freezed(toJson: false, fromJson: false) @JsonSerializable() class const Notifications({ final int room = 50, final IMap other = const IMap.empty(), }) with _$Notifications { Map toJson() => _$NotificationsToJson(this); factory Notifications.fromJson(Map json) => _$NotificationsFromJson(json); }