47 lines
1.4 KiB
Dart
47 lines
1.4 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;
|
|
|
|
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,
|
|
});
|
|
|
|
AppSettings copyWith({
|
|
ThemeMode? themeMode,
|
|
bool? notificationsEnabled,
|
|
bool? soundEnabled,
|
|
bool? hapticFeedback,
|
|
String? selectedTenantId,
|
|
String? selectedTenantName,
|
|
String? language,
|
|
bool? biometricEnabled,
|
|
}) {
|
|
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,
|
|
);
|
|
}
|
|
}
|