AIConfig model
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
||||
|
||||
part 'ai_scribe_config.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class AIScribeConfig extends PreferencesConfig {
|
||||
final bool isEnabled;
|
||||
|
||||
AIScribeConfig({
|
||||
this.isEnabled = true,
|
||||
});
|
||||
|
||||
factory AIScribeConfig.initial() => AIScribeConfig();
|
||||
|
||||
factory AIScribeConfig.fromJson(Map<String, dynamic> json) =>
|
||||
_$AIScribeConfigFromJson(json);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() => _$AIScribeConfigToJson(this);
|
||||
|
||||
@override
|
||||
List<Object> get props => [isEnabled];
|
||||
}
|
||||
|
||||
extension AIScribeConfigExtension on AIScribeConfig {
|
||||
AIScribeConfig copyWith({
|
||||
bool? isEnabled,
|
||||
}) {
|
||||
return AIScribeConfig(
|
||||
isEnabled: isEnabled ?? this.isEnabled,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/text_formatting_menu_config.dart';
|
||||
@@ -15,6 +16,7 @@ class PreferencesSetting with EquatableMixin {
|
||||
ThreadDetailConfig.initial(),
|
||||
SpamReportConfig.initial(),
|
||||
TextFormattingMenuConfig.initial(),
|
||||
AIScribeConfig.initial(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -48,6 +50,16 @@ class PreferencesSetting with EquatableMixin {
|
||||
}
|
||||
}
|
||||
|
||||
AIScribeConfig get aiScribeConfig {
|
||||
final aiConfig =
|
||||
configs.firstWhereOrNull((config) => config is AIScribeConfig);
|
||||
if (aiConfig != null) {
|
||||
return aiConfig as AIScribeConfig;
|
||||
} else {
|
||||
return AIScribeConfig.initial();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [configs];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user