put account data keys in model

This commit is contained in:
Henry Hiles 2026-08-08 16:14:11 -04:00
commit 2afd5ae258
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 8 additions and 6 deletions

View file

@ -15,17 +15,21 @@ abstract class AccountData with _$AccountData {
IList<RecentEmoji> recentEmoji,
) => {"recent_emoji": recentEmoji.map((emoji) => emoji.toJson()).toList()};
static const invitePermissionConfigKey = "m.invite_permission_config";
static const directKey = "m.direct";
static const recentEmojiKey = "m.recent_emoji";
const factory AccountData({
@JsonKey(name: InvitePermissionConfig.key)
@JsonKey(name: AccountData.invitePermissionConfigKey)
@Default(InvitePermissionConfig())
InvitePermissionConfig invitePermissionConfig,
@JsonKey(name: "m.direct")
@JsonKey(name: AccountData.directKey)
@Default(IMap.empty())
IMap<String, IList<String>> directMessages,
@JsonKey(
name: "m.recent_emoji",
name: AccountData.recentEmojiKey,
readValue: AccountData.readRecentEmojiValue,
toJson: AccountData.recentEmojiToJson,
)
@ -39,8 +43,6 @@ abstract class AccountData with _$AccountData {
@freezed
abstract class InvitePermissionConfig with _$InvitePermissionConfig {
static const key = "m.invite_permission_config";
const factory InvitePermissionConfig({
@JsonKey(unknownEnumValue: DefaultInviteAction.allow)
@Default(DefaultInviteAction.allow)