6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit 43e1f4e2
Changed files
.../choose_share_room_repository.dart | 3 +- comwell_key_app/lib/database/daos/user_dao.dart | 2 +- .../domain/repositories/profile_repository.dart | 4 +- .../repositories/profile_settings_repository.dart | 3 +- .../pregistration/cubit/preregistration_cubit.dart | 10 +- .../interceptors/mappers/booking_mapper.dart | 142 +++++++++++++++++++++ .../lib/services/mappers/booking_mapper.dart | 3 +- 7 files changed, 160 insertions(+), 7 deletions(-)
Diff
diff --git a/comwell_key_app/lib/choose_share_room/choose_share_room_repository.dart b/comwell_key_app/lib/choose_share_room/choose_share_room_repository.dart
index d6f257b2..6a741749 100644
--- a/comwell_key_app/lib/choose_share_room/choose_share_room_repository.dart
+++ b/comwell_key_app/lib/choose_share_room/choose_share_room_repository.dart
@@ -1,6 +1,7 @@
import 'package:comwell_key_app/overview/models/room.dart';
import 'package:comwell_key_app/services/api.dart';
-import 'package:comwell_key_app/services/interceptors/mappers/room_mapper.dart';
+import 'package:comwell_key_app/services/mappers/room_mapper.dart';
+
import 'package:comwell_key_app/services/models/room_dto.dart';
class ChooseShareRoomRepository {
diff --git a/comwell_key_app/lib/database/daos/user_dao.dart b/comwell_key_app/lib/database/daos/user_dao.dart
index e4ea108f..2f715a63 100644
--- a/comwell_key_app/lib/database/daos/user_dao.dart
+++ b/comwell_key_app/lib/database/daos/user_dao.dart
@@ -2,7 +2,7 @@ import 'dart:convert';
import 'package:comwell_key_app/database/comwell_db.dart';
import 'package:comwell_key_app/domain/models/user.dart';
-import 'package:comwell_key_app/services/interceptors/mappers/user_mapper.dart';
+import '../../services/mappers/user_mapper.dart';
import 'package:comwell_key_app/services/models/user_dto.dart';
import 'package:comwell_key_app/utils/json.dart';
import 'package:drift/drift.dart';
diff --git a/comwell_key_app/lib/domain/repositories/profile_repository.dart b/comwell_key_app/lib/domain/repositories/profile_repository.dart
index be1f9e44..bf89a039 100644
--- a/comwell_key_app/lib/domain/repositories/profile_repository.dart
+++ b/comwell_key_app/lib/domain/repositories/profile_repository.dart
@@ -2,12 +2,14 @@ import 'package:comwell_key_app/authentication/authentication_repository.dart';
import 'package:comwell_key_app/database/comwell_db.dart';
import 'package:comwell_key_app/domain/models/user.dart';
import 'package:comwell_key_app/services/api.dart';
-import 'package:comwell_key_app/services/interceptors/mappers/user_mapper.dart';
+
import 'package:comwell_key_app/services/models/user_dto.dart';
import 'package:comwell_key_app/utils/json.dart';
import 'package:comwell_key_app/utils/locator.dart';
import 'package:flutter/material.dart';
+import '../../services/mappers/user_mapper.dart';
+
class ProfileRepository {
final AuthenticationRepository _authenticationRepository;
final Api _api;
diff --git a/comwell_key_app/lib/domain/repositories/profile_settings_repository.dart b/comwell_key_app/lib/domain/repositories/profile_settings_repository.dart
index 5ef73a5b..fc35d588 100644
--- a/comwell_key_app/lib/domain/repositories/profile_settings_repository.dart
+++ b/comwell_key_app/lib/domain/repositories/profile_settings_repository.dart
@@ -1,7 +1,8 @@
import 'package:comwell_key_app/database/comwell_db.dart';
import 'package:comwell_key_app/domain/models/user.dart';
import 'package:comwell_key_app/services/api.dart';
-import 'package:comwell_key_app/services/interceptors/mappers/user_mapper.dart';
+
+import '../../services/mappers/user_mapper.dart';
import 'package:comwell_key_app/services/models/user_dto.dart';
import 'package:comwell_key_app/utils/json.dart';
diff --git a/comwell_key_app/lib/presentation/screens/pregistration/cubit/preregistration_cubit.dart b/comwell_key_app/lib/presentation/screens/pregistration/cubit/preregistration_cubit.dart
index d44d7a2f..38c27006 100644
--- a/comwell_key_app/lib/presentation/screens/pregistration/cubit/preregistration_cubit.dart
+++ b/comwell_key_app/lib/presentation/screens/pregistration/cubit/preregistration_cubit.dart
@@ -10,7 +10,6 @@ import 'package:comwell_key_app/domain/models/address.dart';
import 'package:comwell_key_app/domain/repositories/profile_settings_repository.dart';
import 'package:comwell_key_app/tracking/comwell_tracking.dart';
import 'package:comwell_key_app/tracking/models/analytics_event_item.dart';
-import 'package:comwell_key_app/up_sales/models/addon_list.dart';
import 'package:comwell_key_app/up_sales/models/addon_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/room_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/upgrade.dart';
@@ -22,7 +21,6 @@ import 'package:country_code_picker/country_code_picker.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
-import 'package:path/path.dart';
import 'package:payment_plugin/domain/models/stored_payment_method.dart';
class PreregistrationCubit extends BaseCubit<PreregistrationState> {
@@ -109,24 +107,32 @@ class PreregistrationCubit extends BaseCubit<PreregistrationState> {
phoneNumberTextController.addListener(() {
if (state.missingInformation) {
emit(state.copyWith(missingInformation: false));
+ } else {
+ emit(state.copyWith(forceUpdate: !state.forceUpdate));
}
});
addressTextController.addListener(() {
if (state.missingInformation) {
emit(state.copyWith(missingInformation: false));
+ } else {
+ emit(state.copyWith(forceUpdate: !state.forceUpdate));
}
});
postalCodeTextController.addListener(() {
if (state.missingInformation) {
emit(state.copyWith(missingInformation: false));
+ } else {
+ emit(state.copyWith(forceUpdate: !state.forceUpdate));
}
});
cityTextController.addListener(() {
if (state.missingInformation) {
emit(state.copyWith(missingInformation: false));
+ } else {
+ emit(state.copyWith(forceUpdate: !state.forceUpdate));
}
});
}
diff --git a/comwell_key_app/lib/services/interceptors/mappers/booking_mapper.dart b/comwell_key_app/lib/services/interceptors/mappers/booking_mapper.dart
new file mode 100644
index 00000000..9d5e5c58
--- /dev/null
+++ b/comwell_key_app/lib/services/interceptors/mappers/booking_mapper.dart
@@ -0,0 +1,142 @@
+import 'package:comwell_key_app/overview/models/booking.dart';
+import 'package:comwell_key_app/overview/models/guest.dart';
+import 'package:comwell_key_app/overview/models/room.dart';
+import 'package:comwell_key_app/services/models/booking_dto.dart';
+import 'package:comwell_key_app/services/models/room_dto.dart';
+
+import '../../mappers/room_mapper.dart';
+
+
+//TODO: Fix actual image
+extension BookingDTOMapper on BookingDTO {
+ Booking toBooking() {
+ final startDate = DateTime.parse(dayIn);
+ final endDate = DateTime.parse(dayOut);
+ final mappedGuests = guests.map(
+ (guest) => Guest(
+ firstName: guest.firstName,
+ lastName: guest.lastName,
+ id: guest.id,
+ ),
+ ).toList();
+ return Booking(
+ id: confirmationNumber,
+ confirmationNumber: confirmationNumber,
+ roomNumber: roomNumber ?? "",
+ startDate: startDate,
+ endDate: endDate,
+ reservationStatus: ReservationStatus.fromString(status),
+ image: "assets/images/no_current_bookings_background.jpeg",
+ hotelName: "Hotel $hotelCode",
+ roomType: roomType ?? '',
+ addOnItems: addOnItems,
+ balance: balance ?? 0,
+ children: children,
+ firstName: firstName,
+ lastName: lastName,
+ bookerFirstName: bookerFirstName,
+ bookerLastName: bookerLastName,
+ adults: adults,
+ hotelCode: hotelCode,
+ bookingDate: startDate,
+ digitalCard: true,
+ isPrimaryGuest: isPrimaryGuest,
+ maskedCardNumber: maskedCardNumber,
+ guests: mappedGuests,
+ );
+ }
+}
+
+extension BookingMapper on Booking {
+ BookingDTO toDTO() {
+ final firstName = this.firstName;
+ final lastName = this.lastName;
+ final mappedGuests = guests
+ .map(
+ (guest) => GuestDTO(
+ id: guest.id,
+ firstName: guest.firstName,
+ lastName: guest.lastName,
+ ),
+ )
+ .toList();
+ return BookingDTO(
+ roomNumber: roomNumber,
+ hotelCode: hotelCode,
+ firstName: firstName,
+ lastName: lastName,
+ bookerFirstName: firstName,
+ bookerLastName: lastName,
+ guests: mappedGuests,
+ confirmationNumber: confirmationNumber,
+ dayIn: startDate.toIso8601String(),
+ dayOut: endDate.toIso8601String(),
+ cancelTime: null,
+ isCancelled: false,
+ bookTime: startDate.toIso8601String(),
+ status: reservationStatus.name,
+ roomType: roomType,
+ adults: adults,
+ children: children,
+ balance: balance ?? 0,
+ isPrimaryGuest: isPrimaryGuest,
+ addOnItems: addOnItems ?? [],
+ );
+ }
+}
+
+extension BookingWithRoomsMapper on Booking {
+ Booking withRooms(List<Room> rooms) {
+ return Booking(
+ id: id,
+ confirmationNumber: confirmationNumber,
+ roomNumber: roomNumber,
+ startDate: startDate,
+ endDate: endDate,
+ reservationStatus: reservationStatus,
+ image: image,
+ hotelName: hotelName,
+ roomType: roomType,
+ addOnItems: addOnItems,
+ balance: balance,
+ children: children,
+ firstName: firstName,
+ lastName: lastName,
+ bookerFirstName: bookerFirstName,
+ bookerLastName: bookerLastName,
+ adults: adults,
+ hotelCode: hotelCode,
+ bookingDate: bookingDate,
+ digitalCard: digitalCard,
+ isPrimaryGuest: isPrimaryGuest,
+ maskedCardNumber: maskedCardNumber,
+ );
+ }
+}
+
+extension ListRoomMapper on List<RoomDto> {
+ List<Room> toRooms() => map((dto) => dto.toRoom()).toList();
+}
+
+extension ListBookingMapper on Iterable<BookingDTO> {
+ Iterable<Booking> toBookings() => map((dto) => dto.toBooking());
+}
+
+extension RoomTypeMapper on Booking {
+ String toRoomType() {
+ switch (roomType) {
+ case "SDPBO":
+ return "Standard Double Plus Room";
+ case "SDBO":
+ return "Standard Double Room";
+ case "STPBO":
+ return "Standard Twin Plus Room";
+ case "STPO":
+ return "Standard Twin Room";
+ case "SUBO":
+ return "Suite";
+ default:
+ return "Room";
+ }
+ }
+}
diff --git a/comwell_key_app/lib/services/mappers/booking_mapper.dart b/comwell_key_app/lib/services/mappers/booking_mapper.dart
index 4d044712..3b29e4cd 100644
--- a/comwell_key_app/lib/services/mappers/booking_mapper.dart
+++ b/comwell_key_app/lib/services/mappers/booking_mapper.dart
@@ -3,7 +3,8 @@ import 'package:comwell_key_app/overview/models/guest.dart';
import 'package:comwell_key_app/overview/models/room.dart';
import 'package:comwell_key_app/services/models/booking_dto.dart';
import 'package:comwell_key_app/services/models/room_dto.dart';
-import 'package:comwell_key_app/services/interceptors/mappers/room_mapper.dart';
+
+import 'room_mapper.dart';
//TODO: Fix actual image
extension BookingDTOMapper on BookingDTO {