@@ -0,0 +1,58 @@
|
||||
class AppSettings {
|
||||
AppSettings({
|
||||
required this.rentUsd,
|
||||
required this.occupied,
|
||||
this.notOccupiedFromYearMonth,
|
||||
this.localFallbackHour = 9,
|
||||
this.localQuietHourStart = 23,
|
||||
});
|
||||
|
||||
final double rentUsd;
|
||||
final bool occupied;
|
||||
final String? notOccupiedFromYearMonth;
|
||||
final int localFallbackHour;
|
||||
final int localQuietHourStart;
|
||||
|
||||
factory AppSettings.defaults() {
|
||||
return AppSettings(rentUsd: 0, occupied: true);
|
||||
}
|
||||
|
||||
AppSettings copyWith({
|
||||
double? rentUsd,
|
||||
bool? occupied,
|
||||
String? notOccupiedFromYearMonth,
|
||||
bool clearNotOccupiedFromYearMonth = false,
|
||||
int? localFallbackHour,
|
||||
int? localQuietHourStart,
|
||||
}) {
|
||||
return AppSettings(
|
||||
rentUsd: rentUsd ?? this.rentUsd,
|
||||
occupied: occupied ?? this.occupied,
|
||||
notOccupiedFromYearMonth: clearNotOccupiedFromYearMonth
|
||||
? null
|
||||
: (notOccupiedFromYearMonth ?? this.notOccupiedFromYearMonth),
|
||||
localFallbackHour: localFallbackHour ?? this.localFallbackHour,
|
||||
localQuietHourStart: localQuietHourStart ?? this.localQuietHourStart,
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'rentUsd': rentUsd,
|
||||
'occupied': occupied,
|
||||
'notOccupiedFromYearMonth': notOccupiedFromYearMonth,
|
||||
'localFallbackHour': localFallbackHour,
|
||||
'localQuietHourStart': localQuietHourStart,
|
||||
};
|
||||
}
|
||||
|
||||
factory AppSettings.fromJson(Map<String, dynamic> json) {
|
||||
return AppSettings(
|
||||
rentUsd: (json['rentUsd'] ?? 0).toDouble(),
|
||||
occupied: json['occupied'] ?? true,
|
||||
notOccupiedFromYearMonth: json['notOccupiedFromYearMonth'] as String?,
|
||||
localFallbackHour: json['localFallbackHour'] ?? 9,
|
||||
localQuietHourStart: json['localQuietHourStart'] ?? 23,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user