import 'package:oc_front/models/abstract.dart';

class Scheduler extends SerializerDeserializer<Scheduler> {
  DateTime? start;
  DateTime? end;
  double? duration;
  String? cron;

  Scheduler({
    this.start,
    this.end,
    this.duration,
    this.cron,
  });

  @override
  Scheduler deserialize(json) {
    try { json = json as Map<String, dynamic>;
    } catch (e) { return Scheduler(); }
    var w = Scheduler(
      start: json.containsKey("start") && json["start"] != null ? DateTime.parse(json["start"]) : null,
      end: json.containsKey("end") && json["end"] != null ? DateTime.parse(json["end"]) : null,
      duration: json.containsKey("duration_s") && json["duration_s"] != null ? json["duration_s"] : -1,
      cron: json.containsKey("cron") && json["cron"] != null ? json["cron"] : null,
    );
    return w;
  }

  @override Map<String, dynamic> serialize() {
    return {
      "start": start?.toIso8601String(),
      "end": end?.toIso8601String(),
      "duration_s": duration,
      "cron": cron,
    };
  }
}