6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit 4dd185cf
Changed files
.../lib/.generated/database/comwell_db.g.dart | 65 ++------------------ .../overview/models/payment_details.g.dart | 1 + .../services/adyen/payment_method.g.dart | 24 ++++---- .../.generated/services/models/bookings_dto.g.dart | 10 +-- .../booking_details_repository.dart | 10 --- .../lib/check_in/check_in_repository.dart | 1 - .../lib/database/daos/bookings_dao.dart | 30 ++------- .../lib/database/tables/booking_table.dart | 2 - .../lib/overview/cubit/overview_cubit.dart | 34 ++--------- comwell_key_app/lib/overview/models/booking.dart | 17 +----- comwell_key_app/lib/overview/models/bookings.dart | 10 +-- comwell_key_app/lib/overview/overview_page.dart | 12 ++-- .../past_cancelled_booking_detail_page.dart | 71 +++++++++++----------- .../overview/repository/overview_repository.dart | 7 +-- .../lib/profile/profile_repository.dart | 4 +- comwell_key_app/lib/services/api.dart | 11 +++- .../lib/services/mappers/booking_mapper.dart | 8 +-- .../lib/services/mappers/bookings_mapper.dart | 6 +- .../lib/services/models/bookings_dto.dart | 13 ++-- 19 files changed, 99 insertions(+), 237 deletions(-)
Diff
diff --git a/comwell_key_app/lib/.generated/database/comwell_db.g.dart b/comwell_key_app/lib/.generated/database/comwell_db.g.dart
index 256d56c9..fb0fac34 100644
--- a/comwell_key_app/lib/.generated/database/comwell_db.g.dart
+++ b/comwell_key_app/lib/.generated/database/comwell_db.g.dart
@@ -16,18 +16,13 @@ class $BookingEntityTable extends BookingEntity
type: DriftSqlType.string,
requiredDuringInsert: true,
defaultConstraints: GeneratedColumn.constraintIsAlways('UNIQUE'));
- static const VerificationMeta _statusMeta = const VerificationMeta('status');
- @override
- late final GeneratedColumn<String> status = GeneratedColumn<String>(
- 'status', aliasedName, false,
- type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _jsonMeta = const VerificationMeta('json');
@override
late final GeneratedColumn<String> json = GeneratedColumn<String>(
'json', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true);
@override
- List<GeneratedColumn> get $columns => [id, status, json];
+ List<GeneratedColumn> get $columns => [id, json];
@override
String get aliasedName => _alias ?? actualTableName;
@override
@@ -43,12 +38,6 @@ class $BookingEntityTable extends BookingEntity
} else if (isInserting) {
context.missing(_idMeta);
}
- if (data.containsKey('status')) {
- context.handle(_statusMeta,
- status.isAcceptableOrUnknown(data['status']!, _statusMeta));
- } else if (isInserting) {
- context.missing(_statusMeta);
- }
if (data.containsKey('json')) {
context.handle(
_jsonMeta, json.isAcceptableOrUnknown(data['json']!, _jsonMeta));
@@ -66,8 +55,6 @@ class $BookingEntityTable extends BookingEntity
return BookingDb(
id: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}id'])!,
- status: attachedDatabase.typeMapping
- .read(DriftSqlType.string, data['${effectivePrefix}status'])!,
json: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}json'])!,
);
@@ -81,14 +68,12 @@ class $BookingEntityTable extends BookingEntity
class BookingDb extends DataClass implements Insertable<BookingDb> {
final String id;
- final String status;
final String json;
- const BookingDb({required this.id, required this.status, required this.json});
+ const BookingDb({required this.id, required this.json});
@override
Map<String, Expression> toColumns(bool nullToAbsent) {
final map = <String, Expression>{};
map['id'] = Variable<String>(id);
- map['status'] = Variable<String>(status);
map['json'] = Variable<String>(json);
return map;
}
@@ -96,7 +81,6 @@ class BookingDb extends DataClass implements Insertable<BookingDb> {
BookingEntityCompanion toCompanion(bool nullToAbsent) {
return BookingEntityCompanion(
id: Value(id),
- status: Value(status),
json: Value(json),
);
}
@@ -106,7 +90,6 @@ class BookingDb extends DataClass implements Insertable<BookingDb> {
serializer ??= driftRuntimeOptions.defaultSerializer;
return BookingDb(
id: serializer.fromJson<String>(json['id']),
- status: serializer.fromJson<String>(json['status']),
json: serializer.fromJson<String>(json['json']),
);
}
@@ -115,20 +98,17 @@ class BookingDb extends DataClass implements Insertable<BookingDb> {
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'id': serializer.toJson<String>(id),
- 'status': serializer.toJson<String>(status),
'json': serializer.toJson<String>(json),
};
}
- BookingDb copyWith({String? id, String? status, String? json}) => BookingDb(
+ BookingDb copyWith({String? id, String? json}) => BookingDb(
id: id ?? this.id,
- status: status ?? this.status,
json: json ?? this.json,
);
BookingDb copyWithCompanion(BookingEntityCompanion data) {
return BookingDb(
id: data.id.present ? data.id.value : this.id,
- status: data.status.present ? data.status.value : this.status,
json: data.json.present ? data.json.value : this.json,
);
}
@@ -137,64 +117,50 @@ class BookingDb extends DataClass implements Insertable<BookingDb> {
String toString() {
return (StringBuffer('BookingDb(')
..write('id: $id, ')
- ..write('status: $status, ')
..write('json: $json')
..write(')'))
.toString();
}
@override
- int get hashCode => Object.hash(id, status, json);
+ int get hashCode => Object.hash(id, json);
@override
bool operator ==(Object other) =>
identical(this, other) ||
- (other is BookingDb &&
- other.id == this.id &&
- other.status == this.status &&
- other.json == this.json);
+ (other is BookingDb && other.id == this.id && other.json == this.json);
}
class BookingEntityCompanion extends UpdateCompanion<BookingDb> {
final Value<String> id;
- final Value<String> status;
final Value<String> json;
final Value<int> rowid;
const BookingEntityCompanion({
this.id = const Value.absent(),
- this.status = const Value.absent(),
this.json = const Value.absent(),
this.rowid = const Value.absent(),
});
BookingEntityCompanion.insert({
required String id,
- required String status,
required String json,
this.rowid = const Value.absent(),
}) : id = Value(id),
- status = Value(status),
json = Value(json);
static Insertable<BookingDb> custom({
Expression<String>? id,
- Expression<String>? status,
Expression<String>? json,
Expression<int>? rowid,
}) {
return RawValuesInsertable({
if (id != null) 'id': id,
- if (status != null) 'status': status,
if (json != null) 'json': json,
if (rowid != null) 'rowid': rowid,
});
}
BookingEntityCompanion copyWith(
- {Value<String>? id,
- Value<String>? status,
- Value<String>? json,
- Value<int>? rowid}) {
+ {Value<String>? id, Value<String>? json, Value<int>? rowid}) {
return BookingEntityCompanion(
id: id ?? this.id,
- status: status ?? this.status,
json: json ?? this.json,
rowid: rowid ?? this.rowid,
);
@@ -206,9 +172,6 @@ class BookingEntityCompanion extends UpdateCompanion<BookingDb> {
if (id.present) {
map['id'] = Variable<String>(id.value);
}
- if (status.present) {
- map['status'] = Variable<String>(status.value);
- }
if (json.present) {
map['json'] = Variable<String>(json.value);
}
@@ -222,7 +185,6 @@ class BookingEntityCompanion extends UpdateCompanion<BookingDb> {
String toString() {
return (StringBuffer('BookingEntityCompanion(')
..write('id: $id, ')
- ..write('status: $status, ')
..write('json: $json, ')
..write('rowid: $rowid')
..write(')'))
@@ -640,14 +602,12 @@ abstract class _$ComwellDatabase extends GeneratedDatabase {
typedef $$BookingEntityTableCreateCompanionBuilder = BookingEntityCompanion
Function({
required String id,
- required String status,
required String json,
Value<int> rowid,
});
typedef $$BookingEntityTableUpdateCompanionBuilder = BookingEntityCompanion
Function({
Value<String> id,
- Value<String> status,
Value<String> json,
Value<int> rowid,
});
@@ -664,9 +624,6 @@ class $$BookingEntityTableFilterComposer
ColumnFilters<String> get id => $composableBuilder(
column: $table.id, builder: (column) => ColumnFilters(column));
- ColumnFilters<String> get status => $composableBuilder(
- column: $table.status, builder: (column) => ColumnFilters(column));
-
ColumnFilters<String> get json => $composableBuilder(
column: $table.json, builder: (column) => ColumnFilters(column));
}
@@ -683,9 +640,6 @@ class $$BookingEntityTableOrderingComposer
ColumnOrderings<String> get id => $composableBuilder(
column: $table.id, builder: (column) => ColumnOrderings(column));
- ColumnOrderings<String> get status => $composableBuilder(
- column: $table.status, builder: (column) => ColumnOrderings(column));
-
ColumnOrderings<String> get json => $composableBuilder(
column: $table.json, builder: (column) => ColumnOrderings(column));
}
@@ -702,9 +656,6 @@ class $$BookingEntityTableAnnotationComposer
GeneratedColumn<String> get id =>
$composableBuilder(column: $table.id, builder: (column) => column);
- GeneratedColumn<String> get status =>
- $composableBuilder(column: $table.status, builder: (column) => column);
-
GeneratedColumn<String> get json =>
$composableBuilder(column: $table.json, builder: (column) => column);
}
@@ -737,25 +688,21 @@ class $$BookingEntityTableTableManager extends RootTableManager<
$$BookingEntityTableAnnotationComposer($db: db, $table: table),
updateCompanionCallback: ({
Value<String> id = const Value.absent(),
- Value<String> status = const Value.absent(),
Value<String> json = const Value.absent(),
Value<int> rowid = const Value.absent(),
}) =>
BookingEntityCompanion(
id: id,
- status: status,
json: json,
rowid: rowid,
),
createCompanionCallback: ({
required String id,
- required String status,
required String json,
Value<int> rowid = const Value.absent(),
}) =>
BookingEntityCompanion.insert(
id: id,
- status: status,
json: json,
rowid: rowid,
),
diff --git a/comwell_key_app/lib/.generated/overview/models/payment_details.g.dart b/comwell_key_app/lib/.generated/overview/models/payment_details.g.dart
index aa6f2456..de5fed15 100644
--- a/comwell_key_app/lib/.generated/overview/models/payment_details.g.dart
+++ b/comwell_key_app/lib/.generated/overview/models/payment_details.g.dart
@@ -28,5 +28,6 @@ Map<String, dynamic> _$PaymentDetailsToJson(PaymentDetails instance) =>
const _$CardTypeEnumMap = {
CardType.visa: 'visa',
CardType.mastercard: 'mastercard',
+ CardType.amexgooglepay: 'amexgooglepay',
CardType.maestro: 'maestro',
};
diff --git a/comwell_key_app/lib/.generated/services/adyen/payment_method.g.dart b/comwell_key_app/lib/.generated/services/adyen/payment_method.g.dart
index a15cb52b..552af401 100644
--- a/comwell_key_app/lib/.generated/services/adyen/payment_method.g.dart
+++ b/comwell_key_app/lib/.generated/services/adyen/payment_method.g.dart
@@ -7,18 +7,18 @@ part of '../../../services/adyen/payment_method.dart';
// **************************************************************************
PaymentMethod _$PaymentMethodFromJson(Map json) => PaymentMethod(
- brand: json['brand'] as String,
- cvc: json['cvc'] as String,
- encryptedCard: json['encryptedCard'] as String,
- encryptedCardNumber: json['encryptedCardNumber'] as String,
- encryptedExpiryMonth: json['encryptedExpiryMonth'] as String,
- encryptedExpiryYear: json['encryptedExpiryYear'] as String,
- encryptedSecurityCode: json['encryptedSecurityCode'] as String,
- expiryMonth: json['expiryMonth'] as String,
- expiryYear: json['expiryYear'] as String,
- holderName: json['holderName'] as String,
- number: json['number'] as String,
- type: json['type'] as String,
+ brand: json['brand'] as String?,
+ cvc: json['cvc'] as String?,
+ encryptedCard: json['encryptedCard'] as String?,
+ encryptedCardNumber: json['encryptedCardNumber'] as String?,
+ encryptedExpiryMonth: json['encryptedExpiryMonth'] as String?,
+ encryptedExpiryYear: json['encryptedExpiryYear'] as String?,
+ encryptedSecurityCode: json['encryptedSecurityCode'] as String?,
+ expiryMonth: json['expiryMonth'] as String?,
+ expiryYear: json['expiryYear'] as String?,
+ holderName: json['holderName'] as String?,
+ number: json['number'] as String?,
+ type: json['type'] as String?,
);
Map<String, dynamic> _$PaymentMethodToJson(PaymentMethod instance) =>
diff --git a/comwell_key_app/lib/.generated/services/models/bookings_dto.g.dart b/comwell_key_app/lib/.generated/services/models/bookings_dto.g.dart
index 68206099..7ab36fc9 100644
--- a/comwell_key_app/lib/.generated/services/models/bookings_dto.g.dart
+++ b/comwell_key_app/lib/.generated/services/models/bookings_dto.g.dart
@@ -7,17 +7,11 @@ part of '../../../services/models/bookings_dto.dart';
// **************************************************************************
BookingsDTO _$BookingsDTOFromJson(Map json) => BookingsDTO(
- current: (json['current'] as List<dynamic>)
- .map((e) => BookingDTO.fromJson(Map<String, dynamic>.from(e as Map))),
- past: (json['past'] as List<dynamic>)
- .map((e) => BookingDTO.fromJson(Map<String, dynamic>.from(e as Map))),
- cancelled: (json['cancelled'] as List<dynamic>)
+ bookings: (json['bookings'] as List<dynamic>)
.map((e) => BookingDTO.fromJson(Map<String, dynamic>.from(e as Map))),
);
Map<String, dynamic> _$BookingsDTOToJson(BookingsDTO instance) =>
<String, dynamic>{
- 'current': instance.current.map((e) => e.toJson()).toList(),
- 'past': instance.past.map((e) => e.toJson()).toList(),
- 'cancelled': instance.cancelled.map((e) => e.toJson()).toList(),
+ 'bookings': instance.bookings.map((e) => e.toJson()).toList(),
};
diff --git a/comwell_key_app/lib/booking_details/booking_details_repository.dart b/comwell_key_app/lib/booking_details/booking_details_repository.dart
index e6fceb55..530e8f2c 100644
--- a/comwell_key_app/lib/booking_details/booking_details_repository.dart
+++ b/comwell_key_app/lib/booking_details/booking_details_repository.dart
@@ -1,7 +1,4 @@
-import 'package:comwell_key_app/database/comwell_db.dart';
-import 'package:comwell_key_app/overview/models/booking.dart';
import 'package:comwell_key_app/services/api.dart';
-import 'package:comwell_key_app/services/mappers/booking_mapper.dart';
import 'package:comwell_key_app/utils/locator.dart';
import 'package:comwell_key_app/utils/secure_storage.dart';
@@ -16,11 +13,4 @@ class BookingDetailsRepository {
return await secureStorage.read(key);
}
- Future<Booking> updateBooking(
- Booking booking,
- ) async {
- //await api.updateBooking(booking);
- await locator<ComwellDatabase>().bookingsDao.insert([booking.toDTO()], booking.bookingStatus);
- return booking;
- }
}
diff --git a/comwell_key_app/lib/check_in/check_in_repository.dart b/comwell_key_app/lib/check_in/check_in_repository.dart
index 2140f257..ada4e167 100644
--- a/comwell_key_app/lib/check_in/check_in_repository.dart
+++ b/comwell_key_app/lib/check_in/check_in_repository.dart
@@ -58,7 +58,6 @@ class CheckInRepository {
roomNumber: "1234",
startDate: DateTime.now(),
endDate: DateTime.now(),
- bookingStatus: BookingStatus.current,
reservationStatus: ReservationStatus.newreservation,
image: "",
hotelName: "hotelName",
diff --git a/comwell_key_app/lib/database/daos/bookings_dao.dart b/comwell_key_app/lib/database/daos/bookings_dao.dart
index 2ac3e16e..15fbf931 100644
--- a/comwell_key_app/lib/database/daos/bookings_dao.dart
+++ b/comwell_key_app/lib/database/daos/bookings_dao.dart
@@ -25,46 +25,24 @@ class BookingsDao extends DatabaseAccessor<ComwellDatabase>
.getSingle();
}
- Future<void> insert(Iterable<BookingDTO> bookings, BookingStatus status) async {
+ Future<void> insert(Iterable<BookingDTO> bookings) async {
final entities = bookings.map((booking) {
final json = jsonEncode(booking.toJson());
return BookingEntityCompanion.insert(
- id: booking.confirmationNumber, json: json, status: status.toString());
+ id: booking.confirmationNumber, json: json);
});
await batch((batch) => batch.insertAll(bookingEntity, entities,
mode: InsertMode.insertOrReplace));
}
Future<void> insertBookings(BookingsDTO bookings) async {
- await insert(bookings.current, BookingStatus.current);
- await insert(bookings.past, BookingStatus.past);
- await insert(bookings.cancelled, BookingStatus.cancelled);
+ await insert(bookings.bookings);
}
- Stream<Iterable<BookingDTO>> watchBookingsByStatus(BookingStatus status) {
- return (select(bookingEntity)
- ..where((entity) => entity.status.equals(status.toString())))
- .watch()
- .map((entities) {
- return entities.map((entity) {
- final json = jsonDecode(entity.json) as Json;
- return BookingDTO.fromJson(json);
- });
- });
- }
Stream<BookingsDTO> watchBookings() {
return (select(bookingEntity)).watch().map((entities) {
- final current = entities
- .where((ent) => ent.status == BookingStatus.current.toString());
- final past =
- entities.where((ent) => ent.status == BookingStatus.past.toString());
- final cancelled = entities
- .where((ent) => ent.status == BookingStatus.cancelled.toString());
- return BookingsDTO(
- current: _entityToBooking(current),
- past: _entityToBooking(past),
- cancelled: _entityToBooking(cancelled));
+ return BookingsDTO(bookings: _entityToBooking(entities));
});
}
diff --git a/comwell_key_app/lib/database/tables/booking_table.dart b/comwell_key_app/lib/database/tables/booking_table.dart
index a11d178a..bd135d13 100644
--- a/comwell_key_app/lib/database/tables/booking_table.dart
+++ b/comwell_key_app/lib/database/tables/booking_table.dart
@@ -4,8 +4,6 @@ import 'package:drift/drift.dart';
class BookingEntity extends Table {
TextColumn get id => text().unique()();
- TextColumn get status => text()();
-
TextColumn get json => text()();
}
diff --git a/comwell_key_app/lib/overview/cubit/overview_cubit.dart b/comwell_key_app/lib/overview/cubit/overview_cubit.dart
index 13bfebe1..b863bece 100644
--- a/comwell_key_app/lib/overview/cubit/overview_cubit.dart
+++ b/comwell_key_app/lib/overview/cubit/overview_cubit.dart
@@ -28,36 +28,15 @@ class OverviewCubit extends Cubit<OverviewState> {
Future<void> addBooking(Booking newBooking) async {
if (state is OverviewLoaded) {
final currentState = state as OverviewLoaded;
- final updatedCurrent = List<Booking>.from(currentState.bookings.current);
- final updatedPast = List<Booking>.from(currentState.bookings.past);
- final updatedCancelled =
- List<Booking>.from(currentState.bookings.cancelled);
+ final updatedBookings = List<Booking>.from(currentState.bookings.bookings);
+ updatedBookings.add(newBooking);
- switch (newBooking.bookingStatus) {
- case BookingStatus.current:
- updatedCurrent.add(newBooking);
- break;
- case BookingStatus.past:
- updatedPast.add(newBooking);
- break;
- case BookingStatus.cancelled:
- updatedCancelled.add(newBooking);
- break;
- }
- final updatedBookings = Bookings(
- current: updatedCurrent,
- past: updatedPast,
- cancelled: updatedCancelled,
- );
+ final updatedBookingsObject = Bookings(bookings: updatedBookings);
- emit(OverviewLoaded(bookings: updatedBookings));
+ emit(OverviewLoaded(bookings: updatedBookingsObject));
} else {
- final bookings = Bookings(
- current: [newBooking],
- past: const [],
- cancelled: const [],
- );
+ final bookings = Bookings(bookings: [newBooking]);
emit(OverviewLoaded(bookings: bookings));
}
}
@@ -73,8 +52,7 @@ class OverviewCubit extends Cubit<OverviewState> {
final currentState = state as OverviewLoaded;
emit(OverviewNoBookingFound(bookings: currentState.bookings));
} else {
- emit(const OverviewNoBookingFound(
- bookings: Bookings(current: [], past: [], cancelled: [])));
+ emit(const OverviewNoBookingFound(bookings: Bookings(bookings: [])));
}
} catch (e) {
emit(OverviewError(error: e.toString()));
diff --git a/comwell_key_app/lib/overview/models/booking.dart b/comwell_key_app/lib/overview/models/booking.dart
index ef5a1d38..e13554f6 100644
--- a/comwell_key_app/lib/overview/models/booking.dart
+++ b/comwell_key_app/lib/overview/models/booking.dart
@@ -11,7 +11,6 @@ class Booking extends Equatable {
final String roomNumber;
final DateTime startDate;
final DateTime endDate;
- final BookingStatus bookingStatus;
final ReservationStatus reservationStatus;
final String image;
final String hotelName;
@@ -35,7 +34,6 @@ class Booking extends Equatable {
required this.roomNumber,
required this.startDate,
required this.endDate,
- required this.bookingStatus,
required this.reservationStatus,
required this.image,
required this.hotelName,
@@ -68,7 +66,7 @@ class Booking extends Equatable {
@override
String toString() {
- return "Booking(id: $id, confirmationId: $confirmationId, roomNumber: $roomNumber, startDate: $startDate, endDate: $endDate, status: $bookingStatus, reservationStatus: $reservationStatus, image: $image, hotelName: $hotelName, hotelCode: $hotelCode, roomType: $roomType, adults: $adults, children: $children, booker: $booker, bookingDate: $bookingDate, digitalCard: $digitalCard, guests: $guests, addOnItems: $addOnItems, balance: $balance, totalCharge: $totalCharge, maskedCardNumber: $maskedCardNumber)";
+ return "Booking(id: $id, confirmationId: $confirmationId, roomNumber: $roomNumber, startDate: $startDate, endDate: $endDate, reservationStatus: $reservationStatus, image: $image, hotelName: $hotelName, hotelCode: $hotelCode, roomType: $roomType, adults: $adults, children: $children, booker: $booker, bookingDate: $bookingDate, digitalCard: $digitalCard, guests: $guests, addOnItems: $addOnItems, balance: $balance, totalCharge: $totalCharge, maskedCardNumber: $maskedCardNumber)";
}
@override
@@ -77,7 +75,6 @@ class Booking extends Equatable {
roomNumber,
startDate,
endDate,
- bookingStatus,
image,
hotelName,
roomType,
@@ -101,7 +98,6 @@ class Booking extends Equatable {
String? roomNumber,
DateTime? startDate,
DateTime? endDate,
- BookingStatus? bookingStatus,
ReservationStatus? reservationStatus,
String? image,
String? hotelName,
@@ -123,7 +119,6 @@ class Booking extends Equatable {
roomNumber: roomNumber ?? this.roomNumber,
startDate: startDate ?? this.startDate,
endDate: endDate ?? this.endDate,
- bookingStatus: bookingStatus ?? this.bookingStatus,
reservationStatus: reservationStatus ?? this.reservationStatus,
image: image ?? this.image,
hotelName: hotelName ?? this.hotelName,
@@ -171,13 +166,3 @@ enum ReservationStatus {
}
}
-enum BookingStatus {
- current,
- past,
- cancelled;
-
- static BookingStatus fromString(String value) {
- return BookingStatus.values
- .firstWhere((status) => status.name == value.toLowerCase());
- }
-}
diff --git a/comwell_key_app/lib/overview/models/bookings.dart b/comwell_key_app/lib/overview/models/bookings.dart
index a37b05aa..7ef09ec0 100644
--- a/comwell_key_app/lib/overview/models/bookings.dart
+++ b/comwell_key_app/lib/overview/models/bookings.dart
@@ -2,16 +2,12 @@ import 'package:comwell_key_app/overview/models/booking.dart';
import 'package:equatable/equatable.dart';
class Bookings extends Equatable {
- final Iterable<Booking> current;
- final Iterable<Booking> past;
- final Iterable<Booking> cancelled;
+ final Iterable<Booking> bookings;
const Bookings({
- required this.current,
- required this.past,
- required this.cancelled,
+ required this.bookings,
});
@override
- List<Object> get props => [current, past, cancelled];
+ List<Object> get props => [bookings];
}
\ No newline at end of file
diff --git a/comwell_key_app/lib/overview/overview_page.dart b/comwell_key_app/lib/overview/overview_page.dart
index 22281e54..0269354d 100644
--- a/comwell_key_app/lib/overview/overview_page.dart
+++ b/comwell_key_app/lib/overview/overview_page.dart
@@ -99,16 +99,14 @@ class OverviewTabViewState extends State<OverviewPage>
] else if (state is OverviewError) ...[
OverviewTabView(
tabController: _tabController,
- bookings:
- const Bookings(cancelled: [], current: [], past: [])),
+ bookings: const Bookings(bookings: [])),
] else if (state is OverviewNoBookingFound) ...[
OverviewTabView(
tabController: _tabController, bookings: state.bookings),
] else ...[
OverviewTabView(
tabController: _tabController,
- bookings:
- const Bookings(cancelled: [], current: [], past: [])),
+ bookings: const Bookings(bookings: [])),
],
Divider(
color: theme.colorScheme.outline,
@@ -218,19 +216,19 @@ class OverviewTabView extends StatelessWidget {
controller: _tabController,
children: [
CurrentBookingsTabView(
- bookings: bookings.current,
+ bookings: bookings.bookings,
bookingsTitle: 'no_current_bookings'.tr(),
bookingsSubtitle: 'no_current_bookings_subtitle'.tr(),
bookingsImage:
'assets/images/no_current_bookings_background.jpeg'),
BookingsTabView(
- bookings: bookings.past,
+ bookings: bookings.bookings,
bookingsTitle: 'no_past_bookings_title'.tr(),
bookingsSubtitle: 'no_past_bookings_subtitle'.tr(),
bookingsIcon: 'assets/icons/account.svg',
isCancelled: false),
BookingsTabView(
- bookings: bookings.cancelled,
+ bookings: bookings.bookings,
bookingsTitle: 'no_cancelled_booking_title'.tr(),
bookingsSubtitle: 'no_cancelled_booking_subtitle'.tr(),
bookingsIcon: 'assets/icons/thumbs-up.svg',
diff --git a/comwell_key_app/lib/overview/past_cancelled_booking_detail_page.dart b/comwell_key_app/lib/overview/past_cancelled_booking_detail_page.dart
index 526877d5..8f12574e 100644
--- a/comwell_key_app/lib/overview/past_cancelled_booking_detail_page.dart
+++ b/comwell_key_app/lib/overview/past_cancelled_booking_detail_page.dart
@@ -33,8 +33,8 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 0),
title: Text('booking_reference'.tr(),
- style: theme.textTheme.bodySmall
- ?.copyWith(color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black.withAlpha((0.65 * 255).toInt()))),
subtitle: Text(booking.id, style: theme.textTheme.headlineSmall),
),
const Divider(color: colorDivider),
@@ -50,7 +50,8 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
textAlign: TextAlign.start,
'check_in'.tr(),
style: theme.textTheme.bodySmall?.copyWith(
- color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ color: Colors.black
+ .withAlpha((0.65 * 255).toInt()))),
Text(
DateFormat('d. MMM yyyy')
.format(booking.startDate)
@@ -66,7 +67,8 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
children: [
Text('check_out'.tr(),
style: theme.textTheme.bodySmall?.copyWith(
- color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ color: Colors.black
+ .withAlpha((0.65 * 255).toInt()))),
Text(
DateFormat('d. MMM yyyy')
.format(booking.endDate)
@@ -80,8 +82,8 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 0),
title: Text('booking_details'.tr(),
- style: theme.textTheme.bodySmall
- ?.copyWith(color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black.withAlpha((0.65 * 255).toInt()))),
subtitle: Text(
booking.roomType,
style: theme.textTheme.headlineSmall,
@@ -91,8 +93,8 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 0),
title: Text('number_of_guests'.tr(),
- style: theme.textTheme.bodySmall
- ?.copyWith(color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black.withAlpha((0.65 * 255).toInt()))),
subtitle: Text(
"${booking.adults} ${booking.adults > 1 ? 'adults'.tr() : 'adult'.tr()}${booking.children >= 1 ? ', ${booking.children} ${booking.children > 1 ? 'children'.tr() : 'child'.tr()}' : ''}",
style: theme.textTheme.headlineSmall),
@@ -101,45 +103,42 @@ class PastCancelledBookingDetailPage extends StatelessWidget {
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 0),
title: Text('booker'.tr(),
- style: theme.textTheme.bodySmall
- ?.copyWith(color: Colors.black.withAlpha((0.65 * 255).toInt()))),
- subtitle:
- Text(booking.booker.name, style: theme.textTheme.headlineSmall),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ subtitle: Text(booking.booker.name,
+ style: theme.textTheme.headlineSmall),
),
const Divider(color: colorDivider),
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 0),
title: Text('booking_date'.tr(),
- style: theme.textTheme.bodySmall
- ?.copyWith(color: Colors.black.withAlpha((0.65 * 255).toInt()))),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black.withAlpha((0.65 * 255).toInt()))),
subtitle: Text(
DateFormat('d. MMM yyyy')
.format(booking.bookingDate)
.toString(),
style: theme.textTheme.headlineSmall)),
const Divider(color: colorDivider),
- booking.bookingStatus != BookingStatus.cancelled
- ? ListTile(
- contentPadding: const EdgeInsets.symmetric(horizontal: 0),
- title: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text('bill'.tr(),
- style: theme.textTheme.bodySmall?.copyWith(
- color: Colors.black.withAlpha((0.65 * 255).toInt()))),
- Text('get_bill'.tr(),
- style: theme.textTheme.headlineSmall),
- ]),
- SvgPicture.asset('assets/icons/download_bill.svg'),
- ],
- ))
- : const SizedBox(),
- booking.bookingStatus != BookingStatus.cancelled
- ? const Divider(color: colorDivider)
- : const SizedBox(),
+ ListTile(
+ contentPadding: const EdgeInsets.symmetric(horizontal: 0),
+ title: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text('bill'.tr(),
+ style: theme.textTheme.bodySmall?.copyWith(
+ color: Colors.black
+ .withAlpha((0.65 * 255).toInt()))),
+ Text('get_bill'.tr(),
+ style: theme.textTheme.headlineSmall),
+ ]),
+ SvgPicture.asset('assets/icons/download_bill.svg'),
+ ],
+ )),
+ const Divider(color: colorDivider)
],
),
),
diff --git a/comwell_key_app/lib/overview/repository/overview_repository.dart b/comwell_key_app/lib/overview/repository/overview_repository.dart
index a6820a9e..6eeeb2da 100644
--- a/comwell_key_app/lib/overview/repository/overview_repository.dart
+++ b/comwell_key_app/lib/overview/repository/overview_repository.dart
@@ -24,9 +24,9 @@ class OverviewRepository {
final user = await profileRepository.fetchProfileSettings();
final rooms = await chooseShareRoomRepository.getMockRooms();
- await locator<ComwellDatabase>().bookingsDao.insertBookings(response);
+ await locator<ComwellDatabase>().bookingsDao.insert(response);
- return response.toBookings(user.id, rooms);
+ return Bookings(bookings: response.map((e) => e.toBooking(user.id, rooms)));
} catch (e) {
throw Exception('Failed to fetch bookings $e');
}
@@ -59,7 +59,7 @@ class OverviewRepository {
BookingAddonItem("addOnItem2", "addOnItem2", 1, 200),
BookingAddonItem("addOnItem3", "addOnItem3", 1, 300)
]);
- return dto.toBooking(user.id, BookingStatus.current, []);
+ return dto.toBooking(user.id, []);
}
final mockBookings = [1, 2, 3].map((i) => Booking(
@@ -68,7 +68,6 @@ class OverviewRepository {
roomNumber: "roomNumber$i",
startDate: DateTime.now(),
endDate: DateTime.now(),
- bookingStatus: BookingStatus.current,
reservationStatus: ReservationStatus.newreservation,
image: "assets/images/no_current_bookings_background.jpeg",
hotelName: "hotelName$i",
diff --git a/comwell_key_app/lib/profile/profile_repository.dart b/comwell_key_app/lib/profile/profile_repository.dart
index f1e42197..18634be0 100644
--- a/comwell_key_app/lib/profile/profile_repository.dart
+++ b/comwell_key_app/lib/profile/profile_repository.dart
@@ -51,8 +51,8 @@ class ProfileRepository {
user = await fetchProfileSettings();
final response = await api.getBookingDetails(bookingId);
await locator<ComwellDatabase>().bookingsDao.insertBookings(
- BookingsDTO(current: [response!], past: [], cancelled: []));
- final booking = response.toBooking(user.id, BookingStatus.current, []);
+ BookingsDTO(bookings: [response!]));
+ final booking = response.toBooking(user.id, []);
return booking;
}
diff --git a/comwell_key_app/lib/services/api.dart b/comwell_key_app/lib/services/api.dart
index 3a44c63b..62ade0ee 100644
--- a/comwell_key_app/lib/services/api.dart
+++ b/comwell_key_app/lib/services/api.dart
@@ -43,9 +43,14 @@ class Api {
return await dio.post(ApiEndpoints.logout);
}
- Future<BookingsDTO> fetchAllBookingsForUser() async {
- final response = await dio.get<Json>(ApiEndpoints.getCurrentBookings);
- return BookingsDTO.fromJson(response.data!);
+ Future<List<BookingDTO>> fetchAllBookingsForUser() async {
+ final body = {
+ "skip": 0,
+ "limit": 100,
+ };
+ final json = jsonEncode(body);
+ final response = await dio.get<List<dynamic>>(ApiEndpoints.getCurrentBookings, data: json);
+ return response.data!.map((e) => BookingDTO.fromJson(e as Json)).toList();
}
Future<StoredPaymentsResponse?> getPaymentMethods() async {
diff --git a/comwell_key_app/lib/services/mappers/booking_mapper.dart b/comwell_key_app/lib/services/mappers/booking_mapper.dart
index efbba350..4cb757ba 100644
--- a/comwell_key_app/lib/services/mappers/booking_mapper.dart
+++ b/comwell_key_app/lib/services/mappers/booking_mapper.dart
@@ -7,7 +7,7 @@ import 'package:comwell_key_app/services/mappers/room_mapper.dart';
//TODO: Fix actual image
extension BookingDTOMapper on BookingDTO {
- Booking toBooking(int userId, BookingStatus status, List<Room> rooms) {
+ Booking toBooking(int userId, List<Room> rooms) {
final startDate = DateTime.parse(dayIn);
final endDate = DateTime.parse(dayOut!);
return Booking(
@@ -16,7 +16,6 @@ extension BookingDTOMapper on BookingDTO {
roomNumber: roomNumber ?? "",
startDate: startDate,
endDate: endDate,
- bookingStatus: status,
reservationStatus: ReservationStatus.fromString(this.status),
image: "assets/images/no_current_bookings_background.jpeg",
hotelName: "Hotel $hotelCode",
@@ -69,7 +68,6 @@ extension BookingWithRoomsMapper on Booking {
roomNumber: roomNumber,
startDate: startDate,
endDate: endDate,
- bookingStatus: bookingStatus,
reservationStatus: reservationStatus,
image: image,
hotelName: hotelName,
@@ -94,8 +92,8 @@ extension BookingWithRoomsMapper on Booking {
}
extension ListBookingMapper on Iterable<BookingDTO> {
- Iterable<Booking> toBookings(int userId, BookingStatus status, List<Room> rooms) =>
- map((dto) => dto.toBooking(userId, status, rooms));
+ Iterable<Booking> toBookings(int userId, List<Room> rooms) =>
+ map((dto) => dto.toBooking(userId, rooms));
}
extension RoomTypeMapper on Booking {
diff --git a/comwell_key_app/lib/services/mappers/bookings_mapper.dart b/comwell_key_app/lib/services/mappers/bookings_mapper.dart
index 877f6890..ae0055a9 100644
--- a/comwell_key_app/lib/services/mappers/bookings_mapper.dart
+++ b/comwell_key_app/lib/services/mappers/bookings_mapper.dart
@@ -1,4 +1,3 @@
-import 'package:comwell_key_app/overview/models/booking.dart';
import 'package:comwell_key_app/overview/models/bookings.dart';
import 'package:comwell_key_app/overview/models/room.dart';
import 'package:comwell_key_app/services/mappers/booking_mapper.dart';
@@ -7,9 +6,8 @@ import 'package:comwell_key_app/services/models/bookings_dto.dart';
extension BookingsMapper on BookingsDTO {
Bookings toBookings(int userId, List<Room> rooms) {
return Bookings(
- current: current.toBookings(userId, BookingStatus.current, rooms),
- past: past.toBookings(userId, BookingStatus.past, rooms),
- cancelled: cancelled.toBookings(userId, BookingStatus.cancelled, rooms),
+ bookings:
+ bookings.map((booking) => booking.toBooking(userId, rooms)).toList(),
);
}
}
diff --git a/comwell_key_app/lib/services/models/bookings_dto.dart b/comwell_key_app/lib/services/models/bookings_dto.dart
index 8bcc0e0e..24eb8797 100644
--- a/comwell_key_app/lib/services/models/bookings_dto.dart
+++ b/comwell_key_app/lib/services/models/bookings_dto.dart
@@ -7,17 +7,16 @@ part '../../.generated/services/models/bookings_dto.g.dart';
@JsonSerializable()
class BookingsDTO {
- final Iterable<BookingDTO> current;
- final Iterable<BookingDTO> past;
- final Iterable<BookingDTO> cancelled;
+ final Iterable<BookingDTO> bookings;
BookingsDTO({
- required this.current,
- required this.past,
- required this.cancelled,
+ required this.bookings,
});
Json toJson() => _$BookingsDTOToJson(this);
- factory BookingsDTO.fromJson(Json json) => _$BookingsDTOFromJson(json);
+ factory BookingsDTO.fromJson(Json json) {
+ print("BookingsDTO fromJson: $json");
+ return _$BookingsDTOFromJson(json);
+ }
}