clean the code for save and next buttons and enhance UI

This commit is contained in:
Rafeek-Khoudare
2025-07-09 15:11:27 +03:00
parent 42c410d982
commit b128618bfd
23 changed files with 793 additions and 303 deletions

View File

@ -3,30 +3,28 @@ import 'package:flutter/material.dart';
class BookableSpaceConfig {
String configUuid;
List<String> bookableDays;
TimeOfDay bookingStartTime;
TimeOfDay bookingEndTime;
TimeOfDay? bookingStartTime;
TimeOfDay? bookingEndTime;
int cost;
bool availability;
BookableSpaceConfig({
required this.configUuid,
required this.availability,
required this.bookableDays,
required this.bookingEndTime,
required this.bookingStartTime,
this.bookingEndTime,
this.bookingStartTime,
required this.cost,
});
factory BookableSpaceConfig.zero() => BookableSpaceConfig(
configUuid: '',
bookableDays: [],
availability: false,
bookingEndTime: TimeOfDay.now(),
bookingStartTime: TimeOfDay.now(),
cost: -1,
);
factory BookableSpaceConfig.fromJson(Map<String, dynamic> json) =>
BookableSpaceConfig(
configUuid: json['uuid'] as String,
bookableDays: json['daysAvailable'] as List<String>,
bookableDays: (json['daysAvailable'] as List).cast<String>(),
availability: (json['active'] as bool?) ?? false,
bookingEndTime: parseTimeOfDay(json['startTime'] as String),
bookingStartTime: parseTimeOfDay(json['endTime'] as String),
@ -41,5 +39,8 @@ class BookableSpaceConfig {
}
bool get isValid =>
configUuid.isNotEmpty && bookableDays.isNotEmpty && cost > 0;
bookableDays.isNotEmpty &&
cost > 0 &&
bookingStartTime != null &&
bookingEndTime != null;
}

View File

@ -3,28 +3,29 @@ import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/domai
class BookableSpacemodel {
String spaceUuid;
String spaceName;
BookableSpaceConfig spaceConfig;
BookableSpaceConfig? spaceConfig;
String spaceVirtualAddress;
BookableSpacemodel({
required this.spaceUuid,
required this.spaceName,
required this.spaceConfig,
this.spaceConfig,
required this.spaceVirtualAddress,
});
factory BookableSpacemodel.zero() => BookableSpacemodel(
spaceUuid: '',
spaceName: '',
spaceConfig: BookableSpaceConfig.zero(),
spaceVirtualAddress: '',
);
factory BookableSpacemodel.fromJson(Map<String, dynamic> json) =>
BookableSpacemodel(
spaceUuid: json['uuid'] as String,
spaceName: json['spaceName'] as String,
spaceConfig: BookableSpaceConfig.fromJson(
json['bookableConfig'] as Map<String, dynamic>),
spaceVirtualAddress: json['spaceVirtualAddress'] as String,
spaceConfig: json['bookableConfig'] == null
? BookableSpaceConfig.zero()
: BookableSpaceConfig.fromJson(
json['bookableConfig'] as Map<String, dynamic>),
spaceVirtualAddress: json['virtualLocation'] as String,
);
static List<BookableSpacemodel> fromJsonList(List<dynamic> jsonList) =>
@ -38,5 +39,6 @@ class BookableSpacemodel {
spaceUuid.isNotEmpty &&
spaceName.isNotEmpty &&
spaceVirtualAddress.isNotEmpty &&
spaceConfig.isValid;
spaceConfig != null &&
spaceConfig!.isValid;
}