From eac5d5c833fe52fb788ed493ae1da6cf098897e0 Mon Sep 17 00:00:00 2001 From: Suriya Date: Fri, 30 Jan 2026 22:56:08 +0530 Subject: [PATCH] fix: resolve compilation errors in staff features after dev merge --- .../plugins/GeneratedPluginRegistrant.java | 10 ++ .../ios/Runner/GeneratedPluginRegistrant.m | 14 ++ .../Flutter/GeneratedPluginRegistrant.swift | 2 + .../flutter/generated_plugin_registrant.cc | 6 + .../windows/flutter/generated_plugins.cmake | 2 + .../staff/availability/all_errors.txt | Bin 0 -> 16218 bytes .../features/staff/availability/errors.txt | Bin 0 -> 22652 bytes .../availability_repository_impl.dart | 45 +++--- .../domain/entities/availability_slot.dart | 32 ---- .../src/domain/entities/day_availability.dart | 29 ---- .../repositories/availability_repository.dart | 2 +- .../usecases/apply_quick_set_usecase.dart | 2 +- .../get_weekly_availability_usecase.dart | 2 +- .../update_day_availability_usecase.dart | 2 +- .../presentation/blocs/availability_bloc.dart | 2 +- .../blocs/availability_event.dart | 2 +- .../blocs/availability_state.dart | 2 +- .../features/staff/clock_in/pubspec.yaml | 2 + apps/mobile/pubspec.lock | 152 +++++++++++------- 19 files changed, 161 insertions(+), 147 deletions(-) create mode 100644 apps/mobile/packages/features/staff/availability/all_errors.txt create mode 100644 apps/mobile/packages/features/staff/availability/errors.txt delete mode 100644 apps/mobile/packages/features/staff/availability/lib/src/domain/entities/availability_slot.dart delete mode 100644 apps/mobile/packages/features/staff/availability/lib/src/domain/entities/day_availability.dart diff --git a/apps/mobile/apps/staff/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/apps/mobile/apps/staff/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java index 899a1487..6614ffb4 100644 --- a/apps/mobile/apps/staff/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java +++ b/apps/mobile/apps/staff/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java @@ -30,11 +30,21 @@ public final class GeneratedPluginRegistrant { } catch (Exception e) { Log.e(TAG, "Error registering plugin firebase_core, io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin", e); } + try { + flutterEngine.getPlugins().add(new com.baseflow.geolocator.GeolocatorPlugin()); + } catch (Exception e) { + Log.e(TAG, "Error registering plugin geolocator_android, com.baseflow.geolocator.GeolocatorPlugin", e); + } try { flutterEngine.getPlugins().add(new io.flutter.plugins.pathprovider.PathProviderPlugin()); } catch (Exception e) { Log.e(TAG, "Error registering plugin path_provider_android, io.flutter.plugins.pathprovider.PathProviderPlugin", e); } + try { + flutterEngine.getPlugins().add(new com.baseflow.permissionhandler.PermissionHandlerPlugin()); + } catch (Exception e) { + Log.e(TAG, "Error registering plugin permission_handler_android, com.baseflow.permissionhandler.PermissionHandlerPlugin", e); + } try { flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin()); } catch (Exception e) { diff --git a/apps/mobile/apps/staff/ios/Runner/GeneratedPluginRegistrant.m b/apps/mobile/apps/staff/ios/Runner/GeneratedPluginRegistrant.m index bde6e93e..5f7e015d 100644 --- a/apps/mobile/apps/staff/ios/Runner/GeneratedPluginRegistrant.m +++ b/apps/mobile/apps/staff/ios/Runner/GeneratedPluginRegistrant.m @@ -24,6 +24,18 @@ @import firebase_core; #endif +#if __has_include() +#import +#else +@import geolocator_apple; +#endif + +#if __has_include() +#import +#else +@import permission_handler_apple; +#endif + #if __has_include() #import #else @@ -36,6 +48,8 @@ [FLTFirebaseAppCheckPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseAppCheckPlugin"]]; [FLTFirebaseAuthPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseAuthPlugin"]]; [FLTFirebaseCorePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseCorePlugin"]]; + [GeolocatorPlugin registerWithRegistrar:[registry registrarForPlugin:@"GeolocatorPlugin"]]; + [PermissionHandlerPlugin registerWithRegistrar:[registry registrarForPlugin:@"PermissionHandlerPlugin"]]; [SharedPreferencesPlugin registerWithRegistrar:[registry registrarForPlugin:@"SharedPreferencesPlugin"]]; } diff --git a/apps/mobile/apps/staff/macos/Flutter/GeneratedPluginRegistrant.swift b/apps/mobile/apps/staff/macos/Flutter/GeneratedPluginRegistrant.swift index 8bd29968..2da91454 100644 --- a/apps/mobile/apps/staff/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/apps/mobile/apps/staff/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,11 +8,13 @@ import Foundation import firebase_app_check import firebase_auth import firebase_core +import geolocator_apple import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FLTFirebaseAppCheckPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAppCheckPlugin")) FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/apps/mobile/apps/staff/windows/flutter/generated_plugin_registrant.cc b/apps/mobile/apps/staff/windows/flutter/generated_plugin_registrant.cc index d141b74f..228d2240 100644 --- a/apps/mobile/apps/staff/windows/flutter/generated_plugin_registrant.cc +++ b/apps/mobile/apps/staff/windows/flutter/generated_plugin_registrant.cc @@ -8,10 +8,16 @@ #include #include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FirebaseAuthPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); FirebaseCorePluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); + GeolocatorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("GeolocatorWindows")); + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); } diff --git a/apps/mobile/apps/staff/windows/flutter/generated_plugins.cmake b/apps/mobile/apps/staff/windows/flutter/generated_plugins.cmake index 29944d5b..22690294 100644 --- a/apps/mobile/apps/staff/windows/flutter/generated_plugins.cmake +++ b/apps/mobile/apps/staff/windows/flutter/generated_plugins.cmake @@ -5,6 +5,8 @@ list(APPEND FLUTTER_PLUGIN_LIST firebase_auth firebase_core + geolocator_windows + permission_handler_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/apps/mobile/packages/features/staff/availability/all_errors.txt b/apps/mobile/packages/features/staff/availability/all_errors.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab87b562dd29d144bd7b4cb82ee02d3f95cfec8a GIT binary patch literal 16218 zcmeI3ZBHXN5Xb$xQolo96;3Syk^q59mC*GnA)Q*a$F(m?6(u2oh>)N>z@;zx(cAui zo;bVVHgJKk=~dQhvk$R%Jb%xOXU6tFe;>P^tGlk7xIbM-_ZP09=Ubf}y{)^3zjoY6 zC5rwisKn}yFWnc8^G>t|q959@B^vMbJa$9Za_4&LxNCRg`YJVYM|$4SQ{6S)m3}W& z=E${GW}v%<-cYNidUchq>#nJqJsmCGjokJUWsCkRP~8w!+SL`EhC36DfxdP&qjKh{ z)5f7njC@-=qBvBUMVQty>P*yL?b*&Q%7SK@ytO3g7GL&gu^IcD{$!i(WZ} zUO=}cOj_a>85xNyWMm%A;X>&=og##;bS0;tWheyfx_WNDrR~ zqJ5{jL%z|uk?z5{Bg}ic8|gmLgLO(^#Z`pjo(}8Fc_~czt$oDrA{~D|ib&$nTZW#l z|6Sw`gxszxuN=8^@!a%sgANBNMssVDsJf8(ekxO^k|^Z;RC39?iTg=b;5WTN3hzrC zxVCk2?TLa};dM&iuG<%WptzrjV#{k*(CEh`?s44S2~BjCQ4!4E>HAo>H+nM`lAi-& z2g2&el@`d|ry;iNID944`Wn$0fBRkr!EjqLmi0av;lMLXzHYn>qTBP9`pnx>Z0y4$ zEEbni2_+DD&R80(7A@;|TZhdqNM9K5yW+bb?$Jf0G04sF0>7%Dw)G`ZRcHa8Jus1tUOSQ@FjaM5ZvwRLT$i}mvl|y~kJPdpf zyc7I{p~lkt2$rXt*BZLR8wGPb z2>gh)mpk;pyicr2U+-!v!~IzANB$esTI9F=-!R03*wtY@7cqP&HVD$1)==cI8ZlH% z70`K#E>|Ui*tvXlc|)Tjk>RC0FIwO9Pm`G^L2T91KNek?Vjw~Pa=~f6|Yfq?G zBI-F>n6i9-P%lT+b49%>zXjBHrc|Sa$-}}_y{}lF<&7iiFOPafV<}mevJUf{BI+-X z`kpKc*};lCjHu`4ukQ(S{Pl`P)hO$EMM--aOU;K_rG+6LC1-i7sOq)PRFRzvS?<-w zrfFJaQ^}_{QdBKVNS>^v*!5hoY(Y8rOSO(@lzb%7G5I$lU1pDYpJiu>a@+npWEyWJ zuSK1^`rVP1l>D_gjehfsbBVXew35whmpLxuPdY-7;$Q)KLWa;U0IUVMt zY&8eD^PzOy)*)CXD9pq&ciwkzz16Vw8_C=QbH-Q?tV@1+e<1lg^m-p8kU8{^Ibrsw zugn&C8?0cMQ%JXZ@ti@-cs-W!I*=uxA7U1Oaq}fDLCs6|oyOT@B@^>MScGIH$@48j zl=&=~&qlxGeUF&!U61VVPa~$ViYm(f%VY<#Wxwjtk9L0@vL9ymVitH^=v&rcb$)mp zbw72~Ehz^dv%-0-C&;qw+sla`Iiq0c4k&T_gjqn6joy{!IV{hs+bVQpoMZ}W?9L7#OtjJP(^ zMD+7RpUlpxv&zg~*zN+G;b2b)t6zyAne|})({^2QWiQzLjL3X$m;D%R9W`AS?eb0M zX^&>BDHd5(W+;;OVG*o-tj6VJ7sOaI7|i4{1IymsiY&J6Zyf4BW?Zn(r%|4)nR43?S?w{J-+#@K0ne|lf8HakD<|K zE&K285BH6(zliR&Z$nFa^geh^xKTY@&3>P|AJlX7*Tns-JNhnZ@tau>p7_~8;|?^E R)e+aCW$W^j(nf>de*txLLjeE) literal 0 HcmV?d00001 diff --git a/apps/mobile/packages/features/staff/availability/errors.txt b/apps/mobile/packages/features/staff/availability/errors.txt new file mode 100644 index 0000000000000000000000000000000000000000..0559cb8b02426a077fa713d8de5f6191ff879344 GIT binary patch literal 22652 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 Z&Bx_vSe?RuN6CLfizgw1Ke};w{|hIAqc8vf literal 0 HcmV?d00001 diff --git a/apps/mobile/packages/features/staff/availability/lib/src/data/repositories/availability_repository_impl.dart b/apps/mobile/packages/features/staff/availability/lib/src/data/repositories/availability_repository_impl.dart index fd16175c..a9972bf9 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/data/repositories/availability_repository_impl.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/data/repositories/availability_repository_impl.dart @@ -1,9 +1,8 @@ -import 'package:krow_data_connect/krow_data_connect.dart'; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/src/session/staff_session_store.dart'; import '../../domain/repositories/availability_repository.dart'; -import '../../domain/entities/day_availability.dart'; -import '../../domain/entities/availability_slot.dart' as local_slot; +import 'package:krow_domain/krow_domain.dart'; /// Implementation of [AvailabilityRepository]. @@ -41,10 +40,10 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { DateTime start, DateTime end) async { // 1. Fetch Weekly Template from Backend - Map> weeklyTemplate = {}; + Map> weeklyTemplate = {}; try { - final response = await ExampleConnector.instance + final response = await dc.ExampleConnector.instance .getStaffAvailabilityStatsByStaffId(staffId: _currentStaffId) .execute(); @@ -62,7 +61,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { // The snippet showed `listStaffAvailabilityStats`. // Let's try to infer from the code I saw earlier. - // `ExampleConnector.instance.listStaffAvailabilitiesByStaffId` was used. + // `dc.ExampleConnector.instance.listStaffAvailabilitiesByStaffId` was used. // If that produced an error "Method not defined", I should fix it. // But the error log didn't show "Method not defined" for `listStaffAvailabilitiesByStaffId`. // It showed mismatch in return types of `getAvailability`. @@ -92,7 +91,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { // final slotEnum = _mapStringToSlotEnum(def['id']!); // final isSlotAvailable = daySlotsMap[slotEnum] ?? false; // Default false if not set - return local_slot.AvailabilitySlot( + return AvailabilitySlot( id: def['id']!, label: def['label']!, timeRange: def['timeRange']!, @@ -141,7 +140,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { } final slots = _slotDefinitions.map((def) { - return local_slot.AvailabilitySlot( + return AvailabilitySlot( id: def['id']!, label: def['label']!, timeRange: def['timeRange']!, @@ -160,25 +159,25 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { // --- Helpers --- - DayOfWeek _mapDateTimeToDayOfWeek(int weekday) { - switch (weekday) { - case DateTime.monday: return DayOfWeek.MONDAY; - case DateTime.tuesday: return DayOfWeek.TUESDAY; - case DateTime.wednesday: return DayOfWeek.WEDNESDAY; - case DateTime.thursday: return DayOfWeek.THURSDAY; - case DateTime.friday: return DayOfWeek.FRIDAY; - case DateTime.saturday: return DayOfWeek.SATURDAY; - case DateTime.sunday: return DayOfWeek.SUNDAY; - default: return DayOfWeek.MONDAY; + dc.DayOfWeek _mapDateTimeToDayOfWeek(DateTime date) { + switch (date.weekday) { + case DateTime.monday: return dc.DayOfWeek.MONDAY; + case DateTime.tuesday: return dc.DayOfWeek.TUESDAY; + case DateTime.wednesday: return dc.DayOfWeek.WEDNESDAY; + case DateTime.thursday: return dc.DayOfWeek.THURSDAY; + case DateTime.friday: return dc.DayOfWeek.FRIDAY; + case DateTime.saturday: return dc.DayOfWeek.SATURDAY; + case DateTime.sunday: return dc.DayOfWeek.SUNDAY; + default: return dc.DayOfWeek.MONDAY; } } - AvailabilitySlot _mapStringToSlotEnum(String id) { + dc.AvailabilitySlot _mapStringToSlotEnum(String id) { switch (id.toLowerCase()) { - case 'morning': return AvailabilitySlot.MORNING; - case 'afternoon': return AvailabilitySlot.AFTERNOON; - case 'evening': return AvailabilitySlot.EVENING; - default: return AvailabilitySlot.MORNING; + case 'morning': return dc.AvailabilitySlot.MORNING; + case 'afternoon': return dc.AvailabilitySlot.AFTERNOON; + case 'evening': return dc.AvailabilitySlot.EVENING; + default: return dc.AvailabilitySlot.MORNING; } } } diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/availability_slot.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/availability_slot.dart deleted file mode 100644 index 3a560d2a..00000000 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/availability_slot.dart +++ /dev/null @@ -1,32 +0,0 @@ -import 'package:equatable/equatable.dart'; - -class AvailabilitySlot extends Equatable { - final String id; - final String label; - final String timeRange; - final bool isAvailable; - - const AvailabilitySlot({ - required this.id, - required this.label, - required this.timeRange, - this.isAvailable = false, - }); - - AvailabilitySlot copyWith({ - String? id, - String? label, - String? timeRange, - bool? isAvailable, - }) { - return AvailabilitySlot( - id: id ?? this.id, - label: label ?? this.label, - timeRange: timeRange ?? this.timeRange, - isAvailable: isAvailable ?? this.isAvailable, - ); - } - - @override - List get props => [id, label, timeRange, isAvailable]; -} diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/day_availability.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/day_availability.dart deleted file mode 100644 index 6a1c7edb..00000000 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/entities/day_availability.dart +++ /dev/null @@ -1,29 +0,0 @@ -import 'package:equatable/equatable.dart'; -import 'availability_slot.dart'; - -class DayAvailability extends Equatable { - final DateTime date; - final bool isAvailable; - final List slots; - - const DayAvailability({ - required this.date, - this.isAvailable = false, - this.slots = const [], - }); - - DayAvailability copyWith({ - DateTime? date, - bool? isAvailable, - List? slots, - }) { - return DayAvailability( - date: date ?? this.date, - isAvailable: isAvailable ?? this.isAvailable, - slots: slots ?? this.slots, - ); - } - - @override - List get props => [date, isAvailable, slots]; -} diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/repositories/availability_repository.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/repositories/availability_repository.dart index 19edddb6..3678be8d 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/repositories/availability_repository.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/repositories/availability_repository.dart @@ -1,4 +1,4 @@ -import '../entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; abstract class AvailabilityRepository { /// Fetches availability for a given date range (usually a week). diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/apply_quick_set_usecase.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/apply_quick_set_usecase.dart index 771b1bc0..6ff4735e 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/apply_quick_set_usecase.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/apply_quick_set_usecase.dart @@ -1,5 +1,5 @@ import 'package:krow_core/core.dart'; -import '../entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/availability_repository.dart'; /// Use case to apply a quick-set availability pattern (e.g., "Weekdays", "All Week") to a week. diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/get_weekly_availability_usecase.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/get_weekly_availability_usecase.dart index dbd9073d..b9b03a28 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/get_weekly_availability_usecase.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/get_weekly_availability_usecase.dart @@ -1,5 +1,5 @@ import 'package:krow_core/core.dart'; -import '../entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/availability_repository.dart'; /// Use case to fetch availability for a specific week. diff --git a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/update_day_availability_usecase.dart b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/update_day_availability_usecase.dart index 5a8495c9..a3e32543 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/update_day_availability_usecase.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/update_day_availability_usecase.dart @@ -1,5 +1,5 @@ import 'package:krow_core/core.dart'; -import '../entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/availability_repository.dart'; /// Use case to update the availability configuration for a specific day. diff --git a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_bloc.dart b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_bloc.dart index c5b66e0c..4073db48 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_bloc.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_bloc.dart @@ -1,5 +1,5 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../domain/entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../../domain/usecases/apply_quick_set_usecase.dart'; import '../../domain/usecases/get_weekly_availability_usecase.dart'; import '../../domain/usecases/update_day_availability_usecase.dart'; diff --git a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_event.dart b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_event.dart index 202aeca1..e6074504 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_event.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_event.dart @@ -1,5 +1,5 @@ import 'package:equatable/equatable.dart'; -import '../../domain/entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; abstract class AvailabilityEvent extends Equatable { const AvailabilityEvent(); diff --git a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_state.dart b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_state.dart index 53cad85a..5c8b52ba 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_state.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_state.dart @@ -1,5 +1,5 @@ import 'package:equatable/equatable.dart'; -import '../../domain/entities/day_availability.dart'; +import 'package:krow_domain/krow_domain.dart'; abstract class AvailabilityState extends Equatable { const AvailabilityState(); diff --git a/apps/mobile/packages/features/staff/clock_in/pubspec.yaml b/apps/mobile/packages/features/staff/clock_in/pubspec.yaml index 7b44c8f8..624e7ed3 100644 --- a/apps/mobile/packages/features/staff/clock_in/pubspec.yaml +++ b/apps/mobile/packages/features/staff/clock_in/pubspec.yaml @@ -29,3 +29,5 @@ dependencies: krow_core: path: ../../../core firebase_data_connect: ^0.2.2+2 + geolocator: ^10.1.0 + permission_handler: ^11.0.1 diff --git a/apps/mobile/pubspec.lock b/apps/mobile/pubspec.lock index e3feae3b..84255f6c 100644 --- a/apps/mobile/pubspec.lock +++ b/apps/mobile/pubspec.lock @@ -493,6 +493,54 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + geolocator: + dependency: transitive + description: + name: geolocator + sha256: f4efb8d3c4cdcad2e226af9661eb1a0dd38c71a9494b22526f9da80ab79520e5 + url: "https://pub.dev" + source: hosted + version: "10.1.1" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + sha256: fcb1760a50d7500deca37c9a666785c047139b5f9ee15aa5469fae7dbbe3170d + url: "https://pub.dev" + source: hosted + version: "4.6.2" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22 + url: "https://pub.dev" + source: hosted + version: "2.3.13" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67" + url: "https://pub.dev" + source: hosted + version: "4.2.6" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + sha256: "102e7da05b48ca6bf0a5bda0010f886b171d1a08059f01bfe02addd0175ebece" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" + url: "https://pub.dev" + source: hosted + version: "0.2.5" get_it: dependency: transitive description: @@ -853,6 +901,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + permission_handler: + dependency: transitive + description: + name: permission_handler + sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849" + url: "https://pub.dev" + source: hosted + version: "11.4.0" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc + url: "https://pub.dev" + source: hosted + version: "12.1.0" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 + url: "https://pub.dev" + source: hosted + version: "9.4.7" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" + url: "https://pub.dev" + source: hosted + version: "0.1.3+5" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 + url: "https://pub.dev" + source: hosted + version: "4.3.0" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.dev" + source: hosted + version: "0.2.1" petitparser: dependency: transitive description: @@ -1114,62 +1210,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.12.1" - staff_attire: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/onboarding/attire" - relative: true - source: path - version: "0.0.1" - staff_bank_account: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/finances/staff_bank_account" - relative: true - source: path - version: "0.0.1" - staff_certificates: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/compliance/certificates" - relative: true - source: path - version: "0.0.1" - staff_documents: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/compliance/documents" - relative: true - source: path - version: "0.0.1" - staff_payments: - dependency: transitive - description: - path: "packages/features/staff/payments" - relative: true - source: path - version: "0.0.1" - staff_shifts: - dependency: transitive - description: - path: "packages/features/staff/shifts" - relative: true - source: path - version: "0.0.1" - staff_tax_forms: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/compliance/tax_forms" - relative: true - source: path - version: "0.0.1" - staff_time_card: - dependency: transitive - description: - path: "packages/features/staff/profile_sections/finances/time_card" - relative: true - source: path - version: "0.0.1" stream_channel: dependency: transitive description: