class RotaShift { String managerName = ''; String name = ''; String staffRequired = ''; String workerType = ''; String location = ''; String id = ''; //from service String startTime = ''; //from service String endTime = ''; //from service String breakTime = ''; String notes = ''; RotaShift.empty(); bool get havingShift { return id.isNotEmpty || startTime.isNotEmpty || endTime.isNotEmpty; } DateTime get shiftTime { return DateTime.parse(startTime).toLocal(); } DateTime get shiftStartTime { return DateTime.parse(startTime).toLocal(); } DateTime get shiftEndTime { return endTime.isNotEmpty ? DateTime.parse(endTime).toLocal() : DateTime.now(); } RotaShift({ this.id = '', required this.name, required this.staffRequired, required this.workerType, required this.location, required this.startTime, required this.endTime, required this.breakTime, required this.notes, this.managerName = "Emily Smith", }); RotaShift.fromJson(Map json) { id = json["_id"] ?? ""; startTime = json["shftStartTime"] ?? ""; endTime = json["shftEndTime"] ?? ""; } @override String toString() { return 'RotaShift{managerName: $managerName, name: $name, staffRequired: $staffRequired, workerType: $workerType, location: $location, id: $id, startTime: $startTime, endTime: $endTime, breakTime: $breakTime, notes: $notes}'; } } class DayWiseRecord { bool dayOn = false; bool sleepOverRequired = false; RotaShift rotaShift = RotaShift.empty(); DayWiseRecord.empty(); DayWiseRecord({ required this.dayOn, required this.sleepOverRequired, required this.rotaShift, }); DayWiseRecord.fromJson(Map json) { dayOn = json["dayOn"] ?? false; sleepOverRequired = json["sleepOverRequired"] ?? false; if (json["shifts"] is List && json['shifts'].length != 0) { rotaShift = RotaShift.fromJson(json["shifts"][0] ?? ""); } } @override String toString() { return 'DayWiseRecord{dayOn: $dayOn, sleepOverRequired: $sleepOverRequired, rotaShift: $rotaShift}'; } } class WeekWiseRecord { DayWiseRecord mondayRecord = DayWiseRecord.empty(); DayWiseRecord tuesdayRecord = DayWiseRecord.empty(); DayWiseRecord wednesdayRecord = DayWiseRecord.empty(); DayWiseRecord thursdayRecord = DayWiseRecord.empty(); DayWiseRecord fridayRecord = DayWiseRecord.empty(); DayWiseRecord saturdayRecord = DayWiseRecord.empty(); DayWiseRecord sundayRecord = DayWiseRecord.empty(); bool weekIncluded = false; WeekWiseRecord.empty(); WeekWiseRecord({ required this.mondayRecord, required this.tuesdayRecord, required this.wednesdayRecord, required this.thursdayRecord, required this.fridayRecord, required this.saturdayRecord, required this.sundayRecord, required this.weekIncluded, }); WeekWiseRecord.fromJson(dynamic json) { mondayRecord = DayWiseRecord.fromJson(json['monday'] ?? ""); tuesdayRecord = DayWiseRecord.fromJson(json['tuesday'] ?? ""); wednesdayRecord = DayWiseRecord.fromJson(json['wednesday'] ?? ""); thursdayRecord = DayWiseRecord.fromJson(json['thursday'] ?? ""); fridayRecord = DayWiseRecord.fromJson(json['friday'] ?? ""); saturdayRecord = DayWiseRecord.fromJson(json['saturday'] ?? ""); sundayRecord = DayWiseRecord.fromJson(json['sunday'] ?? ""); weekIncluded = json['weekIncluded'] ?? false; } @override String toString() { return 'WeekWiseRecord{mondayRecord: $mondayRecord, tuesdayRecord: $tuesdayRecord, wednesdayRecord: $wednesdayRecord, thursdayRecord: $thursdayRecord, fridayRecord: $fridayRecord, saturdayRecord: $saturdayRecord, sundayRecord: $sundayRecord, weekIncluded: $weekIncluded}'; } } //make variable for this model class MonthWiseRecord { WeekWiseRecord week1 = WeekWiseRecord.empty(); WeekWiseRecord week2 = WeekWiseRecord.empty(); WeekWiseRecord week3 = WeekWiseRecord.empty(); WeekWiseRecord week4 = WeekWiseRecord.empty(); String id = ""; String serviceUser = ""; String addedBy = ""; String createdAt = ""; String updatedAt = ""; bool active = false; int v = -1; MonthWiseRecord.empty(); MonthWiseRecord({ required this.week1, required this.week2, required this.week3, required this.week4, required this.id, required this.serviceUser, required this.addedBy, required this.createdAt, required this.updatedAt, required this.active, required this.v, }); MonthWiseRecord.fromJson(Map json) { week1 = WeekWiseRecord.fromJson(json['week1'] ?? {}); week2 = WeekWiseRecord.fromJson(json['week2'] ?? {}); week3 = WeekWiseRecord.fromJson(json['week3'] ?? {}); week4 = WeekWiseRecord.fromJson(json['week4'] ?? {}); id = json["id"] ?? ""; serviceUser = json["serviceUser"] ?? ""; addedBy = json["addedBy"] ?? ""; createdAt = json["createdAt"] ?? ""; updatedAt = json["updatedAt"] ?? ""; active = json["active"] ?? false; v = json["v"] ?? -1; } @override String toString() { return 'MonthWiseRecord{week1: $week1, week2: $week2, week3: $week3, week4: $week4, id: $id, serviceUser: $serviceUser, addedBy: $addedBy, createdAt: $createdAt, updatedAt: $updatedAt, active: $active, v: $v}'; } }