it0/it0_app/lib/features/settings/domain/entities/app_settings.dart

59 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
/// Domain entity representing application settings.
class AppSettings {
final ThemeMode themeMode;
final bool notificationsEnabled;
final bool soundEnabled;
final bool hapticFeedback;
final String? selectedTenantId;
final String? selectedTenantName;
final String language;
final bool biometricEnabled;
final String ttsVoice;
final String ttsStyle;
final String engineType;
const AppSettings({
this.themeMode = ThemeMode.dark,
this.notificationsEnabled = true,
this.soundEnabled = true,
this.hapticFeedback = true,
this.selectedTenantId,
this.selectedTenantName,
this.language = 'en',
this.biometricEnabled = false,
this.ttsVoice = 'coral',
this.ttsStyle = '',
this.engineType = 'claude_agent_sdk',
});
AppSettings copyWith({
ThemeMode? themeMode,
bool? notificationsEnabled,
bool? soundEnabled,
bool? hapticFeedback,
String? selectedTenantId,
String? selectedTenantName,
String? language,
bool? biometricEnabled,
String? ttsVoice,
String? ttsStyle,
String? engineType,
}) {
return AppSettings(
themeMode: themeMode ?? this.themeMode,
notificationsEnabled: notificationsEnabled ?? this.notificationsEnabled,
soundEnabled: soundEnabled ?? this.soundEnabled,
hapticFeedback: hapticFeedback ?? this.hapticFeedback,
selectedTenantId: selectedTenantId ?? this.selectedTenantId,
selectedTenantName: selectedTenantName ?? this.selectedTenantName,
language: language ?? this.language,
biometricEnabled: biometricEnabled ?? this.biometricEnabled,
ttsVoice: ttsVoice ?? this.ttsVoice,
ttsStyle: ttsStyle ?? this.ttsStyle,
engineType: engineType ?? this.engineType,
);
}
}