diff --git a/lib/features/home/presentation/pages/home_page.dart b/lib/features/home/presentation/pages/home_page.dart index 6ff3bd82..cecc978c 100644 --- a/lib/features/home/presentation/pages/home_page.dart +++ b/lib/features/home/presentation/pages/home_page.dart @@ -122,7 +122,7 @@ class _HomePageWidgetState extends State { padding: const EdgeInsets.only(bottom: 40), child: MenuFactory( menuEntry: MenuEntries.home, - menuItem: MenuItem.button, + menuItem: EnumMenuItem.button, menuView: MenuView.list_grid, ), ), diff --git a/lib/features/property/presentation/pages/about_property_screen.dart b/lib/features/property/presentation/pages/about_property_screen.dart index 5b06f018..de4bc014 100644 --- a/lib/features/property/presentation/pages/about_property_screen.dart +++ b/lib/features/property/presentation/pages/about_property_screen.dart @@ -79,7 +79,7 @@ class _AboutPropertyPageState extends State with SingleTicker color: FlutterFlowTheme.of(context).primaryBackground, child: MenuFactory( menuEntry: MenuEntries.AboutProperty, - menuItem: MenuItem.button, + menuItem: EnumMenuItem.button, menuView: MenuView.list_grid, ), ), diff --git a/lib/main.dart b/lib/main.dart index 0b75747b..1053f9bd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,22 +2,15 @@ import 'dart:async'; import 'dart:developer'; import 'dart:io'; -import 'package:app_tracking_transparency/app_tracking_transparency.dart'; -import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:hub/backend/notifications/notification_service.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; -import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/components/molecules/locals/index.dart'; -import 'package:hub/shared/helpers/database/database_helper.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart'; import 'package:hub/shared/services/deeplink/deep_link_service.dart'; diff --git a/lib/shared/components/molecules/drawer/drawer_widget.dart b/lib/shared/components/molecules/drawer/drawer_widget.dart index 13362990..c913dcb5 100644 --- a/lib/shared/components/molecules/drawer/drawer_widget.dart +++ b/lib/shared/components/molecules/drawer/drawer_widget.dart @@ -13,7 +13,7 @@ class CustomDrawer extends StatelessWidget { @override Widget build(BuildContext context) { - return StreamBuilder( + return StreamBuilder( stream: LicenseRepositoryImpl.stream, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { @@ -191,7 +191,7 @@ class CustomDrawer extends StatelessWidget { Widget _buildDrawerBody(BuildContext context) { return MenuFactory( menuEntry: MenuEntries.drawer, - menuItem: MenuItem.tile, + menuItem: EnumMenuItem.tile, menuView: MenuView.list, ); } diff --git a/lib/shared/components/molecules/locals/presentation/widgets/index.dart b/lib/shared/components/molecules/locals/presentation/widgets/index.dart index 211db207..e0361f45 100644 --- a/lib/shared/components/molecules/locals/presentation/widgets/index.dart +++ b/lib/shared/components/molecules/locals/presentation/widgets/index.dart @@ -1 +1 @@ -export 'local_profile_widget.dart'; +export 'local_profile/index.dart'; \ No newline at end of file diff --git a/lib/shared/components/molecules/locals/presentation/widgets/local_profile/index.dart b/lib/shared/components/molecules/locals/presentation/widgets/local_profile/index.dart new file mode 100644 index 00000000..211db207 --- /dev/null +++ b/lib/shared/components/molecules/locals/presentation/widgets/local_profile/index.dart @@ -0,0 +1 @@ +export 'local_profile_widget.dart'; diff --git a/lib/shared/components/molecules/locals/presentation/widgets/local_profile_widget.dart b/lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart similarity index 100% rename from lib/shared/components/molecules/locals/presentation/widgets/local_profile_widget.dart rename to lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart diff --git a/lib/shared/components/molecules/menu/data/models/base_entry.dart b/lib/shared/components/molecules/menu/data/models/base_entry.dart deleted file mode 100644 index 9ee9029e..00000000 --- a/lib/shared/components/molecules/menu/data/models/base_entry.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/shared/components/molecules/menu/index.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -abstract class BaseEntry implements BaseModule {} diff --git a/lib/shared/components/molecules/menu/data/models/index.dart b/lib/shared/components/molecules/menu/data/models/index.dart index 7e916547..e69de29b 100644 --- a/lib/shared/components/molecules/menu/data/models/index.dart +++ b/lib/shared/components/molecules/menu/data/models/index.dart @@ -1 +0,0 @@ -export 'base_entry.dart'; diff --git a/lib/shared/components/molecules/menu/domain/entities/index.dart b/lib/shared/components/molecules/menu/domain/entities/index.dart index e69de29b..ab4ce12a 100644 --- a/lib/shared/components/molecules/menu/domain/entities/index.dart +++ b/lib/shared/components/molecules/menu/domain/entities/index.dart @@ -0,0 +1,3 @@ +export 'menu_entry.dart'; +export 'menu_item.dart'; +export 'menu_view.dart'; diff --git a/lib/shared/components/molecules/menu/domain/entities/menu_entry.dart b/lib/shared/components/molecules/menu/domain/entities/menu_entry.dart index b46274fa..6a7bb9e7 100644 --- a/lib/shared/components/molecules/menu/domain/entities/menu_entry.dart +++ b/lib/shared/components/molecules/menu/domain/entities/menu_entry.dart @@ -1,18 +1,20 @@ + import 'package:flutter/material.dart'; -import 'package:hub/shared/components/molecules/modules/domain/entities/license.dart'; +import 'package:hub/shared/components/molecules/modules/domain/entities/base_module.dart'; -class MenuEntry { - final String value; - final String name; - final IconData icon; - final String route; - final ModuleStatus status; - MenuEntry({ - required this.value, - required this.name, - required this.icon, - required this.route, - required this.status, - }); +class MenuEntry implements BaseModule { + @override + IconData get icon => throw UnimplementedError(); + + @override + String get name => throw UnimplementedError(); + + @override + String get route => throw UnimplementedError(); + + @override + String get value => throw UnimplementedError(); } + + diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item.dart b/lib/shared/components/molecules/menu/domain/entities/menu_item.dart similarity index 68% rename from lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item.dart rename to lib/shared/components/molecules/menu/domain/entities/menu_item.dart index 6b2b37ba..479ce679 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item.dart +++ b/lib/shared/components/molecules/menu/domain/entities/menu_item.dart @@ -1,25 +1,25 @@ import 'package:flutter/material.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; -enum MenuItem { +enum EnumMenuItem { button, card, tile; - MenuEntry getInstance(final Function() action, final String title, final IconData icon) { + MenuItem getInstance(final Function() action, final String title, final IconData icon) { switch (this) { - case MenuItem.button: + case EnumMenuItem.button: return MenuButtonWidget(action: action, title: title, icon: icon); - case MenuItem.card: + case EnumMenuItem.card: return MenuCardItem(action: action, title: title, icon: icon); - case MenuItem.tile: + case EnumMenuItem.tile: return MenuCardItem(action: action, title: title, icon: icon); } } } -abstract class MenuEntry extends StatefulWidget { - const MenuEntry({ +abstract class MenuItem extends StatefulWidget { + const MenuItem({ super.key, required this.action, required this.title, @@ -29,9 +29,10 @@ abstract class MenuEntry extends StatefulWidget { final Function() action; final String title; final IconData icon; + - factory MenuEntry.create( - MenuItem type, { + factory MenuItem.create( + EnumMenuItem type, { Key? key, required Function() action, required String title, diff --git a/lib/shared/components/molecules/menu/domain/entities/menu_view.dart b/lib/shared/components/molecules/menu/domain/entities/menu_view.dart new file mode 100644 index 00000000..e69de29b diff --git a/lib/shared/components/molecules/menu/presentation/blocs/menu_view_bloc.dart b/lib/shared/components/molecules/menu/presentation/blocs/menu_view_bloc.dart index 6f60ca26..914c31d2 100644 --- a/lib/shared/components/molecules/menu/presentation/blocs/menu_view_bloc.dart +++ b/lib/shared/components/molecules/menu/presentation/blocs/menu_view_bloc.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:convert'; import 'dart:developer'; import 'package:flutter/material.dart'; @@ -14,12 +15,12 @@ import 'package:hub/shared/extensions/dialog_extensions.dart'; class MenuViewEvent {} class MenuViewState { - final List menuEntries; + final List menuEntries; final bool isGrid; MenuViewState({this.menuEntries = const [], this.isGrid = false}); - MenuViewState copyWith({List? menuEntries, bool? isGrid}) { + MenuViewState copyWith({List? menuEntries, bool? isGrid}) { return MenuViewState( menuEntries: menuEntries ?? this.menuEntries, isGrid: isGrid ?? this.isGrid, @@ -29,9 +30,11 @@ class MenuViewState { class MenuViewBloc extends Bloc { final MenuView style; - final MenuItem item; + final EnumMenuItem item; final bool expandable; - final List menuOptions; + final List menuOptions; + late StreamSubscription _completer; + MenuViewBloc({required this.style, required this.item, required this.expandable, required this.menuOptions}) : super(MenuViewState()) { on((event, emit) async { @@ -39,29 +42,39 @@ class MenuViewBloc extends Bloc { final entries = await generateMenuEntries(); emit(state.copyWith(menuEntries: entries)); }); + + _completer = LicenseRemoteDataSourceImpl().streamCompleterController.listen((_) { + add(MenuViewEvent()); + }); } - Future addMenuEntry(List entries, IconData icon, String text, Function() action) async { + @override + Future close() { + _completer.cancel(); + return super.close(); + } + + Future addMenuEntry(List entries, IconData icon, String text, Function() action) async { entries.add( - item == MenuItem.button + item == EnumMenuItem.button ? MenuButtonWidget(icon: icon, action: action, title: text) - : item == MenuItem.card + : item == EnumMenuItem.card ? MenuCardItem(icon: icon, action: action, title: text) - : item == MenuItem.tile + : item == EnumMenuItem.tile ? MenuCardItem(icon: icon, action: action, title: text) : null, ); return null; } - Future> generateMenuEntries() async { - List entries = []; + Future> generateMenuEntries() async { + List entries = []; try { for (var opt in menuOptions) { String? licenseValue = await LicenseRepositoryImpl().g(opt.value); if (licenseValue != null) { Map licenseMap = await stringToMap(licenseValue); - if (opt.value == Modules.aboutProperty.value) log('AboutProperty: $licenseMap'); + if (opt.value == 'FRE-HUB-PROPERTY') log('AboutProperty: $licenseMap'); log('Module: ${opt.value} - License: ${licenseMap['display']}'); final String display = licenseMap['display'] ?? 'INVISIVEL'; final String startDate = licenseMap['startDate'] ?? ''; @@ -81,7 +94,7 @@ class MenuViewBloc extends Bloc { return entries; } - Future processDisplay(String display, BaseEntry opt, List entries) async { + Future processDisplay(String display, MenuEntry opt, List entries) async { try { switch (display) { case 'VISIVEL': @@ -103,7 +116,7 @@ class MenuViewBloc extends Bloc { } } - Future processStartDate(String startDate, BaseEntry opt) async { + Future processStartDate(String startDate, MenuEntry opt) async { try { if (startDate.isEmpty) return true; final DateTime? start = DateTime.tryParse(startDate); @@ -116,7 +129,7 @@ class MenuViewBloc extends Bloc { return false; } - Future processExpirationDate(String expirationDate, BaseEntry opt) async { + Future processExpirationDate(String expirationDate, MenuEntry opt) async { try { if (expirationDate.isEmpty) return false; final DateTime? expiration = DateTime.tryParse(expirationDate); diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/drawer_menu_entry.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/drawer_menu_entry.dart index c40adeff..373b9b4a 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/drawer_menu_entry.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/drawer_menu_entry.dart @@ -3,7 +3,7 @@ import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; -enum DrawerMenuEntries implements BaseEntry { +enum DrawerMenuEntries implements MenuEntry { providerSchedule, deliverySchedule, fastPass, @@ -220,4 +220,5 @@ enum DrawerMenuEntries implements BaseEntry { return ''; } } + } diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/home_menu_entry.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/home_menu_entry.dart index c72c2cd2..8ab3a975 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/home_menu_entry.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/home_menu_entry.dart @@ -3,7 +3,7 @@ import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; -enum HomeMenuEntries implements BaseEntry { +enum HomeMenuEntries implements MenuEntry { providerSchedule, deliverySchedule, fastPass, @@ -210,4 +210,6 @@ enum HomeMenuEntries implements BaseEntry { return ''; } } + + } diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/menu_entry_factory.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/menu_entry_factory.dart index 8c23e8bc..88d11129 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/menu_entry_factory.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/menu_entry_factory.dart @@ -6,7 +6,7 @@ enum MenuEntries { drawer, AboutProperty; - List get getValues { + List get getValues { switch (this) { case MenuEntries.home: return HomeMenuEntries.values.toList(); @@ -19,7 +19,7 @@ enum MenuEntries { } class MenuEntryFactory { - static List createMenuEntry(BaseEntry type) { + static List createMenuEntry(MenuEntry type) { switch (type) { case HomeMenuEntries _: return HomeMenuEntries.values.toList(); @@ -32,7 +32,7 @@ class MenuEntryFactory { } } - List buildMenuEntry(BaseEntry type) { + List buildMenuEntry(MenuEntry type) { return createMenuEntry(type); } } diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/property_menu_entry.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/property_menu_entry.dart index 0a1cb85e..b5d5caa4 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/property_menu_entry.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_entry/property_menu_entry.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; -enum AboutPropertyMenuEntries implements BaseEntry { +enum AboutPropertyMenuEntries implements MenuEntry { residents, vehicles, openedVisits, @@ -64,4 +64,6 @@ enum AboutPropertyMenuEntries implements BaseEntry { return '/petsOnThePropertyPage'; } } + + } diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_factory/menu_factory.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_factory/menu_factory.dart index b775544c..d5fd0458 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_factory/menu_factory.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_factory/menu_factory.dart @@ -4,7 +4,7 @@ import 'package:hub/shared/components/molecules/menu/index.dart'; class MenuFactory extends StatelessWidget { final MenuView menuView; final MenuEntries menuEntry; - final MenuItem menuItem; + final EnumMenuItem menuItem; const MenuFactory({ super.key, diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/index.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/index.dart index d6f43bae..375b35a2 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/index.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/index.dart @@ -1,4 +1,3 @@ -export 'menu_item.dart'; export 'menu_item_button.dart'; export 'menu_item_card.dart'; export 'menu_item_factory.dart'; diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_button.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_button.dart index e8a69b01..d95720e6 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_button.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_button.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; +import 'package:hub/shared/components/molecules/menu/index.dart'; -import 'menu_item.dart'; -class MenuButtonWidget extends MenuEntry { +class MenuButtonWidget extends MenuItem { const MenuButtonWidget({ super.key, required this.action, diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_card.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_card.dart index a0e226ec..b8031eac 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_card.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_card.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; +import 'package:hub/shared/components/molecules/menu/index.dart'; -import 'menu_item.dart'; -class MenuCardItem extends MenuEntry { +class MenuCardItem extends MenuItem { const MenuCardItem({ super.key, required this.action, diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_factory.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_factory.dart index aa92814d..dfebce2b 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_factory.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_item/menu_item_factory.dart @@ -2,18 +2,18 @@ import 'package:flutter/material.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; class MenuItemFactory { - static MenuEntry createMenuItem( - MenuItem type, { + static MenuItem createMenuItem( + EnumMenuItem type, { Key? key, required Function() action, required String title, required IconData icon, }) { - return MenuEntry.create(type, key: key, action: action, title: title, icon: icon); + return MenuItem.create(type, key: key, action: action, title: title, icon: icon); } - MenuEntry buildMenuItem( - MenuItem type, { + MenuItem buildMenuItem( + EnumMenuItem type, { Key? key, required Function() action, required String title, diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_list_view.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_list_view.dart index 9787f37c..c8c836db 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_list_view.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_list_view.dart @@ -25,8 +25,8 @@ class MenuListView extends StatefulWidget { }); final bool expandable; - final MenuItem item; - final List options; + final EnumMenuItem item; + final List options; final Future Function()? changeMenuStyle; @override @@ -62,11 +62,11 @@ class _MenuListViewState extends State { Widget buildMenuItem(BuildContext context) { switch (widget.item) { - case MenuItem.button: + case EnumMenuItem.button: return _buildButtonListView(); - case MenuItem.card: + case EnumMenuItem.card: return _buildCardListView(); - case MenuItem.tile: + case EnumMenuItem.tile: return buildMenuList(context); } } diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_staggered_view.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_staggered_view.dart index a0a0ad30..1d279b70 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_staggered_view.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_staggered_view.dart @@ -16,9 +16,9 @@ class MenuStaggeredView extends StatefulWidget { const MenuStaggeredView({super.key, required this.changeMenuStyle, required this.expandable, required this.item, required this.options, required this.isGrid}); final bool expandable; - final MenuItem item; + final EnumMenuItem item; final bool isGrid; - final List options; + final List options; final Future Function()? changeMenuStyle; @override diff --git a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_view_factory.dart b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_view_factory.dart index 59464013..62634c64 100644 --- a/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_view_factory.dart +++ b/lib/shared/components/molecules/menu/presentation/widgets/menu_view/menu_view_factory.dart @@ -8,7 +8,7 @@ import 'package:hub/shared/components/molecules/menu/index.dart'; class MenuViewFactory extends StatelessWidget { final MenuView view; - final MenuItem item; + final EnumMenuItem item; final bool expandable; final MenuEntries entry; @@ -22,7 +22,7 @@ class MenuViewFactory extends StatelessWidget { @override Widget build(BuildContext context) { - return StreamBuilder( + return StreamBuilder( stream: LicenseRepositoryImpl.stream, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { diff --git a/lib/shared/components/molecules/modules/data/data_sources/license_local_data_source.dart b/lib/shared/components/molecules/modules/data/data_sources/license_local_data_source.dart index 0cd0f092..e9fb7a32 100644 --- a/lib/shared/components/molecules/modules/data/data_sources/license_local_data_source.dart +++ b/lib/shared/components/molecules/modules/data/data_sources/license_local_data_source.dart @@ -66,15 +66,18 @@ class LicenseLocalDataSourceImpl implements LicenseLocalDataSource { await DatabaseStorage.instance.init(); } - Future setByKey(final List key, final String display) async { + Future setByKey(final List key, final String display) async { + if (key.isEmpty) return; for (var element in key) { - log('setByKey($element, $display)'); - await s(element, { - 'display': display, - 'expirationDate': '', - 'startDate': '', - 'quantity': '', - }); + if (element != null) { + log('setByKey($element, $display)'); + await s(element, { + 'display': display, + 'expirationDate': '', + 'startDate': '', + 'quantity': '', + }); + } } } diff --git a/lib/shared/components/molecules/modules/data/data_sources/license_remote_data_source.dart b/lib/shared/components/molecules/modules/data/data_sources/license_remote_data_source.dart index 69770f10..d258fbcb 100644 --- a/lib/shared/components/molecules/modules/data/data_sources/license_remote_data_source.dart +++ b/lib/shared/components/molecules/modules/data/data_sources/license_remote_data_source.dart @@ -22,44 +22,49 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource { factory LicenseRemoteDataSourceImpl() => _instance; LicenseRemoteDataSourceImpl._internal(); - final Completer _saveCompleter = Completer(); + + final StreamController _completerController = StreamController.broadcast(); + Stream get streamCompleterController => _completerController.stream; + @override - Future processLicense() async { - // if (body['key'] == Module.pets.value && body['display'] == 'VISIVEL') { - // await LicenseHelper().s(Module.petsHistory.value, body); - // } - // final bool isAboutProperty = AboutPropertyModules.values.contains(body['key']); - // final bool isVisible = body['display'] == 'VISIVEL'; - // log('contains () => ${body['key']} - $isAboutProperty'); - // if (isAboutProperty && isVisible) { - // await LicenseHelper().s(Module.aboutProperty.value, body); - // } - } + Future processLicense() async {} + @override Future cleanLicense() async { - LicenseRepositoryImpl.license.add([]); + LicenseRepositoryImpl.license.add(false); + } - @override + @override Future setupLicense(Database database, bool isNewVersion) async { - log('(B) => license'); + final License license = License.getLicense(isNewVersion); - final List inactiveModuleKey = InactiveModuleKey.values.map((e) => e.value).toList(); - final List activeModuleKey = ActiveModuleKey.values.map((e) => e.value).toList(); - final List disabledModuleKey = DisabledModuleKey.values.map((e) => e.value).toList(); + final List inactiveModuleKey = license.modules + .where((module) => module.display == ModuleStatus.inactive.key) + .map((module) => module.key) + .toList(); + + final List activeModuleKey = license.modules + .where((module) => module.display == ModuleStatus.active.key) + .map((module) => module.key) + .toList(); + + final List disabledModuleKey = license.modules + .where((module) => module.display == ModuleStatus.disabled.key) + .map((module) => module.key) + .toList(); await LicenseLocalDataSourceImpl().setByKey(inactiveModuleKey, 'INVISIVEL'); await LicenseLocalDataSourceImpl().setByKey(activeModuleKey, 'VISIVEL'); if (isNewVersion == true) { await LicenseLocalDataSourceImpl().setByKey(disabledModuleKey, 'VISIVEL'); - await LicenseLocalDataSourceImpl().setByKey([Modules.aboutProperty.value], 'VISIVEL'); + await LicenseLocalDataSourceImpl().setByKey(['FRE-HUB-PROPERTY'], 'VISIVEL'); } else { await LicenseLocalDataSourceImpl().setByKey(disabledModuleKey, 'DESABILITADO'); } - LicenseRepositoryImpl.license.add([...activeModuleKey]); - _saveCompleter.complete(); + LicenseRepositoryImpl.license.add(true); } @override @@ -83,7 +88,7 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource { if (responseBody == []) { await setupLicense(DatabaseStorage.database, isNewVersion); - LicenseRepositoryImpl.license.add([]); + LicenseRepositoryImpl.license.add(false); return false; } @@ -96,8 +101,9 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource { await Future.wait(saveOperations); log('() => License stream add'); - LicenseRepositoryImpl.license.add(responseBody); - _saveCompleter.complete(); + LicenseRepositoryImpl.license.add(true); + _completerController.add(null); + return true; } catch (e) { log('Erro ao obter licenças: $e'); @@ -107,11 +113,11 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource { } Future waitForSaveCompletion() async { - await _saveCompleter.future; + await LicenseRepositoryImpl.stream; } static bool licenseContainsKey(final String key) { - return Modules.values.map((e) => e.value).toList().contains(key); + return License.mods.contains(key); } static Future _saveModule(final dynamic body) async { diff --git a/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart b/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart index 2569d598..dcd97a3e 100644 --- a/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart +++ b/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:hub/shared/helpers/database/database_helper.dart'; import 'package:rxdart/rxdart.dart'; import 'package:sqflite/sqflite.dart'; -typedef TModule = List; +typedef LicenseStatus = bool; class LicenseRepositoryImpl implements LicenseRepository { final LicenseLocalDataSource localDataSource = LicenseLocalDataSourceImpl(); @@ -14,7 +14,7 @@ class LicenseRepositoryImpl implements LicenseRepository { LicenseRepositoryImpl(); - static final license = BehaviorSubject(); + static final license = BehaviorSubject(); static get stream => license.stream; Future fetchLicense(bool isNewVersion) async { diff --git a/lib/shared/components/molecules/modules/domain/entities/active_modules.dart b/lib/shared/components/molecules/modules/domain/entities/active_modules.dart deleted file mode 100644 index a2ac143f..00000000 --- a/lib/shared/components/molecules/modules/domain/entities/active_modules.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -enum ActiveModuleKey implements BaseModule { - messages, - liberations, - access, - completeSchedule, - providerSchedule, - deliverySchedule, - qrCode, - visitors, - peopleOnTheProperty, - settings, - logout; - - @override - IconData get icon => throw UnimplementedError(); - - @override - String get name => throw UnimplementedError(); - - @override - String get route => throw UnimplementedError(); - - @override - String get value { - switch (this) { - case ActiveModuleKey.messages: - return 'FRE-HUB-MESSAGES'; - case ActiveModuleKey.liberations: - return 'FRE-HUB-LIBERATIONS'; - case ActiveModuleKey.access: - return 'FRE-HUB-ACCESS'; - case ActiveModuleKey.completeSchedule: - return 'FRE-HUB-COMPLETE-SCHEDULE'; - case ActiveModuleKey.providerSchedule: - return 'FRE-HUB-AGE-PROV-PRESTADOR'; - case ActiveModuleKey.deliverySchedule: - return 'FRE-HUB-AGE-PROV-DELIVERY'; - case ActiveModuleKey.visitors: - return 'FRE-HUB-VISITORS'; - case ActiveModuleKey.qrCode: - return 'FRE-HUB-QRCODE'; - case ActiveModuleKey.peopleOnTheProperty: - return 'FRE-HUB-PEOPLE'; - default: - return ''; - } - } -} diff --git a/lib/shared/components/molecules/modules/domain/entities/disabled_modules.dart b/lib/shared/components/molecules/modules/domain/entities/disabled_modules.dart deleted file mode 100644 index f773cc4e..00000000 --- a/lib/shared/components/molecules/modules/domain/entities/disabled_modules.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -enum DisabledModuleKey implements BaseModule { - fastPass; - - @override - IconData get icon => throw UnimplementedError(); - - @override - String get name => throw UnimplementedError(); - - @override - String get route => throw UnimplementedError(); - - @override - String get value { - switch (this) { - case DisabledModuleKey.fastPass: - return 'FRE-HUB-FASTPASS'; - - default: - return ''; - } - } -} diff --git a/lib/shared/components/molecules/modules/domain/entities/inactive_modules.dart b/lib/shared/components/molecules/modules/domain/entities/inactive_modules.dart deleted file mode 100644 index 0be8edae..00000000 --- a/lib/shared/components/molecules/modules/domain/entities/inactive_modules.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -enum InactiveModuleKey implements BaseModule { - residents, - vehicles, - openedVisits, - petsHistory, - pets, - orders, - fastpass, - reservations, - aboutProperty; - - @override - IconData get icon => throw UnimplementedError(); - - @override - String get name => throw UnimplementedError(); - - @override - String get route => throw UnimplementedError(); - - @override - String get value { - switch (this) { - case InactiveModuleKey.openedVisits: - return 'FRE-HUB-OPENED-VISITS'; - case InactiveModuleKey.vehicles: - return 'FRE-HUB-VEHICLES'; - case InactiveModuleKey.residents: - return 'FRE-HUB-RESIDENTS'; - case InactiveModuleKey.petsHistory: - return 'FRE-HUB-PETS-HISTORY'; - case InactiveModuleKey.aboutProperty: - return 'FRE-HUB-PROPERTY'; - case InactiveModuleKey.pets: - return 'FRE-HUB-PETS'; - case InactiveModuleKey.orders: - return 'FRE-HUB-ORDERS'; - case InactiveModuleKey.reservations: - return 'FRE-HUB-RESERVATIONS'; - default: - return ''; - } - } -} diff --git a/lib/shared/components/molecules/modules/domain/entities/index.dart b/lib/shared/components/molecules/modules/domain/entities/index.dart index 609f59b0..957da76e 100644 --- a/lib/shared/components/molecules/modules/domain/entities/index.dart +++ b/lib/shared/components/molecules/modules/domain/entities/index.dart @@ -1,7 +1,4 @@ -export 'active_modules.dart'; export 'base_module.dart'; -export 'disabled_modules.dart'; -export 'inactive_modules.dart'; + export 'license.dart'; export 'module.dart'; -export 'modules.dart'; diff --git a/lib/shared/components/molecules/modules/domain/entities/license.dart b/lib/shared/components/molecules/modules/domain/entities/license.dart index 743580fa..98aa8797 100644 --- a/lib/shared/components/molecules/modules/domain/entities/license.dart +++ b/lib/shared/components/molecules/modules/domain/entities/license.dart @@ -1,26 +1,761 @@ -import 'package:equatable/equatable.dart'; + + +import 'package:hub/shared/extensions/string_extensions.dart'; +import 'package:hub/shared/helpers/database/database_helper.dart'; +import 'package:hub/shared/helpers/storage/base_storage.dart'; +import 'package:hub/shared/helpers/storage/storage_helper.dart'; + import 'module.dart'; -enum ModuleStatus { active, inactive, disabled } +class License { + final List modules; -extension ModuleStatusExtension on ModuleStatus { - String get value { - switch (this) { - case ModuleStatus.active: - return 'VISIVEL'; - case ModuleStatus.inactive: - return 'INVISIVEL'; - case ModuleStatus.disabled: - return 'DESABILITADO'; - } + const License( + this.modules, + ); + + static List mods = [ + 'FRE-HUB-MESSAGES', + 'FRE-HUB-LIBERATIONS', + 'FRE-HUB-RESERVATIONS', + 'FRE-HUB-ACCESS', + 'FRE-HUB-OPENED-VISITS', + 'FRE-HUB-VEHICLES', + 'FRE-HUB-RESIDENTS', + 'FRE-HUB-PETS', + 'FRE-HUB-ORDERS', + 'FRE-HUB-COMPLETE-SCHEDULE', + 'FRE-HUB-AGE-PROV-PRESTADOR', + 'FRE-HUB-AGE-PROV-DELIVERY', + 'FRE-HUB-PROPERTY', + 'FRE-HUB-FASTPASS', + 'FRE-HUB-VISITORS', + 'FRE-HUB-QRCODE', + 'FRE-HUB-PEOPLE', + 'FRE-HUB-PETS-HISTORY' + ]; + + void processOldVersion() async { + final bool whatsapp = await StorageHelper().g(KeychainStorageKey.whatsapp as String).then((v) => v.toBoolean()); + final bool provisional = await StorageHelper().g(KeychainStorageKey.provisional as String).then((v) => v.toBoolean()); + final bool pets = await StorageHelper().g(KeychainStorageKey.pets as String).then((v) => v.toBoolean()); + } + + factory License.getLicense(bool isNewVersion) { + return License([ + Module( + key: 'FRE-HUB-MESSAGES', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-LIBERATIONS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-RESERVATIONS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-ACCESS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-OPENED-VISITS', + display: isNewVersion ? ModuleStatus.inactive.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-VEHICLES', + display: isNewVersion ? ModuleStatus.inactive.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-RESIDENTS', + display: isNewVersion ? ModuleStatus.inactive.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-PETS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-ORDERS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-COMPLETE-SCHEDULE', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-AGE-PROV-PRESTADOR', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-AGE-PROV-DELIVERY', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-FASTPASS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-QRCODE', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-VISITORS', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-PROPERTY', + display: isNewVersion ? ModuleStatus.inactive.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-PEOPLE', + display: isNewVersion ? ModuleStatus.inactive.key : ModuleStatus.active.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + Module( + key: 'FRE-HUB-PETS-HISTORY', + display: isNewVersion ? ModuleStatus.active.key : ModuleStatus.inactive.key, + expirationDate: '', + startDate: '', + quantity: 0, + ), + ] + ); } } -class License extends Equatable { - final List modules; +// import 'package:equatable/equatable.dart'; +// import 'module.dart'; - const License({required this.modules}); +// import 'package:flutter/material.dart'; +// import 'package:hub/flutter_flow/internationalization.dart'; +// import 'package:hub/flutter_flow/nav/nav.dart'; +// import 'package:hub/shared/components/molecules/modules/index.dart'; - @override - List get props => [modules]; -} +// enum ModuleStatus { active, inactive, disabled } + +// extension ModuleStatusExtension on ModuleStatus { +// String get value { +// switch (this) { +// case ModuleStatus.active: +// return 'VISIVEL'; +// case ModuleStatus.inactive: +// return 'INVISIVEL'; +// case ModuleStatus.disabled: +// return 'DESABILITADO'; +// } +// } +// } + +// class ModuleExt { +// final String value; +// final String name; +// final IconData icon; +// final String route; +// final (ModuleStatus inOldVersion, ModuleStatus inNewVersion) status; + +// const ModuleExt({ +// required this.value, +// required this.name, +// required this.icon, +// required this.route, +// required this.status, +// }); + +// static List get license => [ +// ModuleExt( +// value: 'FRE-HUB-MESSAGES', +// name: FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Mensagens', +// enText: 'Messages History', +// ), +// icon: Icons.chat_outlined, +// route: '/messageHistoryPage', +// status: (ModuleStatus.active, ModuleStatus.disabled), +// ), +// ]; +// } + +// enum EModule implements BaseModule { +// providerSchedule, +// deliverySchedule, +// fastPass, +// completeSchedule, +// orders, +// reservations, +// visitors, +// vehicles, +// residents, +// openedVisits, +// qrCode, +// pets, +// access, +// liberations, +// messages, +// aboutProperty, +// petsHistory, +// peopleOnTheProperty, +// settings, +// logout; + +// @override +// String get value { +// switch (this) { +// case Module.messages: +// return 'FRE-HUB-MESSAGES'; +// case Module.liberations: +// return 'FRE-HUB-LIBERATIONS'; +// case Module.reservations: +// return 'FRE-HUB-RESERVATIONS'; +// case Module.access: +// return 'FRE-HUB-ACCESS'; +// case Module.openedVisits: +// return 'FRE-HUB-OPENED-VISITS'; +// case Module.vehicles: +// return 'FRE-HUB-VEHICLES'; +// case Module.residents: +// return 'FRE-HUB-RESIDENTS'; +// case Module.pets: +// return 'FRE-HUB-PETS'; +// case Module.orders: +// return 'FRE-HUB-ORDERS'; +// case Module.completeSchedule: +// return 'FRE-HUB-COMPLETE-SCHEDULE'; +// case Module.providerSchedule: +// return 'FRE-HUB-AGE-PROV-PRESTADOR'; +// case Module.deliverySchedule: +// return 'FRE-HUB-AGE-PROV-DELIVERY'; +// case Module.aboutProperty: +// return 'FRE-HUB-PROPERTY'; +// case Module.fastPass: +// return 'FRE-HUB-FASTPASS'; +// case Module.visitors: +// return 'FRE-HUB-VISITORS'; +// case Module.qrCode: +// return 'FRE-HUB-QRCODE'; +// case Module.peopleOnTheProperty: +// return 'FRE-HUB-PEOPLE'; +// case Module.petsHistory: +// return 'FRE-HUB-PETS-HISTORY'; +// default: +// return ''; +// } +// } + +// @override +// String get name { +// switch (this) { +// case Module.messages: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Mensagens', +// enText: 'Messages History', +// ); +// case Module.liberations: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Liberações', +// enText: 'Liberations History', +// ); +// case Module.reservations: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Reservas', +// enText: 'Reservations', +// ); +// case Module.access: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Acessos', +// enText: 'Access History', +// ); +// case Module.openedVisits: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Visitas em Aberto', +// enText: 'Opened Visits', +// ); +// case Module.vehicles: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Veículos', +// enText: 'Vehicles', +// ); +// case Module.residents: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Moradores', +// enText: 'Residents', +// ); +// case Module.pets: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pets', +// enText: 'Pets', +// ); +// case Module.petsHistory: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pets', +// enText: 'Pets', +// ); +// case Module.peopleOnTheProperty: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pessoas na Propriedade', +// enText: 'People on the Property', +// ); +// case Module.orders: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Minhas Encomendas', +// enText: 'My Orders', +// ); +// case Module.completeSchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agenda Completa', +// enText: 'Complete Schedule', +// ); +// case Module.providerSchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agendar Prestadores', +// enText: 'Schedule Providers', +// ); +// case Module.deliverySchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agendar Delivery', +// enText: 'Schedule Delivery', +// ); +// case Module.fastPass: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Fast Pass', +// enText: 'Fast Pass', +// ); +// case Module.qrCode: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'QRCode de Acesso', +// enText: 'Access QRCode', +// ); +// case Module.visitors: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Cadastrar Visitantes', +// enText: 'Register Visitors', +// ); +// case Module.aboutProperty: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Sobre a Propriedade', +// enText: 'About the Property', +// ); +// case Module.settings: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Configurações', +// enText: 'Settings', +// ); +// case Module.logout: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Sair', +// enText: 'Logout', +// ); +// } +// } + +// @override +// IconData get icon { +// switch (this) { +// case Module.messages: +// return Icons.chat_outlined; +// case Module.liberations: +// return Icons.how_to_reg_outlined; +// case Module.reservations: +// return Icons.event_available; +// case Module.access: +// return Icons.transfer_within_a_station_outlined; +// case Module.openedVisits: +// return Icons.perm_contact_calendar; +// case Module.vehicles: +// return Icons.directions_car; +// case Module.residents: +// return Icons.groups; +// case Module.pets: +// return Icons.pets; +// case Module.petsHistory: +// return Icons.pets; +// case Module.peopleOnTheProperty: +// return Icons.groups; +// case Module.orders: +// return Icons.inventory_2_outlined; +// case Module.completeSchedule: +// return Icons.event; +// case Module.providerSchedule: +// return Icons.engineering_outlined; +// case Module.deliverySchedule: +// return Icons.sports_motorsports_outlined; +// case Module.fastPass: +// return Icons.attach_email_outlined; +// case Module.qrCode: +// return Icons.qr_code; +// case Module.visitors: +// return Icons.person_add_alt_1_outlined; +// case Module.aboutProperty: +// return Icons.home; +// case Module.settings: +// return Icons.settings; +// case Module.logout: +// return Icons.logout; +// } +// } + +// @override +// String get route { +// switch (this) { +// case Module.messages: +// return '/messageHistoryPage'; +// case Module.liberations: +// return '/liberationHistory'; +// case Module.reservations: +// return '/reservation'; +// case Module.access: +// return '/acessHistoryPage'; +// case Module.openedVisits: +// return '/visitsOnThePropertyPage'; +// case Module.vehicles: +// return '/vehiclesOnThePropertyPage'; +// case Module.residents: +// return '/residentsOnThePropertyPage'; +// case Module.pets: +// return '/petsPage'; +// case Module.petsHistory: +// return '/petsHistoryPage'; +// case Module.peopleOnTheProperty: +// return '/peopleOnThePropertyPage'; +// case Module.orders: +// return '/packageOrder'; +// case Module.completeSchedule: +// return '/scheduleCompleteVisitPage'; +// case Module.providerSchedule: +// return '/provisionalSchedule'; +// case Module.aboutProperty: +// return '/aboutProperty'; +// case Module.deliverySchedule: +// return '/deliverySchedule'; +// case Module.fastPass: +// return '/fastPassPage'; +// case Module.qrCode: +// return '/qrCodePage'; +// case Module.visitors: +// return '/registerVisitorPage'; +// case Module.settings: +// return '/preferencesSettings'; +// case Module.logout: +// return '/WelcomePage'; +// default: +// return ''; +// } +// } +// } + +// enum ELicense implements BaseModule { +// providerSchedule, +// deliverySchedule, +// fastPass, +// completeSchedule, +// orders, +// reservations, +// visitors, +// vehicles, +// residents, +// openedVisits, +// qrCode, +// pets, +// access, +// liberations, +// messages, +// aboutProperty, +// petsHistory, +// peopleOnTheProperty, +// settings, +// logout; + +// @override +// String get value { +// switch (this) { +// case License.messages: +// return 'FRE-HUB-MESSAGES'; +// case License.liberations: +// return 'FRE-HUB-LIBERATIONS'; +// case License.reservations: +// return 'FRE-HUB-RESERVATIONS'; +// case License.access: +// return 'FRE-HUB-ACCESS'; +// case License.openedVisits: +// return 'FRE-HUB-OPENED-VISITS'; +// case License.vehicles: +// return 'FRE-HUB-VEHICLES'; +// case License.residents: +// return 'FRE-HUB-RESIDENTS'; +// case License.pets: +// return 'FRE-HUB-PETS'; +// case License.orders: +// return 'FRE-HUB-ORDERS'; +// case License.completeSchedule: +// return 'FRE-HUB-COMPLETE-SCHEDULE'; +// case License.providerSchedule: +// return 'FRE-HUB-AGE-PROV-PRESTADOR'; +// case License.deliverySchedule: +// return 'FRE-HUB-AGE-PROV-DELIVERY'; +// case License.aboutProperty: +// return 'FRE-HUB-PROPERTY'; +// case License.fastPass: +// return 'FRE-HUB-FASTPASS'; +// case License.visitors: +// return 'FRE-HUB-VISITORS'; +// case License.qrCode: +// return 'FRE-HUB-QRCODE'; +// case License.peopleOnTheProperty: +// return 'FRE-HUB-PEOPLE'; +// case License.petsHistory: +// return 'FRE-HUB-PETS-HISTORY'; +// default: +// return ''; +// } +// } + +// @override +// String get name { +// switch (this) { +// case License.messages: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Mensagens', +// enText: 'Messages History', +// ); +// case License.liberations: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Liberações', +// enText: 'Liberations History', +// ); +// case License.reservations: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Reservas', +// enText: 'Reservations', +// ); +// case License.access: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Consultar Acessos', +// enText: 'Access History', +// ); +// case License.openedVisits: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Visitas em Aberto', +// enText: 'Opened Visits', +// ); +// case License.vehicles: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Veículos', +// enText: 'Vehicles', +// ); +// case License.residents: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Moradores', +// enText: 'Residents', +// ); +// case License.pets: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pets', +// enText: 'Pets', +// ); +// case License.petsHistory: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pets', +// enText: 'Pets', +// ); +// case License.peopleOnTheProperty: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Pessoas na Propriedade', +// enText: 'People on the Property', +// ); +// case License.orders: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Minhas Encomendas', +// enText: 'My Orders', +// ); +// case License.completeSchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agenda Completa', +// enText: 'Complete Schedule', +// ); +// case License.providerSchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agendar Prestadores', +// enText: 'Schedule Providers', +// ); +// case License.deliverySchedule: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Agendar Delivery', +// enText: 'Schedule Delivery', +// ); +// case License.fastPass: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Fast Pass', +// enText: 'Fast Pass', +// ); +// case License.qrCode: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'QRCode de Acesso', +// enText: 'Access QRCode', +// ); +// case License.visitors: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Cadastrar Visitantes', +// enText: 'Register Visitors', +// ); +// case License.aboutProperty: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Sobre a Propriedade', +// enText: 'About the Property', +// ); +// case License.settings: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Configurações', +// enText: 'Settings', +// ); +// case License.logout: +// return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( +// ptText: 'Sair', +// enText: 'Logout', +// ); +// } +// } + +// @override +// IconData get icon { +// switch (this) { +// case License.messages: +// return Icons.chat_outlined; +// case License.liberations: +// return Icons.how_to_reg_outlined; +// case License.reservations: +// return Icons.event_available; +// case License.access: +// return Icons.transfer_within_a_station_outlined; +// case License.openedVisits: +// return Icons.perm_contact_calendar; +// case License.vehicles: +// return Icons.directions_car; +// case License.residents: +// return Icons.groups; +// case License.pets: +// return Icons.pets; +// case License.petsHistory: +// return Icons.pets; +// case License.peopleOnTheProperty: +// return Icons.groups; +// case License.orders: +// return Icons.inventory_2_outlined; +// case License.completeSchedule: +// return Icons.event; +// case License.providerSchedule: +// return Icons.engineering_outlined; +// case License.deliverySchedule: +// return Icons.sports_motorsports_outlined; +// case License.fastPass: +// return Icons.attach_email_outlined; +// case License.qrCode: +// return Icons.qr_code; +// case License.visitors: +// return Icons.person_add_alt_1_outlined; +// case License.aboutProperty: +// return Icons.home; +// case License.settings: +// return Icons.settings; +// case License.logout: +// return Icons.logout; +// } +// } + +// @override +// String get route { +// switch (this) { +// case License.messages: +// return '/messageHistoryPage'; +// case License.liberations: +// return '/liberationHistory'; +// case License.reservations: +// return '/reservation'; +// case License.access: +// return '/acessHistoryPage'; +// case License.openedVisits: +// return '/visitsOnThePropertyPage'; +// case License.vehicles: +// return '/vehiclesOnThePropertyPage'; +// case License.residents: +// return '/residentsOnThePropertyPage'; +// case License.pets: +// return '/petsPage'; +// case License.petsHistory: +// return '/petsHistoryPage'; +// case License.peopleOnTheProperty: +// return '/peopleOnThePropertyPage'; +// case License.orders: +// return '/packageOrder'; +// case License.completeSchedule: +// return '/scheduleCompleteVisitPage'; +// case License.providerSchedule: +// return '/provisionalSchedule'; +// case License.aboutProperty: +// return '/aboutProperty'; +// case License.deliverySchedule: +// return '/deliverySchedule'; +// case License.fastPass: +// return '/fastPassPage'; +// case License.qrCode: +// return '/qrCodePage'; +// case License.visitors: +// return '/registerVisitorPage'; +// case License.settings: +// return '/preferencesSettings'; +// case License.logout: +// return '/WelcomePage'; +// default: +// return ''; +// } +// } +// } diff --git a/lib/shared/components/molecules/modules/domain/entities/module.dart b/lib/shared/components/molecules/modules/domain/entities/module.dart index f2821e54..060586aa 100644 --- a/lib/shared/components/molecules/modules/domain/entities/module.dart +++ b/lib/shared/components/molecules/modules/domain/entities/module.dart @@ -1,5 +1,22 @@ import 'package:hub/shared/components/molecules/modules/data/models/module_model.dart'; + +enum ModuleStatus { active, inactive, disabled } + +extension ModuleStatusExtension on ModuleStatus { + String get key { + switch (this) { + case ModuleStatus.active: + return 'VISIVEL'; + case ModuleStatus.inactive: + return 'INVISIVEL'; + case ModuleStatus.disabled: + return 'DESABILITADO'; + } + } +} + + class Module { final String key; final String display; @@ -7,12 +24,14 @@ class Module { final String startDate; final int quantity; + Module({ required this.key, required this.display, required this.expirationDate, required this.startDate, required this.quantity, + }); factory Module.fromModel(ModuleModel model) { @@ -34,4 +53,6 @@ class Module { quantity: quantity, ); } + + } diff --git a/lib/shared/components/molecules/modules/domain/entities/modules.dart b/lib/shared/components/molecules/modules/domain/entities/modules.dart deleted file mode 100644 index 0766112a..00000000 --- a/lib/shared/components/molecules/modules/domain/entities/modules.dart +++ /dev/null @@ -1,271 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -enum Modules implements BaseModule { - providerSchedule, - deliverySchedule, - fastPass, - completeSchedule, - orders, - reservations, - visitors, - vehicles, - residents, - openedVisits, - qrCode, - pets, - access, - liberations, - messages, - aboutProperty, - petsHistory, - peopleOnTheProperty, - settings, - logout; - - @override - String get value { - switch (this) { - case Modules.messages: - return 'FRE-HUB-MESSAGES'; - case Modules.liberations: - return 'FRE-HUB-LIBERATIONS'; - case Modules.reservations: - return 'FRE-HUB-RESERVATIONS'; - case Modules.access: - return 'FRE-HUB-ACCESS'; - case Modules.openedVisits: - return 'FRE-HUB-OPENED-VISITS'; - case Modules.vehicles: - return 'FRE-HUB-VEHICLES'; - case Modules.residents: - return 'FRE-HUB-RESIDENTS'; - case Modules.pets: - return 'FRE-HUB-PETS'; - case Modules.orders: - return 'FRE-HUB-ORDERS'; - case Modules.completeSchedule: - return 'FRE-HUB-COMPLETE-SCHEDULE'; - case Modules.providerSchedule: - return 'FRE-HUB-AGE-PROV-PRESTADOR'; - case Modules.deliverySchedule: - return 'FRE-HUB-AGE-PROV-DELIVERY'; - case Modules.aboutProperty: - return 'FRE-HUB-PROPERTY'; - case Modules.fastPass: - return 'FRE-HUB-FASTPASS'; - case Modules.visitors: - return 'FRE-HUB-VISITORS'; - case Modules.qrCode: - return 'FRE-HUB-QRCODE'; - case Modules.peopleOnTheProperty: - return 'FRE-HUB-PEOPLE'; - case Modules.petsHistory: - return 'FRE-HUB-PETS-HISTORY'; - default: - return ''; - } - } - - @override - String get name { - switch (this) { - case Modules.messages: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Mensagens', - enText: 'Messages History', - ); - case Modules.liberations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Liberações', - enText: 'Liberations History', - ); - case Modules.reservations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Reservas', - enText: 'Reservations', - ); - case Modules.access: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Acessos', - enText: 'Access History', - ); - case Modules.openedVisits: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Visitas em Aberto', - enText: 'Opened Visits', - ); - case Modules.vehicles: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Veículos', - enText: 'Vehicles', - ); - case Modules.residents: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Moradores', - enText: 'Residents', - ); - case Modules.pets: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case Modules.petsHistory: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case Modules.peopleOnTheProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pessoas na Propriedade', - enText: 'People on the Property', - ); - case Modules.orders: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Minhas Encomendas', - enText: 'My Orders', - ); - case Modules.completeSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agenda Completa', - enText: 'Complete Schedule', - ); - case Modules.providerSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Prestadores', - enText: 'Schedule Providers', - ); - case Modules.deliverySchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Delivery', - enText: 'Schedule Delivery', - ); - case Modules.fastPass: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Fast Pass', - enText: 'Fast Pass', - ); - case Modules.qrCode: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'QRCode de Acesso', - enText: 'Access QRCode', - ); - case Modules.visitors: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Cadastrar Visitantes', - enText: 'Register Visitors', - ); - case Modules.aboutProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sobre a Propriedade', - enText: 'About the Property', - ); - case Modules.settings: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Configurações', - enText: 'Settings', - ); - case Modules.logout: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sair', - enText: 'Logout', - ); - } - } - - @override - IconData get icon { - switch (this) { - case Modules.messages: - return Icons.chat_outlined; - case Modules.liberations: - return Icons.how_to_reg_outlined; - case Modules.reservations: - return Icons.event_available; - case Modules.access: - return Icons.transfer_within_a_station_outlined; - case Modules.openedVisits: - return Icons.perm_contact_calendar; - case Modules.vehicles: - return Icons.directions_car; - case Modules.residents: - return Icons.groups; - case Modules.pets: - return Icons.pets; - case Modules.petsHistory: - return Icons.pets; - case Modules.peopleOnTheProperty: - return Icons.groups; - case Modules.orders: - return Icons.inventory_2_outlined; - case Modules.completeSchedule: - return Icons.event; - case Modules.providerSchedule: - return Icons.engineering_outlined; - case Modules.deliverySchedule: - return Icons.sports_motorsports_outlined; - case Modules.fastPass: - return Icons.attach_email_outlined; - case Modules.qrCode: - return Icons.qr_code; - case Modules.visitors: - return Icons.person_add_alt_1_outlined; - case Modules.aboutProperty: - return Icons.home; - case Modules.settings: - return Icons.settings; - case Modules.logout: - return Icons.logout; - } - } - - @override - String get route { - switch (this) { - case Modules.messages: - return '/messageHistoryPage'; - case Modules.liberations: - return '/liberationHistory'; - case Modules.reservations: - return '/reservation'; - case Modules.access: - return '/acessHistoryPage'; - case Modules.openedVisits: - return '/visitsOnThePropertyPage'; - case Modules.vehicles: - return '/vehiclesOnThePropertyPage'; - case Modules.residents: - return '/residentsOnThePropertyPage'; - case Modules.pets: - return '/petsPage'; - case Modules.petsHistory: - return '/petsHistoryPage'; - case Modules.peopleOnTheProperty: - return '/peopleOnThePropertyPage'; - case Modules.orders: - return '/packageOrder'; - case Modules.completeSchedule: - return '/scheduleCompleteVisitPage'; - case Modules.providerSchedule: - return '/provisionalSchedule'; - case Modules.aboutProperty: - return '/aboutProperty'; - case Modules.deliverySchedule: - return '/deliverySchedule'; - case Modules.fastPass: - return '/fastPassPage'; - case Modules.qrCode: - return '/qrCodePage'; - case Modules.visitors: - return '/registerVisitorPage'; - case Modules.settings: - return '/preferencesSettings'; - case Modules.logout: - return '/WelcomePage'; - default: - return ''; - } - } -} diff --git a/lib/shared/enums/enum_menu.dart b/lib/shared/enums/enum_menu.dart deleted file mode 100644 index fd0af8ca..00000000 --- a/lib/shared/enums/enum_menu.dart +++ /dev/null @@ -1,699 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/components/molecules/modules/index.dart'; - -enum Module implements BaseModule { - providerSchedule, - deliverySchedule, - fastPass, - completeSchedule, - orders, - reservations, - visitors, - vehicles, - residents, - openedVisits, - qrCode, - pets, - access, - liberations, - messages, - aboutProperty, - petsHistory, - peopleOnTheProperty, - settings, - logout; - - @override - String get value { - switch (this) { - case Module.messages: - return 'FRE-HUB-MESSAGES'; - case Module.liberations: - return 'FRE-HUB-LIBERATIONS'; - case Module.reservations: - return 'FRE-HUB-RESERVATIONS'; - case Module.access: - return 'FRE-HUB-ACCESS'; - case Module.openedVisits: - return 'FRE-HUB-OPENED-VISITS'; - case Module.vehicles: - return 'FRE-HUB-VEHICLES'; - case Module.residents: - return 'FRE-HUB-RESIDENTS'; - case Module.pets: - return 'FRE-HUB-PETS'; - case Module.orders: - return 'FRE-HUB-ORDERS'; - case Module.completeSchedule: - return 'FRE-HUB-COMPLETE-SCHEDULE'; - case Module.providerSchedule: - return 'FRE-HUB-AGE-PROV-PRESTADOR'; - case Module.deliverySchedule: - return 'FRE-HUB-AGE-PROV-DELIVERY'; - case Module.aboutProperty: - return 'FRE-HUB-PROPERTY'; - case Module.fastPass: - return 'FRE-HUB-FASTPASS'; - case Module.visitors: - return 'FRE-HUB-VISITORS'; - case Module.qrCode: - return 'FRE-HUB-QRCODE'; - case Module.peopleOnTheProperty: - return 'FRE-HUB-PEOPLE'; - case Module.petsHistory: - return 'FRE-HUB-PETS-HISTORY'; - default: - return ''; - } - } - - @override - String get name { - switch (this) { - case Module.messages: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Mensagens', - enText: 'Messages History', - ); - case Module.liberations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Liberações', - enText: 'Liberations History', - ); - case Module.reservations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Reservas', - enText: 'Reservations', - ); - case Module.access: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Acessos', - enText: 'Access History', - ); - case Module.openedVisits: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Visitas em Aberto', - enText: 'Opened Visits', - ); - case Module.vehicles: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Veículos', - enText: 'Vehicles', - ); - case Module.residents: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Moradores', - enText: 'Residents', - ); - case Module.pets: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case Module.petsHistory: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case Module.peopleOnTheProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pessoas na Propriedade', - enText: 'People on the Property', - ); - case Module.orders: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Minhas Encomendas', - enText: 'My Orders', - ); - case Module.completeSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agenda Completa', - enText: 'Complete Schedule', - ); - case Module.providerSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Prestadores', - enText: 'Schedule Providers', - ); - case Module.deliverySchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Delivery', - enText: 'Schedule Delivery', - ); - case Module.fastPass: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Fast Pass', - enText: 'Fast Pass', - ); - case Module.qrCode: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'QRCode de Acesso', - enText: 'Access QRCode', - ); - case Module.visitors: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Cadastrar Visitantes', - enText: 'Register Visitors', - ); - case Module.aboutProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sobre a Propriedade', - enText: 'About the Property', - ); - case Module.settings: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Configurações', - enText: 'Settings', - ); - case Module.logout: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sair', - enText: 'Logout', - ); - } - } - - @override - IconData get icon { - switch (this) { - case Module.messages: - return Icons.chat_outlined; - case Module.liberations: - return Icons.how_to_reg_outlined; - case Module.reservations: - return Icons.event_available; - case Module.access: - return Icons.transfer_within_a_station_outlined; - case Module.openedVisits: - return Icons.perm_contact_calendar; - case Module.vehicles: - return Icons.directions_car; - case Module.residents: - return Icons.groups; - case Module.pets: - return Icons.pets; - case Module.petsHistory: - return Icons.pets; - case Module.peopleOnTheProperty: - return Icons.groups; - case Module.orders: - return Icons.inventory_2_outlined; - case Module.completeSchedule: - return Icons.event; - case Module.providerSchedule: - return Icons.engineering_outlined; - case Module.deliverySchedule: - return Icons.sports_motorsports_outlined; - case Module.fastPass: - return Icons.attach_email_outlined; - case Module.qrCode: - return Icons.qr_code; - case Module.visitors: - return Icons.person_add_alt_1_outlined; - case Module.aboutProperty: - return Icons.home; - case Module.settings: - return Icons.settings; - case Module.logout: - return Icons.logout; - } - } - - @override - String get route { - switch (this) { - case Module.messages: - return '/messageHistoryPage'; - case Module.liberations: - return '/liberationHistory'; - case Module.reservations: - return '/reservation'; - case Module.access: - return '/acessHistoryPage'; - case Module.openedVisits: - return '/visitsOnThePropertyPage'; - case Module.vehicles: - return '/vehiclesOnThePropertyPage'; - case Module.residents: - return '/residentsOnThePropertyPage'; - case Module.pets: - return '/petsPage'; - case Module.petsHistory: - return '/petsHistoryPage'; - case Module.peopleOnTheProperty: - return '/peopleOnThePropertyPage'; - case Module.orders: - return '/packageOrder'; - case Module.completeSchedule: - return '/scheduleCompleteVisitPage'; - case Module.providerSchedule: - return '/provisionalSchedule'; - case Module.aboutProperty: - return '/aboutProperty'; - case Module.deliverySchedule: - return '/deliverySchedule'; - case Module.fastPass: - return '/fastPassPage'; - case Module.qrCode: - return '/qrCodePage'; - case Module.visitors: - return '/registerVisitorPage'; - case Module.settings: - return '/preferencesSettings'; - case Module.logout: - return '/WelcomePage'; - default: - return ''; - } - } -} - -enum HomeMenuEntries implements BaseModule { - providerSchedule, - deliverySchedule, - fastPass, - completeSchedule, - orders, - reservations, - visitors, - qrCode, - pets, - access, - liberations, - messages, - aboutProperty, - peopleOnTheProperty, - settings; - - @override - String get value { - switch (this) { - case HomeMenuEntries.messages: - return 'FRE-HUB-MESSAGES'; - case HomeMenuEntries.liberations: - return 'FRE-HUB-LIBERATIONS'; - case HomeMenuEntries.reservations: - return 'FRE-HUB-RESERVATIONS'; - case HomeMenuEntries.access: - return 'FRE-HUB-ACCESS'; - case HomeMenuEntries.pets: - return 'FRE-HUB-PETS'; - case HomeMenuEntries.orders: - return 'FRE-HUB-ORDERS'; - case HomeMenuEntries.completeSchedule: - return 'FRE-HUB-COMPLETE-SCHEDULE'; - case HomeMenuEntries.providerSchedule: - return 'FRE-HUB-AGE-PROV-PRESTADOR'; - case HomeMenuEntries.deliverySchedule: - return 'FRE-HUB-AGE-PROV-DELIVERY'; - case HomeMenuEntries.aboutProperty: - return 'FRE-HUB-PROPERTY'; - case HomeMenuEntries.fastPass: - return 'FRE-HUB-FASTPASS'; - case HomeMenuEntries.visitors: - return 'FRE-HUB-VISITORS'; - case HomeMenuEntries.qrCode: - return 'FRE-HUB-QRCODE'; - case HomeMenuEntries.peopleOnTheProperty: - return 'FRE-HUB-PEOPLE'; - default: - return ''; - } - } - - @override - String get name { - switch (this) { - case HomeMenuEntries.messages: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Mensagens', - enText: 'Messages History', - ); - case HomeMenuEntries.liberations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Liberações', - enText: 'Liberations History', - ); - case HomeMenuEntries.reservations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Reservas', - enText: 'Reservations', - ); - case HomeMenuEntries.access: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Acessos', - enText: 'Access History', - ); - case HomeMenuEntries.pets: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case HomeMenuEntries.peopleOnTheProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pessoas na Propriedade', - enText: 'People on the Property', - ); - case HomeMenuEntries.orders: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Minhas Encomendas', - enText: 'My Orders', - ); - case HomeMenuEntries.completeSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agenda Completa', - enText: 'Complete Schedule', - ); - case HomeMenuEntries.providerSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Prestadores', - enText: 'Schedule Providers', - ); - case HomeMenuEntries.deliverySchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Delivery', - enText: 'Schedule Delivery', - ); - case HomeMenuEntries.fastPass: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Fast Pass', - enText: 'Fast Pass', - ); - case HomeMenuEntries.qrCode: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'QRCode de Acesso', - enText: 'Access QRCode', - ); - case HomeMenuEntries.visitors: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Cadastrar Visitantes', - enText: 'Register Visitors', - ); - case HomeMenuEntries.aboutProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sobre a Propriedade', - enText: 'About the Property', - ); - case HomeMenuEntries.settings: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Configurações', - enText: 'Settings', - ); - } - } - - @override - IconData get icon { - switch (this) { - case HomeMenuEntries.messages: - return Icons.chat_outlined; - case HomeMenuEntries.liberations: - return Icons.how_to_reg_outlined; - case HomeMenuEntries.reservations: - return Icons.event_available; - case HomeMenuEntries.access: - return Icons.transfer_within_a_station_outlined; - case HomeMenuEntries.pets: - return Icons.pets; - case HomeMenuEntries.peopleOnTheProperty: - return Icons.groups; - case HomeMenuEntries.orders: - return Icons.inventory_2_outlined; - case HomeMenuEntries.completeSchedule: - return Icons.event; - case HomeMenuEntries.providerSchedule: - return Icons.engineering_outlined; - case HomeMenuEntries.deliverySchedule: - return Icons.sports_motorsports_outlined; - case HomeMenuEntries.fastPass: - return Icons.attach_email_outlined; - case HomeMenuEntries.qrCode: - return Icons.qr_code; - case HomeMenuEntries.visitors: - return Icons.person_add_alt_1_outlined; - case HomeMenuEntries.aboutProperty: - return Icons.home; - case HomeMenuEntries.settings: - return Icons.settings; - } - } - - @override - String get route { - switch (this) { - case HomeMenuEntries.messages: - return '/messageHistoryPage'; - case HomeMenuEntries.liberations: - return '/liberationHistory'; - case HomeMenuEntries.reservations: - return '/reservation'; - case HomeMenuEntries.access: - return '/acessHistoryPage'; - case HomeMenuEntries.pets: - return '/petsPage'; - case HomeMenuEntries.peopleOnTheProperty: - return '/peopleOnThePropertyPage'; - case HomeMenuEntries.orders: - return '/packageOrder'; - case HomeMenuEntries.completeSchedule: - return '/scheduleCompleteVisitPage'; - case HomeMenuEntries.providerSchedule: - return '/provisionalSchedule'; - case HomeMenuEntries.aboutProperty: - return '/aboutProperty'; - case HomeMenuEntries.deliverySchedule: - return '/deliverySchedule'; - case HomeMenuEntries.fastPass: - return '/fastPassPage'; - case HomeMenuEntries.qrCode: - return '/qrCodePage'; - case HomeMenuEntries.visitors: - return '/registerVisitorPage'; - case HomeMenuEntries.settings: - return '/preferencesSettings'; - default: - return ''; - } - } -} - -enum DrawerMenuEntries implements BaseModule { - providerSchedule, - deliverySchedule, - fastPass, - completeSchedule, - orders, - reservations, - visitors, - qrCode, - pets, - access, - liberations, - messages, - aboutProperty, - peopleOnTheProperty, - settings, - logout; - - @override - String get value { - switch (this) { - case DrawerMenuEntries.messages: - return 'FRE-HUB-MESSAGES'; - case DrawerMenuEntries.liberations: - return 'FRE-HUB-LIBERATIONS'; - case DrawerMenuEntries.reservations: - return 'FRE-HUB-RESERVATIONS'; - case DrawerMenuEntries.access: - return 'FRE-HUB-ACCESS'; - case DrawerMenuEntries.pets: - return 'FRE-HUB-PETS'; - case DrawerMenuEntries.orders: - return 'FRE-HUB-ORDERS'; - case DrawerMenuEntries.completeSchedule: - return 'FRE-HUB-COMPLETE-SCHEDULE'; - case DrawerMenuEntries.providerSchedule: - return 'FRE-HUB-AGE-PROV-PRESTADOR'; - case DrawerMenuEntries.deliverySchedule: - return 'FRE-HUB-AGE-PROV-DELIVERY'; - case DrawerMenuEntries.aboutProperty: - return 'FRE-HUB-PROPERTY'; - case DrawerMenuEntries.fastPass: - return 'FRE-HUB-FASTPASS'; - case DrawerMenuEntries.visitors: - return 'FRE-HUB-VISITORS'; - case DrawerMenuEntries.qrCode: - return 'FRE-HUB-QRCODE'; - case DrawerMenuEntries.peopleOnTheProperty: - return 'FRE-HUB-PEOPLE'; - default: - return ''; - } - } - - @override - String get name { - switch (this) { - case DrawerMenuEntries.messages: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Mensagens', - enText: 'Messages History', - ); - case DrawerMenuEntries.liberations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Liberações', - enText: 'Liberations History', - ); - case DrawerMenuEntries.reservations: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Reservas', - enText: 'Reservations', - ); - case DrawerMenuEntries.access: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Consultar Acessos', - enText: 'Access History', - ); - case DrawerMenuEntries.pets: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pets', - enText: 'Pets', - ); - case DrawerMenuEntries.peopleOnTheProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Pessoas na Propriedade', - enText: 'People on the Property', - ); - case DrawerMenuEntries.orders: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Minhas Encomendas', - enText: 'My Orders', - ); - case DrawerMenuEntries.completeSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agenda Completa', - enText: 'Complete Schedule', - ); - case DrawerMenuEntries.providerSchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Prestadores', - enText: 'Schedule Providers', - ); - case DrawerMenuEntries.deliverySchedule: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Agendar Delivery', - enText: 'Schedule Delivery', - ); - case DrawerMenuEntries.fastPass: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Fast Pass', - enText: 'Fast Pass', - ); - case DrawerMenuEntries.qrCode: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'QRCode de Acesso', - enText: 'Access QRCode', - ); - case DrawerMenuEntries.visitors: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Cadastrar Visitantes', - enText: 'Register Visitors', - ); - case DrawerMenuEntries.aboutProperty: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sobre a Propriedade', - enText: 'About the Property', - ); - case DrawerMenuEntries.settings: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Configurações', - enText: 'Settings', - ); - case DrawerMenuEntries.logout: - return FFLocalizations.of(navigatorKey.currentContext!).getVariableText( - ptText: 'Sair', - enText: 'Logout', - ); - } - } - - @override - IconData get icon { - switch (this) { - case DrawerMenuEntries.messages: - return Icons.chat_outlined; - case DrawerMenuEntries.liberations: - return Icons.how_to_reg_outlined; - case DrawerMenuEntries.reservations: - return Icons.event_available; - case DrawerMenuEntries.access: - return Icons.transfer_within_a_station_outlined; - case DrawerMenuEntries.pets: - return Icons.pets; - case DrawerMenuEntries.peopleOnTheProperty: - return Icons.groups; - case DrawerMenuEntries.orders: - return Icons.inventory_2_outlined; - case DrawerMenuEntries.completeSchedule: - return Icons.event; - case DrawerMenuEntries.providerSchedule: - return Icons.engineering_outlined; - case DrawerMenuEntries.deliverySchedule: - return Icons.sports_motorsports_outlined; - case DrawerMenuEntries.fastPass: - return Icons.attach_email_outlined; - case DrawerMenuEntries.qrCode: - return Icons.qr_code; - case DrawerMenuEntries.visitors: - return Icons.person_add_alt_1_outlined; - case DrawerMenuEntries.aboutProperty: - return Icons.home; - case DrawerMenuEntries.settings: - return Icons.settings; - case DrawerMenuEntries.logout: - return Icons.exit_to_app; - } - } - - @override - String get route { - switch (this) { - case DrawerMenuEntries.messages: - return '/messageHistoryPage'; - case DrawerMenuEntries.liberations: - return '/liberationHistory'; - case DrawerMenuEntries.reservations: - return '/reservation'; - case DrawerMenuEntries.access: - return '/acessHistoryPage'; - case DrawerMenuEntries.pets: - return '/petsPage'; - case DrawerMenuEntries.peopleOnTheProperty: - return '/peopleOnThePropertyPage'; - case DrawerMenuEntries.orders: - return '/packageOrder'; - case DrawerMenuEntries.completeSchedule: - return '/scheduleCompleteVisitPage'; - case DrawerMenuEntries.providerSchedule: - return '/provisionalSchedule'; - case DrawerMenuEntries.aboutProperty: - return '/aboutProperty'; - case DrawerMenuEntries.deliverySchedule: - return '/deliverySchedule'; - case DrawerMenuEntries.fastPass: - return '/fastPassPage'; - case DrawerMenuEntries.qrCode: - return '/qrCodePage'; - case DrawerMenuEntries.visitors: - return '/registerVisitorPage'; - case DrawerMenuEntries.settings: - return '/preferencesSettings'; - case DrawerMenuEntries.logout: - return '/WelcomePage'; - default: - return ''; - } - } -}