Files
iiEsaywebUIapp/lib/core/models/user_settings.dart
2025-08-17 17:01:06 +05:30

44 lines
1.2 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
part 'user_settings.freezed.dart';
part 'user_settings.g.dart';
@freezed
sealed class UserSettings with _$UserSettings {
const factory UserSettings({
// Chat preferences
@Default(true) bool showReadReceipts,
@Default(true) bool enableNotifications,
@Default(false) bool enableSounds,
@Default('auto') String theme, // 'light', 'dark', 'auto'
// AI preferences
@Default(0.7) double temperature,
@Default(2048) int maxTokens,
@Default(false) bool streamResponses,
@Default(false) bool webSearchEnabled,
// Privacy settings
@Default(true) bool saveConversations,
@Default(false) bool shareUsageData,
// Interface preferences
@Default('comfortable')
String density, // 'compact', 'comfortable', 'spacious'
@Default(14.0) double fontSize,
@Default('en') String language,
// Accessibility settings
@Default(false) bool reduceMotion,
@Default(true) bool hapticFeedback,
// Model preferences
String? defaultModelId,
// Advanced settings
@Default({}) Map<String, dynamic> customSettings,
}) = _UserSettings;
factory UserSettings.fromJson(Map<String, dynamic> json) =>
_$UserSettingsFromJson(json);
}