cpd_2022_zi/lib/models/settings.dart

48 lines
1.4 KiB
Dart
Raw Permalink Normal View History

2023-02-26 14:10:06 +01:00
import 'package:smoke_cess_app/services/json_service.dart';
2023-02-17 13:47:52 +01:00
class Settings {
final int group;
final List<String>? relapseCategories;
2023-02-27 11:19:56 +01:00
final QueryConfig? moodQuery;
final QueryConfig? sleepQuery;
final TimeConfig? chessTime;
2023-03-05 20:43:02 +01:00
final DateTime startedAt;
2023-02-17 13:47:52 +01:00
Settings(this.group, this.relapseCategories, this.moodQuery, this.sleepQuery,
2023-03-05 20:43:02 +01:00
this.chessTime, this.startedAt);
2023-02-17 13:47:52 +01:00
Settings.fromJson(Map<String, dynamic> json)
: group = json['group'] as int,
relapseCategories = jsonPropertyAsList(json['relapse_categories']),
moodQuery = QueryConfig.fromJson(json['mood_query']),
sleepQuery = QueryConfig.fromJson(json['sleep_query']),
chessTime = json['chess_time'] != null
? TimeConfig.fromJson(json['chess_time'])
2023-03-05 20:43:02 +01:00
: null,
2023-03-06 18:39:36 +01:00
startedAt = DateTime.now();
}
class QueryConfig {
2023-02-27 11:19:56 +01:00
final int? hours;
final int? minutes;
final List<String>? days;
QueryConfig(this.hours, this.minutes, this.days);
QueryConfig.fromJson(Map<String, dynamic> json)
: hours = json['hours'] as int,
minutes = json['minutes'] as int,
days = jsonPropertyAsList(json['days']);
}
class TimeConfig {
2023-02-27 11:19:56 +01:00
final int? hours;
final int? minutes;
TimeConfig(this.hours, this.minutes);
TimeConfig.fromJson(Map<String, dynamic> json)
: hours = json['hours'] as int,
minutes = json['minutes'] as int;
2023-02-17 13:47:52 +01:00
}