33 lines
1.1 KiB
Dart
33 lines
1.1 KiB
Dart
import 'package:hiddingsel_app/constants/enums.dart';
|
|
|
|
class ScheduleModel {
|
|
final DateTime startTime;
|
|
final DateTime endTime;
|
|
final Frequency frequency;
|
|
final int? interval;
|
|
final DateTime? until;
|
|
|
|
ScheduleModel(
|
|
this.startTime, this.endTime, this.frequency, this.interval, this.until);
|
|
|
|
bool get isAllDay =>
|
|
startTime == endTime || (startTime.difference(endTime).inDays != 0 && startTime.difference(endTime).inDays%1 == 0);
|
|
|
|
toJson() => {
|
|
'startTime': startTime.toIso8601String(),
|
|
'endTime': endTime.toIso8601String(),
|
|
'frequency': frequency.toString(),
|
|
'interval': interval,
|
|
'until': until?.toIso8601String(),
|
|
};
|
|
|
|
static ScheduleModel fromJson(Map<String, dynamic> json) => ScheduleModel(
|
|
DateTime.parse(json['startTime'] as String),
|
|
DateTime.parse(json['endTime'] as String),
|
|
Frequency.values
|
|
.firstWhere((f) => f.toString() == json['frequency']),
|
|
json['interval'] as int?,
|
|
(json['until'] as String?) != null ? DateTime.parse(json['until'] as String) : null,
|
|
);
|
|
}
|