mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-25 21:09:41 +00:00
update bookable space logic
This commit is contained in:
@ -40,7 +40,24 @@ class BookableSpaceConfig {
|
|||||||
|
|
||||||
bool get isValid =>
|
bool get isValid =>
|
||||||
bookableDays.isNotEmpty &&
|
bookableDays.isNotEmpty &&
|
||||||
cost > 0 &&
|
cost >= 0 &&
|
||||||
bookingStartTime != null &&
|
bookingStartTime != null &&
|
||||||
bookingEndTime != null;
|
bookingEndTime != null;
|
||||||
|
|
||||||
|
BookableSpaceConfig copyWith({
|
||||||
|
List<String>? bookableDays,
|
||||||
|
TimeOfDay? bookingStartTime,
|
||||||
|
TimeOfDay? bookingEndTime,
|
||||||
|
int? cost,
|
||||||
|
bool? availability,
|
||||||
|
}) {
|
||||||
|
return BookableSpaceConfig(
|
||||||
|
configUuid: configUuid,
|
||||||
|
availability: availability ?? this.availability,
|
||||||
|
bookableDays: bookableDays ?? this.bookableDays,
|
||||||
|
cost: cost ?? this.cost,
|
||||||
|
bookingEndTime: bookingEndTime ?? this.bookingEndTime,
|
||||||
|
bookingStartTime: bookingStartTime ?? this.bookingStartTime,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,4 +41,18 @@ class BookableSpacemodel {
|
|||||||
spaceVirtualAddress.isNotEmpty &&
|
spaceVirtualAddress.isNotEmpty &&
|
||||||
spaceConfig != null &&
|
spaceConfig != null &&
|
||||||
spaceConfig!.isValid;
|
spaceConfig!.isValid;
|
||||||
|
|
||||||
|
BookableSpacemodel copyWith({
|
||||||
|
String? spaceUuid,
|
||||||
|
String? spaceName,
|
||||||
|
BookableSpaceConfig? spaceConfig,
|
||||||
|
String? spaceVirtualAddress,
|
||||||
|
}) {
|
||||||
|
return BookableSpacemodel(
|
||||||
|
spaceUuid: spaceUuid ?? this.spaceUuid,
|
||||||
|
spaceName: spaceName ?? this.spaceName,
|
||||||
|
spaceConfig: spaceConfig ?? this.spaceConfig,
|
||||||
|
spaceVirtualAddress: spaceVirtualAddress ?? this.spaceVirtualAddress,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
class UpdateBookableSpaceParam {
|
||||||
|
String spaceUuid;
|
||||||
|
|
||||||
|
List<String>? bookableDays;
|
||||||
|
String? bookingStartTime;
|
||||||
|
String? bookingEndTime;
|
||||||
|
int? cost;
|
||||||
|
bool? availability;
|
||||||
|
UpdateBookableSpaceParam({
|
||||||
|
required this.spaceUuid,
|
||||||
|
this.bookingStartTime,
|
||||||
|
this.bookingEndTime,
|
||||||
|
this.bookableDays,
|
||||||
|
this.availability,
|
||||||
|
this.cost,
|
||||||
|
});
|
||||||
|
Map<String, dynamic> toJson() => {
|
||||||
|
if (bookableDays != null) 'daysAvailable': bookableDays,
|
||||||
|
if (bookingStartTime != null) 'startTime': bookingStartTime,
|
||||||
|
if (bookingEndTime != null) 'endTime': bookingEndTime,
|
||||||
|
if (cost != null) 'points': cost,
|
||||||
|
if (availability != null) 'active': availability,
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/domain/models/bookable_space_config.dart';
|
||||||
|
import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/domain/params/update_bookable_space_param.dart';
|
||||||
|
|
||||||
|
abstract class UpdateBookableSpaceService {
|
||||||
|
Future<BookableSpaceConfig> update(UpdateBookableSpaceParam updateParam);
|
||||||
|
}
|
Reference in New Issue
Block a user