48 lines
1.4 KiB
Dart
48 lines
1.4 KiB
Dart
import 'package:smoke_cess_app/services/json_service.dart';
|
|
|
|
class Settings {
|
|
final int group;
|
|
final List<String>? relapseCategories;
|
|
final QueryConfig? moodQuery;
|
|
final QueryConfig? sleepQuery;
|
|
final TimeConfig? chessTime;
|
|
final DateTime startedAt;
|
|
|
|
Settings(this.group, this.relapseCategories, this.moodQuery, this.sleepQuery,
|
|
this.chessTime, this.startedAt);
|
|
|
|
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'])
|
|
: null,
|
|
startedAt = DateTime.now();
|
|
}
|
|
|
|
class QueryConfig {
|
|
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 {
|
|
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;
|
|
}
|