diff --git a/lib/pages/access_management/manage_bookable_spaces/domain/service/send_bookable_spaces_to_api_params.dart b/lib/pages/access_management/manage_bookable_spaces/domain/service/send_bookable_spaces_to_api_params.dart new file mode 100644 index 00000000..caa489c0 --- /dev/null +++ b/lib/pages/access_management/manage_bookable_spaces/domain/service/send_bookable_spaces_to_api_params.dart @@ -0,0 +1,38 @@ +import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/domain/models/bookable_space_model.dart'; + +class SendBookableSpacesToApiParams { + List spaceUuids; + List daysAvailable; + String startTime; + String endTime; + int points; + SendBookableSpacesToApiParams({ + required this.spaceUuids, + required this.daysAvailable, + required this.startTime, + required this.endTime, + required this.points, + }); + + static SendBookableSpacesToApiParams fromBookableSpacesModel( + List bookableSpaces) { + return SendBookableSpacesToApiParams( + spaceUuids: bookableSpaces.map((space) => space.spaceUuid).toList(), + daysAvailable: bookableSpaces + .expand((space) => space.spaceConfig.bookableDays) + .toSet() + .toList(), + startTime: bookableSpaces.first.spaceConfig.bookingStartTime, + endTime: bookableSpaces.first.spaceConfig.bookingEndTime, + points: bookableSpaces.first.spaceConfig.cost, + ); + } + + Map toJson() => { + 'spaceUuids': spaceUuids, + 'daysAvailable': daysAvailable, + 'startTime': startTime, + 'endTime': endTime, + 'points': points + }; +}