initial
This commit is contained in:
32
lib/appflow/model/schedules.dart
Normal file
32
lib/appflow/model/schedules.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
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,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user