diff --git a/BLOCKERS.md b/BLOCKERS.md index 8cf36426..8c5ceb33 100644 --- a/BLOCKERS.md +++ b/BLOCKERS.md @@ -22,6 +22,11 @@ ### Why this task is blocked: - Although this page existed in the prototype, it was not connected to any other pages. In other words, there was no way to navigate to it from anywhere in the application. Therefore, this issue can be closed, as the page is not required in the main application. +### Github issue +- https://github.com/Oloodi/krow-workforce/issues/262 +### Why this task is blocked: +- Although this page existed in the prototype, it was not connected to any other pages. In other words, there was no way to navigate to it from anywhere in the application. Therefore, this issue can be closed, as the page is not required in the main application. + # Deviations ## App @@ -31,3 +36,14 @@ - https://github.com/Oloodi/krow-workforce/issues/240 ### Deveations: - In the web prototype, when creating an order, position role rates are displayed based on the selected vendor. This behavior was missing in the mobile prototype. Therefore, we added a dropdown to select the vendor and display the corresponding role rates based on that selection. + +# Points to considerate in the future +- client APP: + - Billing need to download a pdf of their invoice. + - On app launch, check whether there is an active session. If a valid session exists, skip the auth flow and navigate directly to Home, loading business account. + - Add an expiration time (TTL) to the session (store expiresAt / expiryTimestamp) and invalidate/clear the session when it has expired. + - Rapid order need IA to work, I think we need also to add a form as the webpage. +- Staff APP: + - On app launch, check whether there is an active session. If a valid session exists, skip the auth flow and navigate directly to Home, loading Staff account. + - Add an expiration time (TTL) to the session (store expiresAt / expiryTimestamp) and invalidate/clear the session when it has expired. + - For staffs Skills = Roles? thinking in the future for the smart assigned that need to know the roles of staff to assign. \ No newline at end of file diff --git a/apps/mobile/apps/client/android/app/src/main/AndroidManifest.xml b/apps/mobile/apps/client/android/app/src/main/AndroidManifest.xml index 2b7a964a..5bf8f125 100644 --- a/apps/mobile/apps/client/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/apps/client/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:icon="@mipmap/launcher_icon"> CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - krowwithus_client + Krow With Us Client CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - krowwithus_client + Krow With Us Client CFBundlePackageType APPL CFBundleShortVersionString diff --git a/apps/mobile/apps/client/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/apps/mobile/apps/client/macos/Flutter/ephemeral/Flutter-Generated.xcconfig index a6a728c3..758a34eb 100644 --- a/apps/mobile/apps/client/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ b/apps/mobile/apps/client/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -1,11 +1,13 @@ // This is a generated file; do not edit or check into version control. -FLUTTER_ROOT=/Users/achinthaisuru/Documents/flutter -FLUTTER_APPLICATION_PATH=/Users/achinthaisuru/Documents/Github/krow-workforce/apps/mobile/apps/client +FLUTTER_ROOT=/Users/josesalazar/flutter +FLUTTER_APPLICATION_PATH=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/apps/client COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_TARGET=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/apps/client/lib/main.dart FLUTTER_BUILD_DIR=build FLUTTER_BUILD_NAME=1.0.0 FLUTTER_BUILD_NUMBER=1 +DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43 DART_OBFUSCATION=false TRACK_WIDGET_CREATION=true TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=.dart_tool/package_config.json +PACKAGE_CONFIG=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/.dart_tool/package_config.json diff --git a/apps/mobile/apps/client/macos/Flutter/ephemeral/flutter_export_environment.sh b/apps/mobile/apps/client/macos/Flutter/ephemeral/flutter_export_environment.sh index c97ab106..98894259 100755 --- a/apps/mobile/apps/client/macos/Flutter/ephemeral/flutter_export_environment.sh +++ b/apps/mobile/apps/client/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -1,12 +1,14 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/Users/achinthaisuru/Documents/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/achinthaisuru/Documents/Github/krow-workforce/apps/mobile/apps/client" +export "FLUTTER_ROOT=/Users/josesalazar/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/apps/client" export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_TARGET=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/apps/client/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" +export "DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" +export "PACKAGE_CONFIG=/Users/josesalazar/Documents/DEV/krow-workforce/apps/mobile/.dart_tool/package_config.json" diff --git a/apps/mobile/apps/client/macos/Podfile.lock b/apps/mobile/apps/client/macos/Podfile.lock new file mode 100644 index 00000000..319af0f0 --- /dev/null +++ b/apps/mobile/apps/client/macos/Podfile.lock @@ -0,0 +1,144 @@ +PODS: + - AppCheckCore (11.2.0): + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - PromisesObjC (~> 2.4) + - Firebase/AppCheck (12.8.0): + - Firebase/CoreOnly + - FirebaseAppCheck (~> 12.8.0) + - Firebase/Auth (12.8.0): + - Firebase/CoreOnly + - FirebaseAuth (~> 12.8.0) + - Firebase/CoreOnly (12.8.0): + - FirebaseCore (~> 12.8.0) + - firebase_app_check (0.4.1-4): + - Firebase/AppCheck (~> 12.8.0) + - Firebase/CoreOnly (~> 12.8.0) + - firebase_core + - FlutterMacOS + - firebase_auth (6.1.4): + - Firebase/Auth (~> 12.8.0) + - Firebase/CoreOnly (~> 12.8.0) + - firebase_core + - FlutterMacOS + - firebase_core (4.4.0): + - Firebase/CoreOnly (~> 12.8.0) + - FlutterMacOS + - FirebaseAppCheck (12.8.0): + - AppCheckCore (~> 11.0) + - FirebaseAppCheckInterop (~> 12.8.0) + - FirebaseCore (~> 12.8.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - FirebaseAppCheckInterop (12.8.0) + - FirebaseAuth (12.8.0): + - FirebaseAppCheckInterop (~> 12.8.0) + - FirebaseAuthInterop (~> 12.8.0) + - FirebaseCore (~> 12.8.0) + - FirebaseCoreExtension (~> 12.8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GTMSessionFetcher/Core (< 6.0, >= 3.4) + - RecaptchaInterop (~> 101.0) + - FirebaseAuthInterop (12.8.0) + - FirebaseCore (12.8.0): + - FirebaseCoreInternal (~> 12.8.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreExtension (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseCoreInternal (12.8.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FlutterMacOS (1.0.0) + - GoogleUtilities/AppDelegateSwizzler (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (8.1.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (8.1.0): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (8.1.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/Reachability (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMSessionFetcher/Core (5.0.0) + - PromisesObjC (2.4.0) + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - url_launcher_macos (0.0.1): + - FlutterMacOS + +DEPENDENCIES: + - firebase_app_check (from `Flutter/ephemeral/.symlinks/plugins/firebase_app_check/macos`) + - firebase_auth (from `Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos`) + - firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + +SPEC REPOS: + trunk: + - AppCheckCore + - Firebase + - FirebaseAppCheck + - FirebaseAppCheckInterop + - FirebaseAuth + - FirebaseAuthInterop + - FirebaseCore + - FirebaseCoreExtension + - FirebaseCoreInternal + - GoogleUtilities + - GTMSessionFetcher + - PromisesObjC + +EXTERNAL SOURCES: + firebase_app_check: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_app_check/macos + firebase_auth: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos + firebase_core: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_core/macos + FlutterMacOS: + :path: Flutter/ephemeral + shared_preferences_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + +SPEC CHECKSUMS: + AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f + Firebase: 9a58fdbc9d8655ed7b79a19cf9690bb007d3d46d + firebase_app_check: daf97f2d7044e28b68d23bc90e16751acee09732 + firebase_auth: 2c2438e41f061c03bd67dcb045dfd7bc843b5f52 + firebase_core: b1697fb64ff2b9ca16baaa821205f8b0c058e5d2 + FirebaseAppCheck: 11da425929a45c677d537adfff3520ccd57c1690 + FirebaseAppCheckInterop: ba3dc604a89815379e61ec2365101608d365cf7d + FirebaseAuth: 4c289b1a43f5955283244a55cf6bd616de344be5 + FirebaseAuthInterop: 95363fe96493cb4f106656666a0768b420cba090 + FirebaseCore: 0dbad74bda10b8fb9ca34ad8f375fb9dd3ebef7c + FirebaseCoreExtension: 6605938d51f765d8b18bfcafd2085276a252bee2 + FirebaseCoreInternal: fe5fa466aeb314787093a7dce9f0beeaad5a2a21 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + GTMSessionFetcher: 02d6e866e90bc236f48a703a041dfe43e6221a29 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + url_launcher_macos: f87a979182d112f911de6820aefddaf56ee9fbfd + +PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009 + +COCOAPODS: 1.16.2 diff --git a/apps/mobile/apps/client/macos/Runner.xcodeproj/project.pbxproj b/apps/mobile/apps/client/macos/Runner.xcodeproj/project.pbxproj index 613f0631..435b1acf 100644 --- a/apps/mobile/apps/client/macos/Runner.xcodeproj/project.pbxproj +++ b/apps/mobile/apps/client/macos/Runner.xcodeproj/project.pbxproj @@ -21,12 +21,14 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 0F4B527ECDE4F2B2C670C976 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7312AB7BD5F6DDA3D35C363 /* Pods_RunnerTests.framework */; }; 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 9DB7E3A540BFA4257A1E28F2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37067E162A87D9CF2CE23CE4 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -60,11 +62,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 3235450CFBBC51513BBB882F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* krow_client.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "krow_client.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* krow_client.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = krow_client.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -76,8 +79,15 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 37067E162A87D9CF2CE23CE4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 52BFCC2D82C3A8048E275DF3 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 54AD243DC5A5AF26694848AC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 8E21FE29E642AD2A9B5E46C9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + E0E474066D036677DFE3795B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + E7312AB7BD5F6DDA3D35C363 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FF54856CCC3D0D2B521DE3D2 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,6 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0F4B527ECDE4F2B2C670C976 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -92,6 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9DB7E3A540BFA4257A1E28F2 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -125,6 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + F114226C38150965DB02851D /* Pods */, ); sourceTree = ""; }; @@ -175,10 +188,26 @@ D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 37067E162A87D9CF2CE23CE4 /* Pods_Runner.framework */, + E7312AB7BD5F6DDA3D35C363 /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; }; + F114226C38150965DB02851D /* Pods */ = { + isa = PBXGroup; + children = ( + 8E21FE29E642AD2A9B5E46C9 /* Pods-Runner.debug.xcconfig */, + E0E474066D036677DFE3795B /* Pods-Runner.release.xcconfig */, + 3235450CFBBC51513BBB882F /* Pods-Runner.profile.xcconfig */, + FF54856CCC3D0D2B521DE3D2 /* Pods-RunnerTests.debug.xcconfig */, + 54AD243DC5A5AF26694848AC /* Pods-RunnerTests.release.xcconfig */, + 52BFCC2D82C3A8048E275DF3 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -186,6 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 1F1C8C8AD94BD1FFF3970EA2 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -204,11 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 13A75D879CCA17A67E27F169 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + D0A48B88512859849D0E92D6 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -291,6 +323,50 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 13A75D879CCA17A67E27F169 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 1F1C8C8AD94BD1FFF3970EA2 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -329,6 +405,23 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + D0A48B88512859849D0E92D6 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -380,6 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FF54856CCC3D0D2B521DE3D2 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -394,6 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 54AD243DC5A5AF26694848AC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -408,6 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 52BFCC2D82C3A8048E275DF3 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/apps/mobile/apps/client/macos/Runner.xcworkspace/contents.xcworkspacedata b/apps/mobile/apps/client/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a16..21a3cc14 100644 --- a/apps/mobile/apps/client/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/apps/mobile/apps/client/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/apps/mobile/apps/client/pubspec.yaml b/apps/mobile/apps/client/pubspec.yaml index f40ce950..4ce68023 100644 --- a/apps/mobile/apps/client/pubspec.yaml +++ b/apps/mobile/apps/client/pubspec.yaml @@ -1,7 +1,7 @@ name: krowwithus_client description: "Krow Client Application" -publish_to: 'none' -version: 1.0.0+1 +publish_to: "none" +version: 0.0.1-M3+1 resolution: workspace environment: @@ -45,6 +45,9 @@ dev_dependencies: sdk: flutter flutter_lints: ^6.0.0 rename: ^3.1.0 + flutter_launcher_icons: ^0.14.4 flutter: uses-material-design: true + assets: + - assets/logo.png diff --git a/apps/mobile/apps/staff/android/app/src/main/AndroidManifest.xml b/apps/mobile/apps/staff/android/app/src/main/AndroidManifest.xml index a80e0f85..cb199edb 100644 --- a/apps/mobile/apps/staff/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/apps/staff/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:icon="@mipmap/launcher_icon"> CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - krowwithus_staff + Krow With Us Staff CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - krowwithus_staff + Krow With Us Staff CFBundlePackageType APPL CFBundleShortVersionString diff --git a/apps/mobile/apps/staff/pubspec.yaml b/apps/mobile/apps/staff/pubspec.yaml index 4a968d93..0680cea3 100644 --- a/apps/mobile/apps/staff/pubspec.yaml +++ b/apps/mobile/apps/staff/pubspec.yaml @@ -1,7 +1,7 @@ name: krowwithus_staff description: "Krow Staff Application" publish_to: 'none' -version: 1.0.0+1 +version: 0.0.1-M3+1 resolution: workspace environment: @@ -29,6 +29,9 @@ dev_dependencies: sdk: flutter flutter_lints: ^6.0.0 rename: ^3.1.0 + flutter_launcher_icons: ^0.14.4 flutter: uses-material-design: true + assets: + - assets/logo.png diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/en.i18n.json b/apps/mobile/packages/core_localization/lib/src/l10n/en.i18n.json index 00aa820f..8adab006 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/en.i18n.json +++ b/apps/mobile/packages/core_localization/lib/src/l10n/en.i18n.json @@ -79,7 +79,12 @@ "cleaning": "Cleaning", "security": "Security", "driving": "Driving", - "cooking": "Cooking" + "cooking": "Cooking", + "cashier": "Cashier", + "server": "Server", + "barista": "Barista", + "host_hostess": "Host/Hostess", + "busser": "Busser" }, "industries": { "hospitality": "Hospitality", @@ -577,7 +582,8 @@ "server": "Server", "barista": "Barista", "host_hostess": "Host/Hostess", - "busser": "Busser" + "busser": "Busser", + "driving": "Driving" } } } diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json b/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json index 4cffd42e..ea3fc08c 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json +++ b/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json @@ -79,7 +79,12 @@ "cleaning": "Limpieza", "security": "Seguridad", "driving": "Conducción", - "cooking": "Cocina" + "cooking": "Cocina", + "cashier": "Cajero", + "server": "Mesero", + "barista": "Barista", + "host_hostess": "Anfitrión", + "busser": "Ayudante de mesero" }, "industries": { "hospitality": "Hostelería", @@ -576,7 +581,8 @@ "server": "Server", "barista": "Barista", "host_hostess": "Host/Hostess", - "busser": "Busser" + "busser": "Busser", + "driving": "Driving" } } } diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/strings.g.dart b/apps/mobile/packages/core_localization/lib/src/l10n/strings.g.dart index 6bb62c97..60de65e3 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/strings.g.dart +++ b/apps/mobile/packages/core_localization/lib/src/l10n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 2 -/// Strings: 1026 (513 per locale) +/// Strings: 1038 (519 per locale) /// -/// Built on 2026-01-26 at 02:23 UTC +/// Built on 2026-01-27 at 19:37 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/strings_en.g.dart b/apps/mobile/packages/core_localization/lib/src/l10n/strings_en.g.dart index 70903846..3f4a7e81 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/strings_en.g.dart +++ b/apps/mobile/packages/core_localization/lib/src/l10n/strings_en.g.dart @@ -2420,6 +2420,21 @@ class TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEn { /// en: 'Cooking' String get cooking => 'Cooking'; + + /// en: 'Cashier' + String get cashier => 'Cashier'; + + /// en: 'Server' + String get server => 'Server'; + + /// en: 'Barista' + String get barista => 'Barista'; + + /// en: 'Host/Hostess' + String get host_hostess => 'Host/Hostess'; + + /// en: 'Busser' + String get busser => 'Busser'; } // Path: staff_authentication.profile_setup_page.experience.industries @@ -2589,6 +2604,9 @@ class TranslationsStaffOnboardingExperienceSkillsEn { /// en: 'Busser' String get busser => 'Busser'; + + /// en: 'Driving' + String get driving => 'Driving'; } // Path: staff.home.improve.items.training @@ -2724,6 +2742,11 @@ extension on Translations { 'staff_authentication.profile_setup_page.experience.skills.security' => 'Security', 'staff_authentication.profile_setup_page.experience.skills.driving' => 'Driving', 'staff_authentication.profile_setup_page.experience.skills.cooking' => 'Cooking', + 'staff_authentication.profile_setup_page.experience.skills.cashier' => 'Cashier', + 'staff_authentication.profile_setup_page.experience.skills.server' => 'Server', + 'staff_authentication.profile_setup_page.experience.skills.barista' => 'Barista', + 'staff_authentication.profile_setup_page.experience.skills.host_hostess' => 'Host/Hostess', + 'staff_authentication.profile_setup_page.experience.skills.busser' => 'Busser', 'staff_authentication.profile_setup_page.experience.industries.hospitality' => 'Hospitality', 'staff_authentication.profile_setup_page.experience.industries.food_service' => 'Food Service', 'staff_authentication.profile_setup_page.experience.industries.warehouse' => 'Warehouse', @@ -3090,6 +3113,7 @@ extension on Translations { 'staff.onboarding.experience.skills.barista' => 'Barista', 'staff.onboarding.experience.skills.host_hostess' => 'Host/Hostess', 'staff.onboarding.experience.skills.busser' => 'Busser', + 'staff.onboarding.experience.skills.driving' => 'Driving', 'staff_documents.title' => 'Documents', 'staff_documents.verification_card.title' => 'Document Verification', 'staff_documents.verification_card.progress' => ({required Object completed, required Object total}) => '${completed}/${total} Complete', @@ -3171,14 +3195,14 @@ extension on Translations { 'staff_time_card.hours_worked' => 'Hours Worked', 'staff_time_card.total_earnings' => 'Total Earnings', 'staff_time_card.shift_history' => 'Shift History', + _ => null, + } ?? switch (path) { 'staff_time_card.no_shifts' => 'No shifts for this month', 'staff_time_card.hours' => 'hours', 'staff_time_card.per_hr' => '/hr', 'staff_time_card.status.approved' => 'Approved', 'staff_time_card.status.disputed' => 'Disputed', 'staff_time_card.status.paid' => 'Paid', - _ => null, - } ?? switch (path) { 'staff_time_card.status.pending' => 'Pending', _ => null, }; diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/strings_es.g.dart b/apps/mobile/packages/core_localization/lib/src/l10n/strings_es.g.dart index f497959c..23fb8610 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/strings_es.g.dart +++ b/apps/mobile/packages/core_localization/lib/src/l10n/strings_es.g.dart @@ -1463,6 +1463,11 @@ class _TranslationsStaffAuthenticationProfileSetupPageExperienceSkillsEs impleme @override String get security => 'Seguridad'; @override String get driving => 'Conducción'; @override String get cooking => 'Cocina'; + @override String get cashier => 'Cajero'; + @override String get server => 'Mesero'; + @override String get barista => 'Barista'; + @override String get host_hostess => 'Anfitrión'; + @override String get busser => 'Ayudante de mesero'; } // Path: staff_authentication.profile_setup_page.experience.industries @@ -1564,6 +1569,7 @@ class _TranslationsStaffOnboardingExperienceSkillsEs implements TranslationsStaf @override String get barista => 'Barista'; @override String get host_hostess => 'Host/Hostess'; @override String get busser => 'Busser'; + @override String get driving => 'Driving'; } // Path: staff.home.improve.items.training @@ -1679,6 +1685,11 @@ extension on TranslationsEs { 'staff_authentication.profile_setup_page.experience.skills.security' => 'Seguridad', 'staff_authentication.profile_setup_page.experience.skills.driving' => 'Conducción', 'staff_authentication.profile_setup_page.experience.skills.cooking' => 'Cocina', + 'staff_authentication.profile_setup_page.experience.skills.cashier' => 'Cajero', + 'staff_authentication.profile_setup_page.experience.skills.server' => 'Mesero', + 'staff_authentication.profile_setup_page.experience.skills.barista' => 'Barista', + 'staff_authentication.profile_setup_page.experience.skills.host_hostess' => 'Anfitrión', + 'staff_authentication.profile_setup_page.experience.skills.busser' => 'Ayudante de mesero', 'staff_authentication.profile_setup_page.experience.industries.hospitality' => 'Hostelería', 'staff_authentication.profile_setup_page.experience.industries.food_service' => 'Servicio de comida', 'staff_authentication.profile_setup_page.experience.industries.warehouse' => 'Almacén', @@ -2045,6 +2056,7 @@ extension on TranslationsEs { 'staff.onboarding.experience.skills.barista' => 'Barista', 'staff.onboarding.experience.skills.host_hostess' => 'Host/Hostess', 'staff.onboarding.experience.skills.busser' => 'Busser', + 'staff.onboarding.experience.skills.driving' => 'Driving', 'staff_documents.title' => 'Documents', 'staff_documents.verification_card.title' => 'Document Verification', 'staff_documents.verification_card.progress' => ({required Object completed, required Object total}) => '${completed}/${total} Complete', @@ -2126,14 +2138,14 @@ extension on TranslationsEs { 'staff_time_card.hours_worked' => 'Horas trabajadas', 'staff_time_card.total_earnings' => 'Ganancias totales', 'staff_time_card.shift_history' => 'Historial de turnos', + _ => null, + } ?? switch (path) { 'staff_time_card.no_shifts' => 'No hay turnos para este mes', 'staff_time_card.hours' => 'horas', 'staff_time_card.per_hr' => '/hr', 'staff_time_card.status.approved' => 'Aprobado', 'staff_time_card.status.disputed' => 'Disputado', 'staff_time_card.status.paid' => 'Pagado', - _ => null, - } ?? switch (path) { 'staff_time_card.status.pending' => 'Pendiente', _ => null, }; diff --git a/apps/mobile/packages/data_connect/lib/krow_data_connect.dart b/apps/mobile/packages/data_connect/lib/krow_data_connect.dart index 429cf0f1..b57a46be 100644 --- a/apps/mobile/packages/data_connect/lib/krow_data_connect.dart +++ b/apps/mobile/packages/data_connect/lib/krow_data_connect.dart @@ -24,3 +24,4 @@ export 'src/session/client_session_store.dart'; // Export the generated Data Connect SDK export 'src/dataconnect_generated/generated.dart'; +export 'src/session/staff_session_store.dart'; diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/.guides/usage.md b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/.guides/usage.md index 492ad9d6..64d5474f 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/.guides/usage.md +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/.guides/usage.md @@ -1,16 +1,16 @@ # Basic Usage ```dart -ExampleConnector.instance.createTeamMember(createTeamMemberVariables).execute(); -ExampleConnector.instance.updateTeamMember(updateTeamMemberVariables).execute(); -ExampleConnector.instance.updateTeamMemberInviteStatus(updateTeamMemberInviteStatusVariables).execute(); -ExampleConnector.instance.acceptInviteByCode(acceptInviteByCodeVariables).execute(); -ExampleConnector.instance.cancelInviteByCode(cancelInviteByCodeVariables).execute(); -ExampleConnector.instance.deleteTeamMember(deleteTeamMemberVariables).execute(); -ExampleConnector.instance.listActivityLogs(listActivityLogsVariables).execute(); -ExampleConnector.instance.getActivityLogById(getActivityLogByIdVariables).execute(); -ExampleConnector.instance.listActivityLogsByUserId(listActivityLogsByUserIdVariables).execute(); -ExampleConnector.instance.listUnreadActivityLogsByUserId(listUnreadActivityLogsByUserIdVariables).execute(); +ExampleConnector.instance.createFaqData(createFaqDataVariables).execute(); +ExampleConnector.instance.updateFaqData(updateFaqDataVariables).execute(); +ExampleConnector.instance.deleteFaqData(deleteFaqDataVariables).execute(); +ExampleConnector.instance.createStaffAvailability(createStaffAvailabilityVariables).execute(); +ExampleConnector.instance.updateStaffAvailability(updateStaffAvailabilityVariables).execute(); +ExampleConnector.instance.deleteStaffAvailability(deleteStaffAvailabilityVariables).execute(); +ExampleConnector.instance.listStaffAvailabilityStats(listStaffAvailabilityStatsVariables).execute(); +ExampleConnector.instance.getStaffAvailabilityStatsByStaffId(getStaffAvailabilityStatsByStaffIdVariables).execute(); +ExampleConnector.instance.filterStaffAvailabilityStats(filterStaffAvailabilityStatsVariables).execute(); +ExampleConnector.instance.createTaxForm(createTaxFormVariables).execute(); ``` @@ -23,8 +23,8 @@ Optional fields can be discovered based on classes that have `Optional` object t This is an example of a mutation with an optional field: ```dart -await ExampleConnector.instance.getRapidOrders({ ... }) -.offset(...) +await ExampleConnector.instance.updateWorkforce({ ... }) +.workforceNumber(...) .execute(); ``` diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/README.md b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/README.md index 258fbed5..b8677cb9 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/README.md +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/README.md @@ -21,39 +21,39 @@ ExampleConnector.instance.dataConnect.useDataConnectEmulator(host, port); You can also call queries and mutations by using the connector class. ## Queries -### listActivityLogs +### listStaffAvailabilityStats #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.listActivityLogs().execute(); +ExampleConnector.instance.listStaffAvailabilityStats().execute(); ``` #### Optional Arguments -We return a builder for each query. For listActivityLogs, we created `listActivityLogsBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For listStaffAvailabilityStats, we created `listStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class ListActivityLogsVariablesBuilder { +class ListStaffAvailabilityStatsVariablesBuilder { ... - ListActivityLogsVariablesBuilder offset(int? t) { + ListStaffAvailabilityStatsVariablesBuilder offset(int? t) { _offset.value = t; return this; } - ListActivityLogsVariablesBuilder limit(int? t) { + ListStaffAvailabilityStatsVariablesBuilder limit(int? t) { _limit.value = t; return this; } ... } -ExampleConnector.instance.listActivityLogs() +ExampleConnector.instance.listStaffAvailabilityStats() .offset(offset) .limit(limit) .execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -68,8 +68,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listActivityLogs(); -listActivityLogsData data = result.data; +final result = await ExampleConnector.instance.listStaffAvailabilityStats(); +listStaffAvailabilityStatsData data = result.data; final ref = result.ref; ``` @@ -77,26 +77,26 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.listActivityLogs().ref(); +final ref = ExampleConnector.instance.listStaffAvailabilityStats().ref(); ref.execute(); ref.subscribe(...); ``` -### getActivityLogById +### getStaffAvailabilityStatsByStaffId #### Required Arguments ```dart -String id = ...; -ExampleConnector.instance.getActivityLogById( - id: id, +String staffId = ...; +ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( + staffId: staffId, ).execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -111,10 +111,203 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getActivityLogById( +final result = await ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( + staffId: staffId, +); +getStaffAvailabilityStatsByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterStaffAvailabilityStats +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterStaffAvailabilityStats().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterStaffAvailabilityStats, we created `filterStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterStaffAvailabilityStatsVariablesBuilder { + ... + + FilterStaffAvailabilityStatsVariablesBuilder needWorkIndexMin(int? t) { + _needWorkIndexMin.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder needWorkIndexMax(int? t) { + _needWorkIndexMax.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder utilizationMin(int? t) { + _utilizationMin.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder utilizationMax(int? t) { + _utilizationMax.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder acceptanceRateMin(int? t) { + _acceptanceRateMin.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder acceptanceRateMax(int? t) { + _acceptanceRateMax.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder lastShiftAfter(Timestamp? t) { + _lastShiftAfter.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder lastShiftBefore(Timestamp? t) { + _lastShiftBefore.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterStaffAvailabilityStatsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterStaffAvailabilityStats() +.needWorkIndexMin(needWorkIndexMin) +.needWorkIndexMax(needWorkIndexMax) +.utilizationMin(utilizationMin) +.utilizationMax(utilizationMax) +.acceptanceRateMin(acceptanceRateMin) +.acceptanceRateMax(acceptanceRateMax) +.lastShiftAfter(lastShiftAfter) +.lastShiftBefore(lastShiftBefore) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterStaffAvailabilityStats(); +filterStaffAvailabilityStatsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterStaffAvailabilityStats().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listHubs +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listHubs().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listHubs(); +listHubsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listHubs().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getHubById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getHubById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getHubById( id: id, ); -getActivityLogByIdData data = result.data; +getHubByIdData data = result.data; final ref = result.ref; ``` @@ -124,7 +317,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.getActivityLogById( +final ref = ExampleConnector.instance.getHubById( id: id, ).ref(); ref.execute(); @@ -133,42 +326,19 @@ ref.subscribe(...); ``` -### listActivityLogsByUserId +### getHubsByOwnerId #### Required Arguments ```dart -String userId = ...; -ExampleConnector.instance.listActivityLogsByUserId( - userId: userId, +String ownerId = ...; +ExampleConnector.instance.getHubsByOwnerId( + ownerId: ownerId, ).execute(); ``` -#### Optional Arguments -We return a builder for each query. For listActivityLogsByUserId, we created `listActivityLogsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListActivityLogsByUserIdVariablesBuilder { - ... - ListActivityLogsByUserIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListActivityLogsByUserIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - ... -} -ExampleConnector.instance.listActivityLogsByUserId( - userId: userId, -) -.offset(offset) -.limit(limit) -.execute(); -``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -183,10 +353,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listActivityLogsByUserId( - userId: userId, +final result = await ExampleConnector.instance.getHubsByOwnerId( + ownerId: ownerId, ); -listActivityLogsByUserIdData data = result.data; +getHubsByOwnerIdData data = result.data; final ref = result.ref; ``` @@ -194,10 +364,10 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String userId = ...; +String ownerId = ...; -final ref = ExampleConnector.instance.listActivityLogsByUserId( - userId: userId, +final ref = ExampleConnector.instance.getHubsByOwnerId( + ownerId: ownerId, ).ref(); ref.execute(); @@ -205,141 +375,2753 @@ ref.subscribe(...); ``` -### listUnreadActivityLogsByUserId -#### Required Arguments -```dart -String userId = ...; -ExampleConnector.instance.listUnreadActivityLogsByUserId( - userId: userId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listUnreadActivityLogsByUserId, we created `listUnreadActivityLogsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListUnreadActivityLogsByUserIdVariablesBuilder { - ... - ListUnreadActivityLogsByUserIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListUnreadActivityLogsByUserIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listUnreadActivityLogsByUserId( - userId: userId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUnreadActivityLogsByUserId( - userId: userId, -); -listUnreadActivityLogsByUserIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; - -final ref = ExampleConnector.instance.listUnreadActivityLogsByUserId( - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterActivityLogs +### filterHubs #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.filterActivityLogs().execute(); +ExampleConnector.instance.filterHubs().execute(); ``` #### Optional Arguments -We return a builder for each query. For filterActivityLogs, we created `filterActivityLogsBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For filterHubs, we created `filterHubsBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class FilterActivityLogsVariablesBuilder { +class FilterHubsVariablesBuilder { ... - FilterActivityLogsVariablesBuilder userId(String? t) { - _userId.value = t; + FilterHubsVariablesBuilder ownerId(String? t) { + _ownerId.value = t; return this; } - FilterActivityLogsVariablesBuilder dateFrom(Timestamp? t) { + FilterHubsVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + FilterHubsVariablesBuilder nfcTagId(String? t) { + _nfcTagId.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterHubs() +.ownerId(ownerId) +.name(name) +.nfcTagId(nfcTagId) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterHubs(); +filterHubsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterHubs().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAssignments +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listAssignments().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAssignments, we created `listAssignmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAssignmentsVariablesBuilder { + ... + + ListAssignmentsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAssignmentsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAssignments() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAssignments(); +listAssignmentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listAssignments().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getAssignmentById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getAssignmentById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getAssignmentById( + id: id, +); +getAssignmentByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getAssignmentById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAssignmentsByWorkforceId +#### Required Arguments +```dart +String workforceId = ...; +ExampleConnector.instance.listAssignmentsByWorkforceId( + workforceId: workforceId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAssignmentsByWorkforceId, we created `listAssignmentsByWorkforceIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAssignmentsByWorkforceIdVariablesBuilder { + ... + ListAssignmentsByWorkforceIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAssignmentsByWorkforceIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAssignmentsByWorkforceId( + workforceId: workforceId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAssignmentsByWorkforceId( + workforceId: workforceId, +); +listAssignmentsByWorkforceIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String workforceId = ...; + +final ref = ExampleConnector.instance.listAssignmentsByWorkforceId( + workforceId: workforceId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAssignmentsByWorkforceIds +#### Required Arguments +```dart +String workforceIds = ...; +ExampleConnector.instance.listAssignmentsByWorkforceIds( + workforceIds: workforceIds, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAssignmentsByWorkforceIds, we created `listAssignmentsByWorkforceIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAssignmentsByWorkforceIdsVariablesBuilder { + ... + ListAssignmentsByWorkforceIdsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAssignmentsByWorkforceIdsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAssignmentsByWorkforceIds( + workforceIds: workforceIds, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAssignmentsByWorkforceIds( + workforceIds: workforceIds, +); +listAssignmentsByWorkforceIdsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String workforceIds = ...; + +final ref = ExampleConnector.instance.listAssignmentsByWorkforceIds( + workforceIds: workforceIds, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAssignmentsByShiftRole +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +ExampleConnector.instance.listAssignmentsByShiftRole( + shiftId: shiftId, + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAssignmentsByShiftRole, we created `listAssignmentsByShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAssignmentsByShiftRoleVariablesBuilder { + ... + ListAssignmentsByShiftRoleVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAssignmentsByShiftRoleVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAssignmentsByShiftRole( + shiftId: shiftId, + roleId: roleId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAssignmentsByShiftRole( + shiftId: shiftId, + roleId: roleId, +); +listAssignmentsByShiftRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.listAssignmentsByShiftRole( + shiftId: shiftId, + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterAssignments +#### Required Arguments +```dart +String shiftIds = ...; +String roleIds = ...; +ExampleConnector.instance.filterAssignments( + shiftIds: shiftIds, + roleIds: roleIds, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterAssignments, we created `filterAssignmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterAssignmentsVariablesBuilder { + ... + FilterAssignmentsVariablesBuilder status(AssignmentStatus? t) { + _status.value = t; + return this; + } + FilterAssignmentsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterAssignmentsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterAssignments( + shiftIds: shiftIds, + roleIds: roleIds, +) +.status(status) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterAssignments( + shiftIds: shiftIds, + roleIds: roleIds, +); +filterAssignmentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftIds = ...; +String roleIds = ...; + +final ref = ExampleConnector.instance.filterAssignments( + shiftIds: shiftIds, + roleIds: roleIds, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listDocuments +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listDocuments().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listDocuments(); +listDocumentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listDocuments().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getDocumentById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getDocumentById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getDocumentById( + id: id, +); +getDocumentByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getDocumentById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterDocuments +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterDocuments().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterDocuments, we created `filterDocumentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterDocumentsVariablesBuilder { + ... + + FilterDocumentsVariablesBuilder documentType(DocumentType? t) { + _documentType.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterDocuments() +.documentType(documentType) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterDocuments(); +filterDocumentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterDocuments().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getShiftRoleById +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +ExampleConnector.instance.getShiftRoleById( + shiftId: shiftId, + roleId: roleId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getShiftRoleById( + shiftId: shiftId, + roleId: roleId, +); +getShiftRoleByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.getShiftRoleById( + shiftId: shiftId, + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByShiftId +#### Required Arguments +```dart +String shiftId = ...; +ExampleConnector.instance.listShiftRolesByShiftId( + shiftId: shiftId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByShiftId, we created `listShiftRolesByShiftIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByShiftIdVariablesBuilder { + ... + ListShiftRolesByShiftIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByShiftIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByShiftId( + shiftId: shiftId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByShiftId( + shiftId: shiftId, +); +listShiftRolesByShiftIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; + +final ref = ExampleConnector.instance.listShiftRolesByShiftId( + shiftId: shiftId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByRoleId +#### Required Arguments +```dart +String roleId = ...; +ExampleConnector.instance.listShiftRolesByRoleId( + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByRoleId, we created `listShiftRolesByRoleIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByRoleIdVariablesBuilder { + ... + ListShiftRolesByRoleIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByRoleIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByRoleId( + roleId: roleId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByRoleId( + roleId: roleId, +); +listShiftRolesByRoleIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String roleId = ...; + +final ref = ExampleConnector.instance.listShiftRolesByRoleId( + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByShiftIdAndTimeRange +#### Required Arguments +```dart +String shiftId = ...; +Timestamp start = ...; +Timestamp end = ...; +ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( + shiftId: shiftId, + start: start, + end: end, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByShiftIdAndTimeRange, we created `listShiftRolesByShiftIdAndTimeRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder { + ... + ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( + shiftId: shiftId, + start: start, + end: end, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( + shiftId: shiftId, + start: start, + end: end, +); +listShiftRolesByShiftIdAndTimeRangeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +Timestamp start = ...; +Timestamp end = ...; + +final ref = ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( + shiftId: shiftId, + start: start, + end: end, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listShiftRolesByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByVendorId, we created `listShiftRolesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByVendorIdVariablesBuilder { + ... + ListShiftRolesByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByVendorId( + vendorId: vendorId, +); +listShiftRolesByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listShiftRolesByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByBusinessAndDateRange +#### Required Arguments +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; +ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: start, + end: end, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByBusinessAndDateRange, we created `listShiftRolesByBusinessAndDateRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByBusinessAndDateRangeVariablesBuilder { + ... + ListShiftRolesByBusinessAndDateRangeVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByBusinessAndDateRangeVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + ListShiftRolesByBusinessAndDateRangeVariablesBuilder status(ShiftStatus? t) { + _status.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: start, + end: end, +) +.offset(offset) +.limit(limit) +.status(status) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: start, + end: end, +); +listShiftRolesByBusinessAndDateRangeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; + +final ref = ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: start, + end: end, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByBusinessAndOrder +#### Required Arguments +```dart +String businessId = ...; +String orderId = ...; +ExampleConnector.instance.listShiftRolesByBusinessAndOrder( + businessId: businessId, + orderId: orderId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByBusinessAndOrder, we created `listShiftRolesByBusinessAndOrderBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByBusinessAndOrderVariablesBuilder { + ... + ListShiftRolesByBusinessAndOrderVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByBusinessAndOrderVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByBusinessAndOrder( + businessId: businessId, + orderId: orderId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByBusinessAndOrder( + businessId: businessId, + orderId: orderId, +); +listShiftRolesByBusinessAndOrderData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +String orderId = ...; + +final ref = ExampleConnector.instance.listShiftRolesByBusinessAndOrder( + businessId: businessId, + orderId: orderId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByBusinessDateRangeCompletedOrders +#### Required Arguments +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; +ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( + businessId: businessId, + start: start, + end: end, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByBusinessDateRangeCompletedOrders, we created `listShiftRolesByBusinessDateRangeCompletedOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder { + ... + ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( + businessId: businessId, + start: start, + end: end, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( + businessId: businessId, + start: start, + end: end, +); +listShiftRolesByBusinessDateRangeCompletedOrdersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; + +final ref = ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( + businessId: businessId, + start: start, + end: end, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShiftRolesByBusinessAndDatesSummary +#### Required Arguments +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; +ExampleConnector.instance.listShiftRolesByBusinessAndDatesSummary( + businessId: businessId, + start: start, + end: end, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShiftRolesByBusinessAndDatesSummary, we created `listShiftRolesByBusinessAndDatesSummaryBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder { + ... + ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShiftRolesByBusinessAndDatesSummary( + businessId: businessId, + start: start, + end: end, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShiftRolesByBusinessAndDatesSummary( + businessId: businessId, + start: start, + end: end, +); +listShiftRolesByBusinessAndDatesSummaryData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp start = ...; +Timestamp end = ...; + +final ref = ExampleConnector.instance.listShiftRolesByBusinessAndDatesSummary( + businessId: businessId, + start: start, + end: end, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getCompletedShiftsByBusinessId +#### Required Arguments +```dart +String businessId = ...; +Timestamp dateFrom = ...; +Timestamp dateTo = ...; +ExampleConnector.instance.getCompletedShiftsByBusinessId( + businessId: businessId, + dateFrom: dateFrom, + dateTo: dateTo, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getCompletedShiftsByBusinessId, we created `getCompletedShiftsByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetCompletedShiftsByBusinessIdVariablesBuilder { + ... + GetCompletedShiftsByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetCompletedShiftsByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getCompletedShiftsByBusinessId( + businessId: businessId, + dateFrom: dateFrom, + dateTo: dateTo, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getCompletedShiftsByBusinessId( + businessId: businessId, + dateFrom: dateFrom, + dateTo: dateTo, +); +getCompletedShiftsByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp dateFrom = ...; +Timestamp dateTo = ...; + +final ref = ExampleConnector.instance.getCompletedShiftsByBusinessId( + businessId: businessId, + dateFrom: dateFrom, + dateTo: dateTo, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRoleCategories +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listRoleCategories().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRoleCategories(); +listRoleCategoriesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listRoleCategories().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getRoleCategoryById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getRoleCategoryById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getRoleCategoryById( + id: id, +); +getRoleCategoryByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getRoleCategoryById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getRoleCategoriesByCategory +#### Required Arguments +```dart +RoleCategoryType category = ...; +ExampleConnector.instance.getRoleCategoriesByCategory( + category: category, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getRoleCategoriesByCategory( + category: category, +); +getRoleCategoriesByCategoryData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +RoleCategoryType category = ...; + +final ref = ExampleConnector.instance.getRoleCategoriesByCategory( + category: category, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getVendorById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getVendorById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getVendorById( + id: id, +); +getVendorByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getVendorById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getVendorByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.getVendorByUserId( + userId: userId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getVendorByUserId( + userId: userId, +); +getVendorByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.getVendorByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listVendors +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listVendors().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listVendors(); +listVendorsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listVendors().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getWorkforceById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getWorkforceById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getWorkforceById( + id: id, +); +getWorkforceByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getWorkforceById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getWorkforceByVendorAndStaff +#### Required Arguments +```dart +String vendorId = ...; +String staffId = ...; +ExampleConnector.instance.getWorkforceByVendorAndStaff( + vendorId: vendorId, + staffId: staffId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getWorkforceByVendorAndStaff( + vendorId: vendorId, + staffId: staffId, +); +getWorkforceByVendorAndStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; +String staffId = ...; + +final ref = ExampleConnector.instance.getWorkforceByVendorAndStaff( + vendorId: vendorId, + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listWorkforceByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listWorkforceByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listWorkforceByVendorId, we created `listWorkforceByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListWorkforceByVendorIdVariablesBuilder { + ... + ListWorkforceByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListWorkforceByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listWorkforceByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listWorkforceByVendorId( + vendorId: vendorId, +); +listWorkforceByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listWorkforceByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listWorkforceByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listWorkforceByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listWorkforceByStaffId, we created `listWorkforceByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListWorkforceByStaffIdVariablesBuilder { + ... + ListWorkforceByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListWorkforceByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listWorkforceByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listWorkforceByStaffId( + staffId: staffId, +); +listWorkforceByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listWorkforceByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getWorkforceByVendorAndNumber +#### Required Arguments +```dart +String vendorId = ...; +String workforceNumber = ...; +ExampleConnector.instance.getWorkforceByVendorAndNumber( + vendorId: vendorId, + workforceNumber: workforceNumber, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getWorkforceByVendorAndNumber( + vendorId: vendorId, + workforceNumber: workforceNumber, +); +getWorkforceByVendorAndNumberData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; +String workforceNumber = ...; + +final ref = ExampleConnector.instance.getWorkforceByVendorAndNumber( + vendorId: vendorId, + workforceNumber: workforceNumber, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listTasks +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listTasks().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listTasks(); +listTasksData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listTasks().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTaskById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getTaskById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTaskById( + id: id, +); +getTaskByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getTaskById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTasksByOwnerId +#### Required Arguments +```dart +String ownerId = ...; +ExampleConnector.instance.getTasksByOwnerId( + ownerId: ownerId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTasksByOwnerId( + ownerId: ownerId, +); +getTasksByOwnerIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String ownerId = ...; + +final ref = ExampleConnector.instance.getTasksByOwnerId( + ownerId: ownerId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterTasks +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterTasks().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterTasks, we created `filterTasksBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterTasksVariablesBuilder { + ... + + FilterTasksVariablesBuilder status(TaskStatus? t) { + _status.value = t; + return this; + } + FilterTasksVariablesBuilder priority(TaskPriority? t) { + _priority.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterTasks() +.status(status) +.priority(priority) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterTasks(); +filterTasksData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterTasks().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUsers +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listUsers().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUsers(); +listUsersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listUsers().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getUserById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getUserById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getUserById( + id: id, +); +getUserByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getUserById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterUsers +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterUsers().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterUsers, we created `filterUsersBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterUsersVariablesBuilder { + ... + + FilterUsersVariablesBuilder id(String? t) { + _id.value = t; + return this; + } + FilterUsersVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + FilterUsersVariablesBuilder role(UserBaseRole? t) { + _role.value = t; + return this; + } + FilterUsersVariablesBuilder userRole(String? t) { + _userRole.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterUsers() +.id(id) +.email(email) +.role(role) +.userRole(userRole) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterUsers(); +filterUsersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterUsers().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listClientFeedbacks +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listClientFeedbacks().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listClientFeedbacks, we created `listClientFeedbacksBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListClientFeedbacksVariablesBuilder { + ... + + ListClientFeedbacksVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListClientFeedbacksVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listClientFeedbacks() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listClientFeedbacks(); +listClientFeedbacksData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listClientFeedbacks().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getClientFeedbackById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getClientFeedbackById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getClientFeedbackById( + id: id, +); +getClientFeedbackByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getClientFeedbackById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listClientFeedbacksByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.listClientFeedbacksByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listClientFeedbacksByBusinessId, we created `listClientFeedbacksByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListClientFeedbacksByBusinessIdVariablesBuilder { + ... + ListClientFeedbacksByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListClientFeedbacksByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listClientFeedbacksByBusinessId( + businessId: businessId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listClientFeedbacksByBusinessId( + businessId: businessId, +); +listClientFeedbacksByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.listClientFeedbacksByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listClientFeedbacksByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listClientFeedbacksByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listClientFeedbacksByVendorId, we created `listClientFeedbacksByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListClientFeedbacksByVendorIdVariablesBuilder { + ... + ListClientFeedbacksByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListClientFeedbacksByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listClientFeedbacksByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listClientFeedbacksByVendorId( + vendorId: vendorId, +); +listClientFeedbacksByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listClientFeedbacksByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listClientFeedbacksByBusinessAndVendor +#### Required Arguments +```dart +String businessId = ...; +String vendorId = ...; +ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( + businessId: businessId, + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listClientFeedbacksByBusinessAndVendor, we created `listClientFeedbacksByBusinessAndVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListClientFeedbacksByBusinessAndVendorVariablesBuilder { + ... + ListClientFeedbacksByBusinessAndVendorVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListClientFeedbacksByBusinessAndVendorVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( + businessId: businessId, + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( + businessId: businessId, + vendorId: vendorId, +); +listClientFeedbacksByBusinessAndVendorData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +String vendorId = ...; + +final ref = ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( + businessId: businessId, + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterClientFeedbacks +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterClientFeedbacks().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterClientFeedbacks, we created `filterClientFeedbacksBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterClientFeedbacksVariablesBuilder { + ... + + FilterClientFeedbacksVariablesBuilder businessId(String? t) { + _businessId.value = t; + return this; + } + FilterClientFeedbacksVariablesBuilder vendorId(String? t) { + _vendorId.value = t; + return this; + } + FilterClientFeedbacksVariablesBuilder ratingMin(int? t) { + _ratingMin.value = t; + return this; + } + FilterClientFeedbacksVariablesBuilder ratingMax(int? t) { + _ratingMax.value = t; + return this; + } + FilterClientFeedbacksVariablesBuilder dateFrom(Timestamp? t) { _dateFrom.value = t; return this; } - FilterActivityLogsVariablesBuilder dateTo(Timestamp? t) { + FilterClientFeedbacksVariablesBuilder dateTo(Timestamp? t) { _dateTo.value = t; return this; } - FilterActivityLogsVariablesBuilder isRead(bool? t) { - _isRead.value = t; - return this; - } - FilterActivityLogsVariablesBuilder activityType(ActivityType? t) { - _activityType.value = t; - return this; - } - FilterActivityLogsVariablesBuilder iconType(ActivityIconType? t) { - _iconType.value = t; - return this; - } - FilterActivityLogsVariablesBuilder offset(int? t) { + FilterClientFeedbacksVariablesBuilder offset(int? t) { _offset.value = t; return this; } - FilterActivityLogsVariablesBuilder limit(int? t) { + FilterClientFeedbacksVariablesBuilder limit(int? t) { _limit.value = t; return this; } ... } -ExampleConnector.instance.filterActivityLogs() -.userId(userId) +ExampleConnector.instance.filterClientFeedbacks() +.businessId(businessId) +.vendorId(vendorId) +.ratingMin(ratingMin) +.ratingMax(ratingMax) .dateFrom(dateFrom) .dateTo(dateTo) -.isRead(isRead) -.activityType(activityType) -.iconType(iconType) .offset(offset) .limit(limit) .execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -354,8 +3136,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.filterActivityLogs(); -filterActivityLogsData data = result.data; +final result = await ExampleConnector.instance.filterClientFeedbacks(); +filterClientFeedbacksData data = result.data; final ref = result.ref; ``` @@ -363,7 +3145,4215 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.filterActivityLogs().ref(); +final ref = ExampleConnector.instance.filterClientFeedbacks().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listClientFeedbackRatingsByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listClientFeedbackRatingsByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listClientFeedbackRatingsByVendorId, we created `listClientFeedbackRatingsByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListClientFeedbackRatingsByVendorIdVariablesBuilder { + ... + ListClientFeedbackRatingsByVendorIdVariablesBuilder dateFrom(Timestamp? t) { + _dateFrom.value = t; + return this; + } + ListClientFeedbackRatingsByVendorIdVariablesBuilder dateTo(Timestamp? t) { + _dateTo.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listClientFeedbackRatingsByVendorId( + vendorId: vendorId, +) +.dateFrom(dateFrom) +.dateTo(dateTo) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listClientFeedbackRatingsByVendorId( + vendorId: vendorId, +); +listClientFeedbackRatingsByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listClientFeedbackRatingsByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listCustomRateCards +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listCustomRateCards().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listCustomRateCards(); +listCustomRateCardsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listCustomRateCards().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getCustomRateCardById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getCustomRateCardById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getCustomRateCardById( + id: id, +); +getCustomRateCardByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getCustomRateCardById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaff +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listStaff().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaff(); +listStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listStaff().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getStaffById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffById( + id: id, +); +getStaffByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getStaffById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.getStaffByUserId( + userId: userId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffByUserId( + userId: userId, +); +getStaffByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.getStaffByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterStaff +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterStaff().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterStaff, we created `filterStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterStaffVariablesBuilder { + ... + + FilterStaffVariablesBuilder ownerId(String? t) { + _ownerId.value = t; + return this; + } + FilterStaffVariablesBuilder fullName(String? t) { + _fullName.value = t; + return this; + } + FilterStaffVariablesBuilder level(String? t) { + _level.value = t; + return this; + } + FilterStaffVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterStaff() +.ownerId(ownerId) +.fullName(fullName) +.level(level) +.email(email) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterStaff(); +filterStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterStaff().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listCategories +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listCategories().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listCategories(); +listCategoriesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listCategories().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getCategoryById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getCategoryById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getCategoryById( + id: id, +); +getCategoryByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getCategoryById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterCategories +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterCategories().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterCategories, we created `filterCategoriesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterCategoriesVariablesBuilder { + ... + + FilterCategoriesVariablesBuilder categoryId(String? t) { + _categoryId.value = t; + return this; + } + FilterCategoriesVariablesBuilder label(String? t) { + _label.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterCategories() +.categoryId(categoryId) +.label(label) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterCategories(); +filterCategoriesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterCategories().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listMessages +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listMessages().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listMessages(); +listMessagesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listMessages().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getMessageById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getMessageById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getMessageById( + id: id, +); +getMessageByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getMessageById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getMessagesByConversationId +#### Required Arguments +```dart +String conversationId = ...; +ExampleConnector.instance.getMessagesByConversationId( + conversationId: conversationId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getMessagesByConversationId( + conversationId: conversationId, +); +getMessagesByConversationIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String conversationId = ...; + +final ref = ExampleConnector.instance.getMessagesByConversationId( + conversationId: conversationId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listOrders +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listOrders().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listOrders, we created `listOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListOrdersVariablesBuilder { + ... + + ListOrdersVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListOrdersVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listOrders() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listOrders(); +listOrdersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listOrders().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getOrderById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getOrderById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getOrderById( + id: id, +); +getOrderByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getOrderById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getOrdersByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.getOrdersByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getOrdersByBusinessId, we created `getOrdersByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetOrdersByBusinessIdVariablesBuilder { + ... + GetOrdersByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetOrdersByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getOrdersByBusinessId( + businessId: businessId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getOrdersByBusinessId( + businessId: businessId, +); +getOrdersByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.getOrdersByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getOrdersByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.getOrdersByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getOrdersByVendorId, we created `getOrdersByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetOrdersByVendorIdVariablesBuilder { + ... + GetOrdersByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetOrdersByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getOrdersByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getOrdersByVendorId( + vendorId: vendorId, +); +getOrdersByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.getOrdersByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getOrdersByStatus +#### Required Arguments +```dart +OrderStatus status = ...; +ExampleConnector.instance.getOrdersByStatus( + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getOrdersByStatus, we created `getOrdersByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetOrdersByStatusVariablesBuilder { + ... + GetOrdersByStatusVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetOrdersByStatusVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getOrdersByStatus( + status: status, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getOrdersByStatus( + status: status, +); +getOrdersByStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +OrderStatus status = ...; + +final ref = ExampleConnector.instance.getOrdersByStatus( + status: status, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getOrdersByDateRange +#### Required Arguments +```dart +Timestamp start = ...; +Timestamp end = ...; +ExampleConnector.instance.getOrdersByDateRange( + start: start, + end: end, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getOrdersByDateRange, we created `getOrdersByDateRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetOrdersByDateRangeVariablesBuilder { + ... + GetOrdersByDateRangeVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetOrdersByDateRangeVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getOrdersByDateRange( + start: start, + end: end, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getOrdersByDateRange( + start: start, + end: end, +); +getOrdersByDateRangeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +Timestamp start = ...; +Timestamp end = ...; + +final ref = ExampleConnector.instance.getOrdersByDateRange( + start: start, + end: end, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getRapidOrders +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.getRapidOrders().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getRapidOrders, we created `getRapidOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetRapidOrdersVariablesBuilder { + ... + + GetRapidOrdersVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetRapidOrdersVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getRapidOrders() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getRapidOrders(); +getRapidOrdersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.getRapidOrders().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffCourseById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getStaffCourseById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffCourseById( + id: id, +); +getStaffCourseByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getStaffCourseById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffCoursesByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listStaffCoursesByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffCoursesByStaffId, we created `listStaffCoursesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffCoursesByStaffIdVariablesBuilder { + ... + ListStaffCoursesByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffCoursesByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffCoursesByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffCoursesByStaffId( + staffId: staffId, +); +listStaffCoursesByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listStaffCoursesByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffCoursesByCourseId +#### Required Arguments +```dart +String courseId = ...; +ExampleConnector.instance.listStaffCoursesByCourseId( + courseId: courseId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffCoursesByCourseId, we created `listStaffCoursesByCourseIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffCoursesByCourseIdVariablesBuilder { + ... + ListStaffCoursesByCourseIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffCoursesByCourseIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffCoursesByCourseId( + courseId: courseId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffCoursesByCourseId( + courseId: courseId, +); +listStaffCoursesByCourseIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String courseId = ...; + +final ref = ExampleConnector.instance.listStaffCoursesByCourseId( + courseId: courseId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffCourseByStaffAndCourse +#### Required Arguments +```dart +String staffId = ...; +String courseId = ...; +ExampleConnector.instance.getStaffCourseByStaffAndCourse( + staffId: staffId, + courseId: courseId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffCourseByStaffAndCourse( + staffId: staffId, + courseId: courseId, +); +getStaffCourseByStaffAndCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String courseId = ...; + +final ref = ExampleConnector.instance.getStaffCourseByStaffAndCourse( + staffId: staffId, + courseId: courseId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listTaxForms +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listTaxForms().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listTaxForms(); +listTaxFormsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listTaxForms().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTaxFormById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getTaxFormById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTaxFormById( + id: id, +); +getTaxFormByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getTaxFormById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTaxFormsBystaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.getTaxFormsBystaffId( + staffId: staffId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTaxFormsBystaffId( + staffId: staffId, +); +getTaxFormsBystaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.getTaxFormsBystaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterTaxForms +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterTaxForms().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterTaxForms, we created `filterTaxFormsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterTaxFormsVariablesBuilder { + ... + + FilterTaxFormsVariablesBuilder formType(TaxFormType? t) { + _formType.value = t; + return this; + } + FilterTaxFormsVariablesBuilder status(TaxFormStatus? t) { + _status.value = t; + return this; + } + FilterTaxFormsVariablesBuilder staffId(String? t) { + _staffId.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterTaxForms() +.formType(formType) +.status(status) +.staffId(staffId) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterTaxForms(); +filterTaxFormsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterTaxForms().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listTeamMembers +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listTeamMembers().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listTeamMembers(); +listTeamMembersData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listTeamMembers().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTeamMemberById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getTeamMemberById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTeamMemberById( + id: id, +); +getTeamMemberByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getTeamMemberById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTeamMembersByTeamId +#### Required Arguments +```dart +String teamId = ...; +ExampleConnector.instance.getTeamMembersByTeamId( + teamId: teamId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTeamMembersByTeamId( + teamId: teamId, +); +getTeamMembersByTeamIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamId = ...; + +final ref = ExampleConnector.instance.getTeamMembersByTeamId( + teamId: teamId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listCertificates +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listCertificates().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listCertificates(); +listCertificatesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listCertificates().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getCertificateById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getCertificateById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getCertificateById( + id: id, +); +getCertificateByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getCertificateById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listCertificatesByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listCertificatesByStaffId( + staffId: staffId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listCertificatesByStaffId( + staffId: staffId, +); +listCertificatesByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listCertificatesByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRoles +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listRoles().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRoles(); +listRolesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listRoles().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getRoleById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getRoleById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getRoleById( + id: id, +); +getRoleByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getRoleById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRolesByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listRolesByVendorId( + vendorId: vendorId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRolesByVendorId( + vendorId: vendorId, +); +listRolesByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listRolesByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRolesByroleCategoryId +#### Required Arguments +```dart +String roleCategoryId = ...; +ExampleConnector.instance.listRolesByroleCategoryId( + roleCategoryId: roleCategoryId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRolesByroleCategoryId( + roleCategoryId: roleCategoryId, +); +listRolesByroleCategoryIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String roleCategoryId = ...; + +final ref = ExampleConnector.instance.listRolesByroleCategoryId( + roleCategoryId: roleCategoryId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffAvailabilities +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listStaffAvailabilities().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffAvailabilities, we created `listStaffAvailabilitiesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffAvailabilitiesVariablesBuilder { + ... + + ListStaffAvailabilitiesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffAvailabilitiesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffAvailabilities() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffAvailabilities(); +listStaffAvailabilitiesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listStaffAvailabilities().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffAvailabilitiesByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listStaffAvailabilitiesByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffAvailabilitiesByStaffId, we created `listStaffAvailabilitiesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffAvailabilitiesByStaffIdVariablesBuilder { + ... + ListStaffAvailabilitiesByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffAvailabilitiesByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffAvailabilitiesByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffAvailabilitiesByStaffId( + staffId: staffId, +); +listStaffAvailabilitiesByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listStaffAvailabilitiesByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffAvailabilityByKey +#### Required Arguments +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; +ExampleConnector.instance.getStaffAvailabilityByKey( + staffId: staffId, + day: day, + slot: slot, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffAvailabilityByKey( + staffId: staffId, + day: day, + slot: slot, +); +getStaffAvailabilityByKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; + +final ref = ExampleConnector.instance.getStaffAvailabilityByKey( + staffId: staffId, + day: day, + slot: slot, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffAvailabilitiesByDay +#### Required Arguments +```dart +DayOfWeek day = ...; +ExampleConnector.instance.listStaffAvailabilitiesByDay( + day: day, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffAvailabilitiesByDay, we created `listStaffAvailabilitiesByDayBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffAvailabilitiesByDayVariablesBuilder { + ... + ListStaffAvailabilitiesByDayVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffAvailabilitiesByDayVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffAvailabilitiesByDay( + day: day, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffAvailabilitiesByDay( + day: day, +); +listStaffAvailabilitiesByDayData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +DayOfWeek day = ...; + +final ref = ExampleConnector.instance.listStaffAvailabilitiesByDay( + day: day, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listConversations +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listConversations().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listConversations, we created `listConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListConversationsVariablesBuilder { + ... + + ListConversationsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListConversationsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listConversations() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listConversations(); +listConversationsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listConversations().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getConversationById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getConversationById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getConversationById( + id: id, +); +getConversationByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getConversationById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listConversationsByType +#### Required Arguments +```dart +ConversationType conversationType = ...; +ExampleConnector.instance.listConversationsByType( + conversationType: conversationType, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listConversationsByType, we created `listConversationsByTypeBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListConversationsByTypeVariablesBuilder { + ... + ListConversationsByTypeVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListConversationsByTypeVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listConversationsByType( + conversationType: conversationType, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listConversationsByType( + conversationType: conversationType, +); +listConversationsByTypeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +ConversationType conversationType = ...; + +final ref = ExampleConnector.instance.listConversationsByType( + conversationType: conversationType, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listConversationsByStatus +#### Required Arguments +```dart +ConversationStatus status = ...; +ExampleConnector.instance.listConversationsByStatus( + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listConversationsByStatus, we created `listConversationsByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListConversationsByStatusVariablesBuilder { + ... + ListConversationsByStatusVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListConversationsByStatusVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listConversationsByStatus( + status: status, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listConversationsByStatus( + status: status, +); +listConversationsByStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +ConversationStatus status = ...; + +final ref = ExampleConnector.instance.listConversationsByStatus( + status: status, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterConversations +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterConversations().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterConversations, we created `filterConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterConversationsVariablesBuilder { + ... + + FilterConversationsVariablesBuilder status(ConversationStatus? t) { + _status.value = t; + return this; + } + FilterConversationsVariablesBuilder conversationType(ConversationType? t) { + _conversationType.value = t; + return this; + } + FilterConversationsVariablesBuilder isGroup(bool? t) { + _isGroup.value = t; + return this; + } + FilterConversationsVariablesBuilder lastMessageAfter(Timestamp? t) { + _lastMessageAfter.value = t; + return this; + } + FilterConversationsVariablesBuilder lastMessageBefore(Timestamp? t) { + _lastMessageBefore.value = t; + return this; + } + FilterConversationsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterConversationsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterConversations() +.status(status) +.conversationType(conversationType) +.isGroup(isGroup) +.lastMessageAfter(lastMessageAfter) +.lastMessageBefore(lastMessageBefore) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterConversations(); +filterConversationsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterConversations().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listCourses +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listCourses().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listCourses(); +listCoursesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listCourses().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getCourseById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getCourseById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getCourseById( + id: id, +); +getCourseByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getCourseById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterCourses +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterCourses().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterCourses, we created `filterCoursesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterCoursesVariablesBuilder { + ... + + FilterCoursesVariablesBuilder categoryId(String? t) { + _categoryId.value = t; + return this; + } + FilterCoursesVariablesBuilder isCertification(bool? t) { + _isCertification.value = t; + return this; + } + FilterCoursesVariablesBuilder levelRequired(String? t) { + _levelRequired.value = t; + return this; + } + FilterCoursesVariablesBuilder completed(bool? t) { + _completed.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterCourses() +.categoryId(categoryId) +.isCertification(isCertification) +.levelRequired(levelRequired) +.completed(completed) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterCourses(); +filterCoursesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterCourses().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getMyTasks +#### Required Arguments +```dart +String teamMemberId = ...; +ExampleConnector.instance.getMyTasks( + teamMemberId: teamMemberId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getMyTasks( + teamMemberId: teamMemberId, +); +getMyTasksData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamMemberId = ...; + +final ref = ExampleConnector.instance.getMyTasks( + teamMemberId: teamMemberId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getMemberTaskByIdKey +#### Required Arguments +```dart +String teamMemberId = ...; +String taskId = ...; +ExampleConnector.instance.getMemberTaskByIdKey( + teamMemberId: teamMemberId, + taskId: taskId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getMemberTaskByIdKey( + teamMemberId: teamMemberId, + taskId: taskId, +); +getMemberTaskByIdKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamMemberId = ...; +String taskId = ...; + +final ref = ExampleConnector.instance.getMemberTaskByIdKey( + teamMemberId: teamMemberId, + taskId: taskId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getMemberTasksByTaskId +#### Required Arguments +```dart +String taskId = ...; +ExampleConnector.instance.getMemberTasksByTaskId( + taskId: taskId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getMemberTasksByTaskId( + taskId: taskId, +); +getMemberTasksByTaskIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String taskId = ...; + +final ref = ExampleConnector.instance.getMemberTasksByTaskId( + taskId: taskId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listShifts +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listShifts().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listShifts, we created `listShiftsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListShiftsVariablesBuilder { + ... + + ListShiftsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listShifts() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listShifts(); +listShiftsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listShifts().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getShiftById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getShiftById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getShiftById( + id: id, +); +getShiftByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getShiftById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterShifts +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterShifts().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterShifts, we created `filterShiftsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterShiftsVariablesBuilder { + ... + + FilterShiftsVariablesBuilder status(ShiftStatus? t) { + _status.value = t; + return this; + } + FilterShiftsVariablesBuilder orderId(String? t) { + _orderId.value = t; + return this; + } + FilterShiftsVariablesBuilder dateFrom(Timestamp? t) { + _dateFrom.value = t; + return this; + } + FilterShiftsVariablesBuilder dateTo(Timestamp? t) { + _dateTo.value = t; + return this; + } + FilterShiftsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterShiftsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterShifts() +.status(status) +.orderId(orderId) +.dateFrom(dateFrom) +.dateTo(dateTo) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterShifts(); +filterShiftsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterShifts().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getShiftsByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.getShiftsByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getShiftsByBusinessId, we created `getShiftsByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetShiftsByBusinessIdVariablesBuilder { + ... + GetShiftsByBusinessIdVariablesBuilder dateFrom(Timestamp? t) { + _dateFrom.value = t; + return this; + } + GetShiftsByBusinessIdVariablesBuilder dateTo(Timestamp? t) { + _dateTo.value = t; + return this; + } + GetShiftsByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetShiftsByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getShiftsByBusinessId( + businessId: businessId, +) +.dateFrom(dateFrom) +.dateTo(dateTo) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getShiftsByBusinessId( + businessId: businessId, +); +getShiftsByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.getShiftsByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getShiftsByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.getShiftsByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getShiftsByVendorId, we created `getShiftsByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetShiftsByVendorIdVariablesBuilder { + ... + GetShiftsByVendorIdVariablesBuilder dateFrom(Timestamp? t) { + _dateFrom.value = t; + return this; + } + GetShiftsByVendorIdVariablesBuilder dateTo(Timestamp? t) { + _dateTo.value = t; + return this; + } + GetShiftsByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetShiftsByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getShiftsByVendorId( + vendorId: vendorId, +) +.dateFrom(dateFrom) +.dateTo(dateTo) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getShiftsByVendorId( + vendorId: vendorId, +); +getShiftsByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.getShiftsByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffRoles +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listStaffRoles().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffRoles, we created `listStaffRolesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffRolesVariablesBuilder { + ... + + ListStaffRolesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffRolesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffRoles() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffRoles(); +listStaffRolesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listStaffRoles().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getStaffRoleByKey +#### Required Arguments +```dart +String staffId = ...; +String roleId = ...; +ExampleConnector.instance.getStaffRoleByKey( + staffId: staffId, + roleId: roleId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getStaffRoleByKey( + staffId: staffId, + roleId: roleId, +); +getStaffRoleByKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.getStaffRoleByKey( + staffId: staffId, + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffRolesByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listStaffRolesByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffRolesByStaffId, we created `listStaffRolesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffRolesByStaffIdVariablesBuilder { + ... + ListStaffRolesByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffRolesByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffRolesByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffRolesByStaffId( + staffId: staffId, +); +listStaffRolesByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listStaffRolesByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffRolesByRoleId +#### Required Arguments +```dart +String roleId = ...; +ExampleConnector.instance.listStaffRolesByRoleId( + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffRolesByRoleId, we created `listStaffRolesByRoleIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffRolesByRoleIdVariablesBuilder { + ... + ListStaffRolesByRoleIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffRolesByRoleIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffRolesByRoleId( + roleId: roleId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffRolesByRoleId( + roleId: roleId, +); +listStaffRolesByRoleIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String roleId = ...; + +final ref = ExampleConnector.instance.listStaffRolesByRoleId( + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterStaffRoles +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterStaffRoles().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterStaffRoles, we created `filterStaffRolesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterStaffRolesVariablesBuilder { + ... + + FilterStaffRolesVariablesBuilder staffId(String? t) { + _staffId.value = t; + return this; + } + FilterStaffRolesVariablesBuilder roleId(String? t) { + _roleId.value = t; + return this; + } + FilterStaffRolesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterStaffRolesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterStaffRoles() +.staffId(staffId) +.roleId(roleId) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterStaffRoles(); +filterStaffRolesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterStaffRoles().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listApplications +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listApplications().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listApplications(); +listApplicationsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listApplications().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getApplicationById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getApplicationById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getApplicationById( + id: id, +); +getApplicationByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getApplicationById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getApplicationsByShiftId +#### Required Arguments +```dart +String shiftId = ...; +ExampleConnector.instance.getApplicationsByShiftId( + shiftId: shiftId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getApplicationsByShiftId( + shiftId: shiftId, +); +getApplicationsByShiftIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; + +final ref = ExampleConnector.instance.getApplicationsByShiftId( + shiftId: shiftId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getApplicationsByShiftIdAndStatus +#### Required Arguments +```dart +String shiftId = ...; +ApplicationStatus status = ...; +ExampleConnector.instance.getApplicationsByShiftIdAndStatus( + shiftId: shiftId, + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getApplicationsByShiftIdAndStatus, we created `getApplicationsByShiftIdAndStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetApplicationsByShiftIdAndStatusVariablesBuilder { + ... + GetApplicationsByShiftIdAndStatusVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetApplicationsByShiftIdAndStatusVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getApplicationsByShiftIdAndStatus( + shiftId: shiftId, + status: status, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getApplicationsByShiftIdAndStatus( + shiftId: shiftId, + status: status, +); +getApplicationsByShiftIdAndStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +ApplicationStatus status = ...; + +final ref = ExampleConnector.instance.getApplicationsByShiftIdAndStatus( + shiftId: shiftId, + status: status, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getApplicationsByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.getApplicationsByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For getApplicationsByStaffId, we created `getApplicationsByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class GetApplicationsByStaffIdVariablesBuilder { + ... + GetApplicationsByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetApplicationsByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.getApplicationsByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getApplicationsByStaffId( + staffId: staffId, +); +getApplicationsByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.getApplicationsByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAcceptedApplicationsByShiftRoleKey +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( + shiftId: shiftId, + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAcceptedApplicationsByShiftRoleKey, we created `listAcceptedApplicationsByShiftRoleKeyBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder { + ... + ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( + shiftId: shiftId, + roleId: roleId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( + shiftId: shiftId, + roleId: roleId, +); +listAcceptedApplicationsByShiftRoleKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( + shiftId: shiftId, + roleId: roleId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAcceptedApplicationsByBusinessForDay +#### Required Arguments +```dart +String businessId = ...; +Timestamp dayStart = ...; +Timestamp dayEnd = ...; +ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listAcceptedApplicationsByBusinessForDay, we created `listAcceptedApplicationsByBusinessForDayBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListAcceptedApplicationsByBusinessForDayVariablesBuilder { + ... + ListAcceptedApplicationsByBusinessForDayVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListAcceptedApplicationsByBusinessForDayVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +); +listAcceptedApplicationsByBusinessForDayData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp dayStart = ...; +Timestamp dayEnd = ...; + +final ref = ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listStaffsApplicationsByBusinessForDay +#### Required Arguments +```dart +String businessId = ...; +Timestamp dayStart = ...; +Timestamp dayEnd = ...; +ExampleConnector.instance.listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listStaffsApplicationsByBusinessForDay, we created `listStaffsApplicationsByBusinessForDayBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListStaffsApplicationsByBusinessForDayVariablesBuilder { + ... + ListStaffsApplicationsByBusinessForDayVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffsApplicationsByBusinessForDayVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +); +listStaffsApplicationsByBusinessForDayData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; +Timestamp dayStart = ...; +Timestamp dayEnd = ...; + +final ref = ExampleConnector.instance.listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: dayStart, + dayEnd: dayEnd, +).ref(); ref.execute(); ref.subscribe(...); @@ -509,6 +7499,3281 @@ ref.subscribe(...); ``` +### listInvoiceTemplates +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listInvoiceTemplates().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoiceTemplates, we created `listInvoiceTemplatesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoiceTemplatesVariablesBuilder { + ... + + ListInvoiceTemplatesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoiceTemplatesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoiceTemplates() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoiceTemplates(); +listInvoiceTemplatesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listInvoiceTemplates().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getInvoiceTemplateById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getInvoiceTemplateById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getInvoiceTemplateById( + id: id, +); +getInvoiceTemplateByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getInvoiceTemplateById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoiceTemplatesByOwnerId +#### Required Arguments +```dart +String ownerId = ...; +ExampleConnector.instance.listInvoiceTemplatesByOwnerId( + ownerId: ownerId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoiceTemplatesByOwnerId, we created `listInvoiceTemplatesByOwnerIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoiceTemplatesByOwnerIdVariablesBuilder { + ... + ListInvoiceTemplatesByOwnerIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoiceTemplatesByOwnerIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoiceTemplatesByOwnerId( + ownerId: ownerId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoiceTemplatesByOwnerId( + ownerId: ownerId, +); +listInvoiceTemplatesByOwnerIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String ownerId = ...; + +final ref = ExampleConnector.instance.listInvoiceTemplatesByOwnerId( + ownerId: ownerId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoiceTemplatesByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listInvoiceTemplatesByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoiceTemplatesByVendorId, we created `listInvoiceTemplatesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoiceTemplatesByVendorIdVariablesBuilder { + ... + ListInvoiceTemplatesByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoiceTemplatesByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoiceTemplatesByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoiceTemplatesByVendorId( + vendorId: vendorId, +); +listInvoiceTemplatesByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listInvoiceTemplatesByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoiceTemplatesByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.listInvoiceTemplatesByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoiceTemplatesByBusinessId, we created `listInvoiceTemplatesByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoiceTemplatesByBusinessIdVariablesBuilder { + ... + ListInvoiceTemplatesByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoiceTemplatesByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoiceTemplatesByBusinessId( + businessId: businessId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoiceTemplatesByBusinessId( + businessId: businessId, +); +listInvoiceTemplatesByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.listInvoiceTemplatesByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoiceTemplatesByOrderId +#### Required Arguments +```dart +String orderId = ...; +ExampleConnector.instance.listInvoiceTemplatesByOrderId( + orderId: orderId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoiceTemplatesByOrderId, we created `listInvoiceTemplatesByOrderIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoiceTemplatesByOrderIdVariablesBuilder { + ... + ListInvoiceTemplatesByOrderIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoiceTemplatesByOrderIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoiceTemplatesByOrderId( + orderId: orderId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoiceTemplatesByOrderId( + orderId: orderId, +); +listInvoiceTemplatesByOrderIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String orderId = ...; + +final ref = ExampleConnector.instance.listInvoiceTemplatesByOrderId( + orderId: orderId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### searchInvoiceTemplatesByOwnerAndName +#### Required Arguments +```dart +String ownerId = ...; +String name = ...; +ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( + ownerId: ownerId, + name: name, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For searchInvoiceTemplatesByOwnerAndName, we created `searchInvoiceTemplatesByOwnerAndNameBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder { + ... + SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( + ownerId: ownerId, + name: name, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( + ownerId: ownerId, + name: name, +); +searchInvoiceTemplatesByOwnerAndNameData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String ownerId = ...; +String name = ...; + +final ref = ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( + ownerId: ownerId, + name: name, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listLevels +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listLevels().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listLevels(); +listLevelsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listLevels().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getLevelById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getLevelById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getLevelById( + id: id, +); +getLevelByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getLevelById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterLevels +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterLevels().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterLevels, we created `filterLevelsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterLevelsVariablesBuilder { + ... + + FilterLevelsVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + FilterLevelsVariablesBuilder xpRequired(int? t) { + _xpRequired.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterLevels() +.name(name) +.xpRequired(xpRequired) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterLevels(); +filterLevelsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterLevels().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listTeamHudDepartments +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listTeamHudDepartments().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listTeamHudDepartments, we created `listTeamHudDepartmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListTeamHudDepartmentsVariablesBuilder { + ... + + ListTeamHudDepartmentsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListTeamHudDepartmentsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listTeamHudDepartments() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listTeamHudDepartments(); +listTeamHudDepartmentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listTeamHudDepartments().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getTeamHudDepartmentById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getTeamHudDepartmentById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getTeamHudDepartmentById( + id: id, +); +getTeamHudDepartmentByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getTeamHudDepartmentById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listTeamHudDepartmentsByTeamHubId +#### Required Arguments +```dart +String teamHubId = ...; +ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( + teamHubId: teamHubId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listTeamHudDepartmentsByTeamHubId, we created `listTeamHudDepartmentsByTeamHubIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListTeamHudDepartmentsByTeamHubIdVariablesBuilder { + ... + ListTeamHudDepartmentsByTeamHubIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListTeamHudDepartmentsByTeamHubIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( + teamHubId: teamHubId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( + teamHubId: teamHubId, +); +listTeamHudDepartmentsByTeamHubIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamHubId = ...; + +final ref = ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( + teamHubId: teamHubId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listVendorBenefitPlans +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listVendorBenefitPlans().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listVendorBenefitPlans, we created `listVendorBenefitPlansBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListVendorBenefitPlansVariablesBuilder { + ... + + ListVendorBenefitPlansVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListVendorBenefitPlansVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listVendorBenefitPlans() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listVendorBenefitPlans(); +listVendorBenefitPlansData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listVendorBenefitPlans().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getVendorBenefitPlanById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getVendorBenefitPlanById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getVendorBenefitPlanById( + id: id, +); +getVendorBenefitPlanByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getVendorBenefitPlanById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listVendorBenefitPlansByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listVendorBenefitPlansByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listVendorBenefitPlansByVendorId, we created `listVendorBenefitPlansByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListVendorBenefitPlansByVendorIdVariablesBuilder { + ... + ListVendorBenefitPlansByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListVendorBenefitPlansByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listVendorBenefitPlansByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listVendorBenefitPlansByVendorId( + vendorId: vendorId, +); +listVendorBenefitPlansByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listVendorBenefitPlansByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listActiveVendorBenefitPlansByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listActiveVendorBenefitPlansByVendorId, we created `listActiveVendorBenefitPlansByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListActiveVendorBenefitPlansByVendorIdVariablesBuilder { + ... + ListActiveVendorBenefitPlansByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListActiveVendorBenefitPlansByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( + vendorId: vendorId, +); +listActiveVendorBenefitPlansByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterVendorBenefitPlans +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterVendorBenefitPlans().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterVendorBenefitPlans, we created `filterVendorBenefitPlansBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterVendorBenefitPlansVariablesBuilder { + ... + + FilterVendorBenefitPlansVariablesBuilder vendorId(String? t) { + _vendorId.value = t; + return this; + } + FilterVendorBenefitPlansVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + FilterVendorBenefitPlansVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + FilterVendorBenefitPlansVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterVendorBenefitPlansVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterVendorBenefitPlans() +.vendorId(vendorId) +.title(title) +.isActive(isActive) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterVendorBenefitPlans(); +filterVendorBenefitPlansData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterVendorBenefitPlans().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listAttireOptions +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listAttireOptions().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listAttireOptions(); +listAttireOptionsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listAttireOptions().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getAttireOptionById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getAttireOptionById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getAttireOptionById( + id: id, +); +getAttireOptionByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getAttireOptionById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterAttireOptions +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterAttireOptions().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterAttireOptions, we created `filterAttireOptionsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterAttireOptionsVariablesBuilder { + ... + + FilterAttireOptionsVariablesBuilder itemId(String? t) { + _itemId.value = t; + return this; + } + FilterAttireOptionsVariablesBuilder isMandatory(bool? t) { + _isMandatory.value = t; + return this; + } + FilterAttireOptionsVariablesBuilder vendorId(String? t) { + _vendorId.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterAttireOptions() +.itemId(itemId) +.isMandatory(isMandatory) +.vendorId(vendorId) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterAttireOptions(); +filterAttireOptionsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterAttireOptions().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listBenefitsData +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listBenefitsData().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listBenefitsData, we created `listBenefitsDataBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListBenefitsDataVariablesBuilder { + ... + + ListBenefitsDataVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListBenefitsDataVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listBenefitsData() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listBenefitsData(); +listBenefitsDataData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listBenefitsData().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getBenefitsDataByKey +#### Required Arguments +```dart +String staffId = ...; +String vendorBenefitPlanId = ...; +ExampleConnector.instance.getBenefitsDataByKey( + staffId: staffId, + vendorBenefitPlanId: vendorBenefitPlanId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getBenefitsDataByKey( + staffId: staffId, + vendorBenefitPlanId: vendorBenefitPlanId, +); +getBenefitsDataByKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String vendorBenefitPlanId = ...; + +final ref = ExampleConnector.instance.getBenefitsDataByKey( + staffId: staffId, + vendorBenefitPlanId: vendorBenefitPlanId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listBenefitsDataByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listBenefitsDataByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listBenefitsDataByStaffId, we created `listBenefitsDataByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListBenefitsDataByStaffIdVariablesBuilder { + ... + ListBenefitsDataByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListBenefitsDataByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listBenefitsDataByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listBenefitsDataByStaffId( + staffId: staffId, +); +listBenefitsDataByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listBenefitsDataByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listBenefitsDataByVendorBenefitPlanId +#### Required Arguments +```dart +String vendorBenefitPlanId = ...; +ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( + vendorBenefitPlanId: vendorBenefitPlanId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listBenefitsDataByVendorBenefitPlanId, we created `listBenefitsDataByVendorBenefitPlanIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder { + ... + ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( + vendorBenefitPlanId: vendorBenefitPlanId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( + vendorBenefitPlanId: vendorBenefitPlanId, +); +listBenefitsDataByVendorBenefitPlanIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorBenefitPlanId = ...; + +final ref = ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( + vendorBenefitPlanId: vendorBenefitPlanId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listBenefitsDataByVendorBenefitPlanIds +#### Required Arguments +```dart +String vendorBenefitPlanIds = ...; +ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( + vendorBenefitPlanIds: vendorBenefitPlanIds, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listBenefitsDataByVendorBenefitPlanIds, we created `listBenefitsDataByVendorBenefitPlanIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder { + ... + ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( + vendorBenefitPlanIds: vendorBenefitPlanIds, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( + vendorBenefitPlanIds: vendorBenefitPlanIds, +); +listBenefitsDataByVendorBenefitPlanIdsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorBenefitPlanIds = ...; + +final ref = ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( + vendorBenefitPlanIds: vendorBenefitPlanIds, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPayments +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listRecentPayments().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPayments, we created `listRecentPaymentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsVariablesBuilder { + ... + + ListRecentPaymentsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPayments() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPayments(); +listRecentPaymentsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listRecentPayments().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getRecentPaymentById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getRecentPaymentById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getRecentPaymentById( + id: id, +); +getRecentPaymentByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getRecentPaymentById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByStaffId +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.listRecentPaymentsByStaffId( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByStaffId, we created `listRecentPaymentsByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByStaffIdVariablesBuilder { + ... + ListRecentPaymentsByStaffIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByStaffIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByStaffId( + staffId: staffId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByStaffId( + staffId: staffId, +); +listRecentPaymentsByStaffIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByStaffId( + staffId: staffId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByApplicationId +#### Required Arguments +```dart +String applicationId = ...; +ExampleConnector.instance.listRecentPaymentsByApplicationId( + applicationId: applicationId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByApplicationId, we created `listRecentPaymentsByApplicationIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByApplicationIdVariablesBuilder { + ... + ListRecentPaymentsByApplicationIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByApplicationIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByApplicationId( + applicationId: applicationId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByApplicationId( + applicationId: applicationId, +); +listRecentPaymentsByApplicationIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String applicationId = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByApplicationId( + applicationId: applicationId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByInvoiceId +#### Required Arguments +```dart +String invoiceId = ...; +ExampleConnector.instance.listRecentPaymentsByInvoiceId( + invoiceId: invoiceId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByInvoiceId, we created `listRecentPaymentsByInvoiceIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByInvoiceIdVariablesBuilder { + ... + ListRecentPaymentsByInvoiceIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByInvoiceIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByInvoiceId( + invoiceId: invoiceId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByInvoiceId( + invoiceId: invoiceId, +); +listRecentPaymentsByInvoiceIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String invoiceId = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByInvoiceId( + invoiceId: invoiceId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByStatus +#### Required Arguments +```dart +RecentPaymentStatus status = ...; +ExampleConnector.instance.listRecentPaymentsByStatus( + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByStatus, we created `listRecentPaymentsByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByStatusVariablesBuilder { + ... + ListRecentPaymentsByStatusVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByStatusVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByStatus( + status: status, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByStatus( + status: status, +); +listRecentPaymentsByStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +RecentPaymentStatus status = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByStatus( + status: status, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByInvoiceIds +#### Required Arguments +```dart +String invoiceIds = ...; +ExampleConnector.instance.listRecentPaymentsByInvoiceIds( + invoiceIds: invoiceIds, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByInvoiceIds, we created `listRecentPaymentsByInvoiceIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByInvoiceIdsVariablesBuilder { + ... + ListRecentPaymentsByInvoiceIdsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByInvoiceIdsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByInvoiceIds( + invoiceIds: invoiceIds, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByInvoiceIds( + invoiceIds: invoiceIds, +); +listRecentPaymentsByInvoiceIdsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String invoiceIds = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByInvoiceIds( + invoiceIds: invoiceIds, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listRecentPaymentsByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.listRecentPaymentsByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listRecentPaymentsByBusinessId, we created `listRecentPaymentsByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListRecentPaymentsByBusinessIdVariablesBuilder { + ... + ListRecentPaymentsByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListRecentPaymentsByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listRecentPaymentsByBusinessId( + businessId: businessId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listRecentPaymentsByBusinessId( + businessId: businessId, +); +listRecentPaymentsByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.listRecentPaymentsByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUserConversations +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listUserConversations().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listUserConversations, we created `listUserConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListUserConversationsVariablesBuilder { + ... + + ListUserConversationsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListUserConversationsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listUserConversations() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUserConversations(); +listUserConversationsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listUserConversations().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getUserConversationByKey +#### Required Arguments +```dart +String conversationId = ...; +String userId = ...; +ExampleConnector.instance.getUserConversationByKey( + conversationId: conversationId, + userId: userId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getUserConversationByKey( + conversationId: conversationId, + userId: userId, +); +getUserConversationByKeyData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String conversationId = ...; +String userId = ...; + +final ref = ExampleConnector.instance.getUserConversationByKey( + conversationId: conversationId, + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUserConversationsByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.listUserConversationsByUserId( + userId: userId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listUserConversationsByUserId, we created `listUserConversationsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListUserConversationsByUserIdVariablesBuilder { + ... + ListUserConversationsByUserIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListUserConversationsByUserIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listUserConversationsByUserId( + userId: userId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUserConversationsByUserId( + userId: userId, +); +listUserConversationsByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.listUserConversationsByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUnreadUserConversationsByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.listUnreadUserConversationsByUserId( + userId: userId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listUnreadUserConversationsByUserId, we created `listUnreadUserConversationsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListUnreadUserConversationsByUserIdVariablesBuilder { + ... + ListUnreadUserConversationsByUserIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListUnreadUserConversationsByUserIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listUnreadUserConversationsByUserId( + userId: userId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUnreadUserConversationsByUserId( + userId: userId, +); +listUnreadUserConversationsByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.listUnreadUserConversationsByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUserConversationsByConversationId +#### Required Arguments +```dart +String conversationId = ...; +ExampleConnector.instance.listUserConversationsByConversationId( + conversationId: conversationId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listUserConversationsByConversationId, we created `listUserConversationsByConversationIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListUserConversationsByConversationIdVariablesBuilder { + ... + ListUserConversationsByConversationIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListUserConversationsByConversationIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listUserConversationsByConversationId( + conversationId: conversationId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUserConversationsByConversationId( + conversationId: conversationId, +); +listUserConversationsByConversationIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String conversationId = ...; + +final ref = ExampleConnector.instance.listUserConversationsByConversationId( + conversationId: conversationId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterUserConversations +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterUserConversations().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterUserConversations, we created `filterUserConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterUserConversationsVariablesBuilder { + ... + + FilterUserConversationsVariablesBuilder userId(String? t) { + _userId.value = t; + return this; + } + FilterUserConversationsVariablesBuilder conversationId(String? t) { + _conversationId.value = t; + return this; + } + FilterUserConversationsVariablesBuilder unreadMin(int? t) { + _unreadMin.value = t; + return this; + } + FilterUserConversationsVariablesBuilder unreadMax(int? t) { + _unreadMax.value = t; + return this; + } + FilterUserConversationsVariablesBuilder lastReadAfter(Timestamp? t) { + _lastReadAfter.value = t; + return this; + } + FilterUserConversationsVariablesBuilder lastReadBefore(Timestamp? t) { + _lastReadBefore.value = t; + return this; + } + FilterUserConversationsVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterUserConversationsVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterUserConversations() +.userId(userId) +.conversationId(conversationId) +.unreadMin(unreadMin) +.unreadMax(unreadMax) +.lastReadAfter(lastReadAfter) +.lastReadBefore(lastReadBefore) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterUserConversations(); +filterUserConversationsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterUserConversations().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listVendorRates +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listVendorRates().execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listVendorRates(); +listVendorRatesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listVendorRates().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getVendorRateById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getVendorRateById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getVendorRateById( + id: id, +); +getVendorRateByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getVendorRateById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoices +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.listInvoices().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoices, we created `listInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoicesVariablesBuilder { + ... + + ListInvoicesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoicesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoices() +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoices(); +listInvoicesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listInvoices().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getInvoiceById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getInvoiceById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getInvoiceById( + id: id, +); +getInvoiceByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getInvoiceById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoicesByVendorId +#### Required Arguments +```dart +String vendorId = ...; +ExampleConnector.instance.listInvoicesByVendorId( + vendorId: vendorId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoicesByVendorId, we created `listInvoicesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoicesByVendorIdVariablesBuilder { + ... + ListInvoicesByVendorIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoicesByVendorIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoicesByVendorId( + vendorId: vendorId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoicesByVendorId( + vendorId: vendorId, +); +listInvoicesByVendorIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; + +final ref = ExampleConnector.instance.listInvoicesByVendorId( + vendorId: vendorId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoicesByBusinessId +#### Required Arguments +```dart +String businessId = ...; +ExampleConnector.instance.listInvoicesByBusinessId( + businessId: businessId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoicesByBusinessId, we created `listInvoicesByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoicesByBusinessIdVariablesBuilder { + ... + ListInvoicesByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoicesByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoicesByBusinessId( + businessId: businessId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoicesByBusinessId( + businessId: businessId, +); +listInvoicesByBusinessIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessId = ...; + +final ref = ExampleConnector.instance.listInvoicesByBusinessId( + businessId: businessId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoicesByOrderId +#### Required Arguments +```dart +String orderId = ...; +ExampleConnector.instance.listInvoicesByOrderId( + orderId: orderId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoicesByOrderId, we created `listInvoicesByOrderIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoicesByOrderIdVariablesBuilder { + ... + ListInvoicesByOrderIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoicesByOrderIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoicesByOrderId( + orderId: orderId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoicesByOrderId( + orderId: orderId, +); +listInvoicesByOrderIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String orderId = ...; + +final ref = ExampleConnector.instance.listInvoicesByOrderId( + orderId: orderId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listInvoicesByStatus +#### Required Arguments +```dart +InvoiceStatus status = ...; +ExampleConnector.instance.listInvoicesByStatus( + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listInvoicesByStatus, we created `listInvoicesByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListInvoicesByStatusVariablesBuilder { + ... + ListInvoicesByStatusVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListInvoicesByStatusVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listInvoicesByStatus( + status: status, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listInvoicesByStatus( + status: status, +); +listInvoicesByStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +InvoiceStatus status = ...; + +final ref = ExampleConnector.instance.listInvoicesByStatus( + status: status, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterInvoices +#### Required Arguments +```dart +// No required arguments +ExampleConnector.instance.filterInvoices().execute(); +``` + +#### Optional Arguments +We return a builder for each query. For filterInvoices, we created `filterInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class FilterInvoicesVariablesBuilder { + ... + + FilterInvoicesVariablesBuilder vendorId(String? t) { + _vendorId.value = t; + return this; + } + FilterInvoicesVariablesBuilder businessId(String? t) { + _businessId.value = t; + return this; + } + FilterInvoicesVariablesBuilder orderId(String? t) { + _orderId.value = t; + return this; + } + FilterInvoicesVariablesBuilder status(InvoiceStatus? t) { + _status.value = t; + return this; + } + FilterInvoicesVariablesBuilder issueDateFrom(Timestamp? t) { + _issueDateFrom.value = t; + return this; + } + FilterInvoicesVariablesBuilder issueDateTo(Timestamp? t) { + _issueDateTo.value = t; + return this; + } + FilterInvoicesVariablesBuilder dueDateFrom(Timestamp? t) { + _dueDateFrom.value = t; + return this; + } + FilterInvoicesVariablesBuilder dueDateTo(Timestamp? t) { + _dueDateTo.value = t; + return this; + } + FilterInvoicesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + FilterInvoicesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.filterInvoices() +.vendorId(vendorId) +.businessId(businessId) +.orderId(orderId) +.status(status) +.issueDateFrom(issueDateFrom) +.issueDateTo(issueDateTo) +.dueDateFrom(dueDateFrom) +.dueDateTo(dueDateTo) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.filterInvoices(); +filterInvoicesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.filterInvoices().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listOverdueInvoices +#### Required Arguments +```dart +Timestamp now = ...; +ExampleConnector.instance.listOverdueInvoices( + now: now, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listOverdueInvoices, we created `listOverdueInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListOverdueInvoicesVariablesBuilder { + ... + ListOverdueInvoicesVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListOverdueInvoicesVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listOverdueInvoices( + now: now, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listOverdueInvoices( + now: now, +); +listOverdueInvoicesData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +Timestamp now = ...; + +final ref = ExampleConnector.instance.listOverdueInvoices( + now: now, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + ### listShiftsForCoverage #### Required Arguments ```dart @@ -1555,39 +11820,17 @@ ref.subscribe(...); ``` -### listStaffAvailabilities +### listTeamHubs #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.listStaffAvailabilities().execute(); +ExampleConnector.instance.listTeamHubs().execute(); ``` -#### Optional Arguments -We return a builder for each query. For listStaffAvailabilities, we created `listStaffAvailabilitiesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffAvailabilitiesVariablesBuilder { - ... - - ListStaffAvailabilitiesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffAvailabilitiesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - ... -} -ExampleConnector.instance.listStaffAvailabilities() -.offset(offset) -.limit(limit) -.execute(); -``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -1602,8 +11845,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listStaffAvailabilities(); -listStaffAvailabilitiesData data = result.data; +final result = await ExampleConnector.instance.listTeamHubs(); +listTeamHubsData data = result.data; final ref = result.ref; ``` @@ -1611,284 +11854,18 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.listStaffAvailabilities().ref(); +final ref = ExampleConnector.instance.listTeamHubs().ref(); ref.execute(); ref.subscribe(...); ``` -### listStaffAvailabilitiesByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listStaffAvailabilitiesByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffAvailabilitiesByStaffId, we created `listStaffAvailabilitiesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffAvailabilitiesByStaffIdVariablesBuilder { - ... - ListStaffAvailabilitiesByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffAvailabilitiesByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffAvailabilitiesByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffAvailabilitiesByStaffId( - staffId: staffId, -); -listStaffAvailabilitiesByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listStaffAvailabilitiesByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffAvailabilityByKey -#### Required Arguments -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; -ExampleConnector.instance.getStaffAvailabilityByKey( - staffId: staffId, - day: day, - slot: slot, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffAvailabilityByKey( - staffId: staffId, - day: day, - slot: slot, -); -getStaffAvailabilityByKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; - -final ref = ExampleConnector.instance.getStaffAvailabilityByKey( - staffId: staffId, - day: day, - slot: slot, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffAvailabilitiesByDay -#### Required Arguments -```dart -DayOfWeek day = ...; -ExampleConnector.instance.listStaffAvailabilitiesByDay( - day: day, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffAvailabilitiesByDay, we created `listStaffAvailabilitiesByDayBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffAvailabilitiesByDayVariablesBuilder { - ... - ListStaffAvailabilitiesByDayVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffAvailabilitiesByDayVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffAvailabilitiesByDay( - day: day, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffAvailabilitiesByDay( - day: day, -); -listStaffAvailabilitiesByDayData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -DayOfWeek day = ...; - -final ref = ExampleConnector.instance.listStaffAvailabilitiesByDay( - day: day, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listConversations -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listConversations().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listConversations, we created `listConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListConversationsVariablesBuilder { - ... - - ListConversationsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListConversationsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listConversations() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listConversations(); -listConversationsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listConversations().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getConversationById +### getTeamHubById #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.getConversationById( +ExampleConnector.instance.getTeamHubById( id: id, ).execute(); ``` @@ -1896,7 +11873,7 @@ ExampleConnector.instance.getConversationById( #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -1911,10 +11888,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getConversationById( +final result = await ExampleConnector.instance.getTeamHubById( id: id, ); -getConversationByIdData data = result.data; +getTeamHubByIdData data = result.data; final ref = result.ref; ``` @@ -1924,7 +11901,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.getConversationById( +final ref = ExampleConnector.instance.getTeamHubById( id: id, ).ref(); ref.execute(); @@ -1933,292 +11910,19 @@ ref.subscribe(...); ``` -### listConversationsByType +### getTeamHubsByTeamId #### Required Arguments ```dart -ConversationType conversationType = ...; -ExampleConnector.instance.listConversationsByType( - conversationType: conversationType, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listConversationsByType, we created `listConversationsByTypeBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListConversationsByTypeVariablesBuilder { - ... - ListConversationsByTypeVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListConversationsByTypeVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listConversationsByType( - conversationType: conversationType, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listConversationsByType( - conversationType: conversationType, -); -listConversationsByTypeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -ConversationType conversationType = ...; - -final ref = ExampleConnector.instance.listConversationsByType( - conversationType: conversationType, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listConversationsByStatus -#### Required Arguments -```dart -ConversationStatus status = ...; -ExampleConnector.instance.listConversationsByStatus( - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listConversationsByStatus, we created `listConversationsByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListConversationsByStatusVariablesBuilder { - ... - ListConversationsByStatusVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListConversationsByStatusVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listConversationsByStatus( - status: status, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listConversationsByStatus( - status: status, -); -listConversationsByStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -ConversationStatus status = ...; - -final ref = ExampleConnector.instance.listConversationsByStatus( - status: status, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterConversations -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterConversations().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterConversations, we created `filterConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterConversationsVariablesBuilder { - ... - - FilterConversationsVariablesBuilder status(ConversationStatus? t) { - _status.value = t; - return this; - } - FilterConversationsVariablesBuilder conversationType(ConversationType? t) { - _conversationType.value = t; - return this; - } - FilterConversationsVariablesBuilder isGroup(bool? t) { - _isGroup.value = t; - return this; - } - FilterConversationsVariablesBuilder lastMessageAfter(Timestamp? t) { - _lastMessageAfter.value = t; - return this; - } - FilterConversationsVariablesBuilder lastMessageBefore(Timestamp? t) { - _lastMessageBefore.value = t; - return this; - } - FilterConversationsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterConversationsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterConversations() -.status(status) -.conversationType(conversationType) -.isGroup(isGroup) -.lastMessageAfter(lastMessageAfter) -.lastMessageBefore(lastMessageBefore) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterConversations(); -filterConversationsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterConversations().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeams -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTeams().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeams(); -listTeamsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTeams().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTeamById( - id: id, +String teamId = ...; +ExampleConnector.instance.getTeamHubsByTeamId( + teamId: teamId, ).execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -2233,10 +11937,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getTeamById( - id: id, +final result = await ExampleConnector.instance.getTeamHubsByTeamId( + teamId: teamId, ); -getTeamByIdData data = result.data; +getTeamHubsByTeamIdData data = result.data; final ref = result.ref; ``` @@ -2244,10 +11948,10 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String id = ...; +String teamId = ...; -final ref = ExampleConnector.instance.getTeamById( - id: id, +final ref = ExampleConnector.instance.getTeamHubsByTeamId( + teamId: teamId, ).ref(); ref.execute(); @@ -2255,11 +11959,11 @@ ref.subscribe(...); ``` -### getTeamsByOwnerId +### listTeamHubsByOwnerId #### Required Arguments ```dart String ownerId = ...; -ExampleConnector.instance.getTeamsByOwnerId( +ExampleConnector.instance.listTeamHubsByOwnerId( ownerId: ownerId, ).execute(); ``` @@ -2267,7 +11971,7 @@ ExampleConnector.instance.getTeamsByOwnerId( #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -2282,10 +11986,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getTeamsByOwnerId( +final result = await ExampleConnector.instance.listTeamHubsByOwnerId( ownerId: ownerId, ); -getTeamsByOwnerIdData data = result.data; +listTeamHubsByOwnerIdData data = result.data; final ref = result.ref; ``` @@ -2295,7 +11999,7 @@ An example of how to use the `Ref` object is shown below: ```dart String ownerId = ...; -final ref = ExampleConnector.instance.getTeamsByOwnerId( +final ref = ExampleConnector.instance.listTeamHubsByOwnerId( ownerId: ownerId, ).ref(); ref.execute(); @@ -2304,1920 +12008,6 @@ ref.subscribe(...); ``` -### listCategories -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listCategories().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listCategories(); -listCategoriesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listCategories().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getCategoryById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getCategoryById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getCategoryById( - id: id, -); -getCategoryByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getCategoryById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterCategories -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterCategories().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterCategories, we created `filterCategoriesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterCategoriesVariablesBuilder { - ... - - FilterCategoriesVariablesBuilder categoryId(String? t) { - _categoryId.value = t; - return this; - } - FilterCategoriesVariablesBuilder label(String? t) { - _label.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterCategories() -.categoryId(categoryId) -.label(label) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterCategories(); -filterCategoriesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterCategories().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listVendorBenefitPlans -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listVendorBenefitPlans().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listVendorBenefitPlans, we created `listVendorBenefitPlansBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListVendorBenefitPlansVariablesBuilder { - ... - - ListVendorBenefitPlansVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListVendorBenefitPlansVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listVendorBenefitPlans() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listVendorBenefitPlans(); -listVendorBenefitPlansData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listVendorBenefitPlans().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getVendorBenefitPlanById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getVendorBenefitPlanById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getVendorBenefitPlanById( - id: id, -); -getVendorBenefitPlanByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getVendorBenefitPlanById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listVendorBenefitPlansByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listVendorBenefitPlansByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listVendorBenefitPlansByVendorId, we created `listVendorBenefitPlansByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListVendorBenefitPlansByVendorIdVariablesBuilder { - ... - ListVendorBenefitPlansByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListVendorBenefitPlansByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listVendorBenefitPlansByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listVendorBenefitPlansByVendorId( - vendorId: vendorId, -); -listVendorBenefitPlansByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listVendorBenefitPlansByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listActiveVendorBenefitPlansByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listActiveVendorBenefitPlansByVendorId, we created `listActiveVendorBenefitPlansByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListActiveVendorBenefitPlansByVendorIdVariablesBuilder { - ... - ListActiveVendorBenefitPlansByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListActiveVendorBenefitPlansByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( - vendorId: vendorId, -); -listActiveVendorBenefitPlansByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listActiveVendorBenefitPlansByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterVendorBenefitPlans -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterVendorBenefitPlans().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterVendorBenefitPlans, we created `filterVendorBenefitPlansBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterVendorBenefitPlansVariablesBuilder { - ... - - FilterVendorBenefitPlansVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - FilterVendorBenefitPlansVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - FilterVendorBenefitPlansVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - FilterVendorBenefitPlansVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterVendorBenefitPlansVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterVendorBenefitPlans() -.vendorId(vendorId) -.title(title) -.isActive(isActive) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterVendorBenefitPlans(); -filterVendorBenefitPlansData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterVendorBenefitPlans().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listCourses -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listCourses().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listCourses(); -listCoursesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listCourses().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getCourseById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getCourseById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getCourseById( - id: id, -); -getCourseByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getCourseById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterCourses -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterCourses().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterCourses, we created `filterCoursesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterCoursesVariablesBuilder { - ... - - FilterCoursesVariablesBuilder categoryId(String? t) { - _categoryId.value = t; - return this; - } - FilterCoursesVariablesBuilder isCertification(bool? t) { - _isCertification.value = t; - return this; - } - FilterCoursesVariablesBuilder levelRequired(String? t) { - _levelRequired.value = t; - return this; - } - FilterCoursesVariablesBuilder completed(bool? t) { - _completed.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterCourses() -.categoryId(categoryId) -.isCertification(isCertification) -.levelRequired(levelRequired) -.completed(completed) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterCourses(); -filterCoursesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterCourses().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRoles -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listRoles().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRoles(); -listRolesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listRoles().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getRoleById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getRoleById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getRoleById( - id: id, -); -getRoleByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getRoleById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRolesByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listRolesByVendorId( - vendorId: vendorId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRolesByVendorId( - vendorId: vendorId, -); -listRolesByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listRolesByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRolesByroleCategoryId -#### Required Arguments -```dart -String roleCategoryId = ...; -ExampleConnector.instance.listRolesByroleCategoryId( - roleCategoryId: roleCategoryId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRolesByroleCategoryId( - roleCategoryId: roleCategoryId, -); -listRolesByroleCategoryIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String roleCategoryId = ...; - -final ref = ExampleConnector.instance.listRolesByroleCategoryId( - roleCategoryId: roleCategoryId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffCourseById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getStaffCourseById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffCourseById( - id: id, -); -getStaffCourseByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getStaffCourseById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffCoursesByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listStaffCoursesByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffCoursesByStaffId, we created `listStaffCoursesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffCoursesByStaffIdVariablesBuilder { - ... - ListStaffCoursesByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffCoursesByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffCoursesByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffCoursesByStaffId( - staffId: staffId, -); -listStaffCoursesByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listStaffCoursesByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffCoursesByCourseId -#### Required Arguments -```dart -String courseId = ...; -ExampleConnector.instance.listStaffCoursesByCourseId( - courseId: courseId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffCoursesByCourseId, we created `listStaffCoursesByCourseIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffCoursesByCourseIdVariablesBuilder { - ... - ListStaffCoursesByCourseIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffCoursesByCourseIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffCoursesByCourseId( - courseId: courseId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffCoursesByCourseId( - courseId: courseId, -); -listStaffCoursesByCourseIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String courseId = ...; - -final ref = ExampleConnector.instance.listStaffCoursesByCourseId( - courseId: courseId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffCourseByStaffAndCourse -#### Required Arguments -```dart -String staffId = ...; -String courseId = ...; -ExampleConnector.instance.getStaffCourseByStaffAndCourse( - staffId: staffId, - courseId: courseId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffCourseByStaffAndCourse( - staffId: staffId, - courseId: courseId, -); -getStaffCourseByStaffAndCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String courseId = ...; - -final ref = ExampleConnector.instance.getStaffCourseByStaffAndCourse( - staffId: staffId, - courseId: courseId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getShiftRoleById -#### Required Arguments -```dart -String shiftId = ...; -String roleId = ...; -ExampleConnector.instance.getShiftRoleById( - shiftId: shiftId, - roleId: roleId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getShiftRoleById( - shiftId: shiftId, - roleId: roleId, -); -getShiftRoleByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -String roleId = ...; - -final ref = ExampleConnector.instance.getShiftRoleById( - shiftId: shiftId, - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByShiftId -#### Required Arguments -```dart -String shiftId = ...; -ExampleConnector.instance.listShiftRolesByShiftId( - shiftId: shiftId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByShiftId, we created `listShiftRolesByShiftIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByShiftIdVariablesBuilder { - ... - ListShiftRolesByShiftIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByShiftIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByShiftId( - shiftId: shiftId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByShiftId( - shiftId: shiftId, -); -listShiftRolesByShiftIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; - -final ref = ExampleConnector.instance.listShiftRolesByShiftId( - shiftId: shiftId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByRoleId -#### Required Arguments -```dart -String roleId = ...; -ExampleConnector.instance.listShiftRolesByRoleId( - roleId: roleId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByRoleId, we created `listShiftRolesByRoleIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByRoleIdVariablesBuilder { - ... - ListShiftRolesByRoleIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByRoleIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByRoleId( - roleId: roleId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByRoleId( - roleId: roleId, -); -listShiftRolesByRoleIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String roleId = ...; - -final ref = ExampleConnector.instance.listShiftRolesByRoleId( - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByShiftIdAndTimeRange -#### Required Arguments -```dart -String shiftId = ...; -Timestamp start = ...; -Timestamp end = ...; -ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( - shiftId: shiftId, - start: start, - end: end, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByShiftIdAndTimeRange, we created `listShiftRolesByShiftIdAndTimeRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder { - ... - ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( - shiftId: shiftId, - start: start, - end: end, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( - shiftId: shiftId, - start: start, - end: end, -); -listShiftRolesByShiftIdAndTimeRangeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -Timestamp start = ...; -Timestamp end = ...; - -final ref = ExampleConnector.instance.listShiftRolesByShiftIdAndTimeRange( - shiftId: shiftId, - start: start, - end: end, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listShiftRolesByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByVendorId, we created `listShiftRolesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByVendorIdVariablesBuilder { - ... - ListShiftRolesByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByVendorId( - vendorId: vendorId, -); -listShiftRolesByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listShiftRolesByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByBusinessAndDateRange -#### Required Arguments -```dart -String businessId = ...; -Timestamp start = ...; -Timestamp end = ...; -ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( - businessId: businessId, - start: start, - end: end, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByBusinessAndDateRange, we created `listShiftRolesByBusinessAndDateRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByBusinessAndDateRangeVariablesBuilder { - ... - ListShiftRolesByBusinessAndDateRangeVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByBusinessAndDateRangeVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( - businessId: businessId, - start: start, - end: end, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( - businessId: businessId, - start: start, - end: end, -); -listShiftRolesByBusinessAndDateRangeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; -Timestamp start = ...; -Timestamp end = ...; - -final ref = ExampleConnector.instance.listShiftRolesByBusinessAndDateRange( - businessId: businessId, - start: start, - end: end, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByBusinessAndOrder -#### Required Arguments -```dart -String businessId = ...; -String orderId = ...; -ExampleConnector.instance.listShiftRolesByBusinessAndOrder( - businessId: businessId, - orderId: orderId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByBusinessAndOrder, we created `listShiftRolesByBusinessAndOrderBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByBusinessAndOrderVariablesBuilder { - ... - ListShiftRolesByBusinessAndOrderVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByBusinessAndOrderVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByBusinessAndOrder( - businessId: businessId, - orderId: orderId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByBusinessAndOrder( - businessId: businessId, - orderId: orderId, -); -listShiftRolesByBusinessAndOrderData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; -String orderId = ...; - -final ref = ExampleConnector.instance.listShiftRolesByBusinessAndOrder( - businessId: businessId, - orderId: orderId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShiftRolesByBusinessDateRangeCompletedOrders -#### Required Arguments -```dart -String businessId = ...; -Timestamp start = ...; -Timestamp end = ...; -ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( - businessId: businessId, - start: start, - end: end, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShiftRolesByBusinessDateRangeCompletedOrders, we created `listShiftRolesByBusinessDateRangeCompletedOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder { - ... - ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( - businessId: businessId, - start: start, - end: end, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( - businessId: businessId, - start: start, - end: end, -); -listShiftRolesByBusinessDateRangeCompletedOrdersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; -Timestamp start = ...; -Timestamp end = ...; - -final ref = ExampleConnector.instance.listShiftRolesByBusinessDateRangeCompletedOrders( - businessId: businessId, - start: start, - end: end, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getVendorById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getVendorById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getVendorById( - id: id, -); -getVendorByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getVendorById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getVendorByUserId -#### Required Arguments -```dart -String userId = ...; -ExampleConnector.instance.getVendorByUserId( - userId: userId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getVendorByUserId( - userId: userId, -); -getVendorByUserIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; - -final ref = ExampleConnector.instance.getVendorByUserId( - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listVendors -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listVendors().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listVendors(); -listVendorsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listVendors().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listVendorRates -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listVendorRates().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listVendorRates(); -listVendorRatesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listVendorRates().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getVendorRateById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getVendorRateById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getVendorRateById( - id: id, -); -getVendorRateByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getVendorRateById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - ### listAccounts #### Required Arguments ```dart @@ -4430,183 +12220,39 @@ ref.subscribe(...); ``` -### listHubs +### listActivityLogs #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.listHubs().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listHubs(); -listHubsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listHubs().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getHubById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getHubById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getHubById( - id: id, -); -getHubByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getHubById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getHubsByOwnerId -#### Required Arguments -```dart -String ownerId = ...; -ExampleConnector.instance.getHubsByOwnerId( - ownerId: ownerId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getHubsByOwnerId( - ownerId: ownerId, -); -getHubsByOwnerIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String ownerId = ...; - -final ref = ExampleConnector.instance.getHubsByOwnerId( - ownerId: ownerId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterHubs -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterHubs().execute(); +ExampleConnector.instance.listActivityLogs().execute(); ``` #### Optional Arguments -We return a builder for each query. For filterHubs, we created `filterHubsBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For listActivityLogs, we created `listActivityLogsBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class FilterHubsVariablesBuilder { +class ListActivityLogsVariablesBuilder { ... - FilterHubsVariablesBuilder ownerId(String? t) { - _ownerId.value = t; + ListActivityLogsVariablesBuilder offset(int? t) { + _offset.value = t; return this; } - FilterHubsVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - FilterHubsVariablesBuilder nfcTagId(String? t) { - _nfcTagId.value = t; + ListActivityLogsVariablesBuilder limit(int? t) { + _limit.value = t; return this; } ... } -ExampleConnector.instance.filterHubs() -.ownerId(ownerId) -.name(name) -.nfcTagId(nfcTagId) +ExampleConnector.instance.listActivityLogs() +.offset(offset) +.limit(limit) .execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -4621,8 +12267,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.filterHubs(); -filterHubsData data = result.data; +final result = await ExampleConnector.instance.listActivityLogs(); +listActivityLogsData data = result.data; final ref = result.ref; ``` @@ -4630,46 +12276,269 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.filterHubs().ref(); +final ref = ExampleConnector.instance.listActivityLogs().ref(); ref.execute(); ref.subscribe(...); ``` -### listRecentPayments +### getActivityLogById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getActivityLogById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getActivityLogById( + id: id, +); +getActivityLogByIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.getActivityLogById( + id: id, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listActivityLogsByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.listActivityLogsByUserId( + userId: userId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listActivityLogsByUserId, we created `listActivityLogsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListActivityLogsByUserIdVariablesBuilder { + ... + ListActivityLogsByUserIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListActivityLogsByUserIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listActivityLogsByUserId( + userId: userId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listActivityLogsByUserId( + userId: userId, +); +listActivityLogsByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.listActivityLogsByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### listUnreadActivityLogsByUserId +#### Required Arguments +```dart +String userId = ...; +ExampleConnector.instance.listUnreadActivityLogsByUserId( + userId: userId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For listUnreadActivityLogsByUserId, we created `listUnreadActivityLogsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class ListUnreadActivityLogsByUserIdVariablesBuilder { + ... + ListUnreadActivityLogsByUserIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListUnreadActivityLogsByUserIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ... +} +ExampleConnector.instance.listUnreadActivityLogsByUserId( + userId: userId, +) +.offset(offset) +.limit(limit) +.execute(); +``` + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.listUnreadActivityLogsByUserId( + userId: userId, +); +listUnreadActivityLogsByUserIdData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; + +final ref = ExampleConnector.instance.listUnreadActivityLogsByUserId( + userId: userId, +).ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### filterActivityLogs #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.listRecentPayments().execute(); +ExampleConnector.instance.filterActivityLogs().execute(); ``` #### Optional Arguments -We return a builder for each query. For listRecentPayments, we created `listRecentPaymentsBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For filterActivityLogs, we created `filterActivityLogsBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class ListRecentPaymentsVariablesBuilder { +class FilterActivityLogsVariablesBuilder { ... - ListRecentPaymentsVariablesBuilder offset(int? t) { + FilterActivityLogsVariablesBuilder userId(String? t) { + _userId.value = t; + return this; + } + FilterActivityLogsVariablesBuilder dateFrom(Timestamp? t) { + _dateFrom.value = t; + return this; + } + FilterActivityLogsVariablesBuilder dateTo(Timestamp? t) { + _dateTo.value = t; + return this; + } + FilterActivityLogsVariablesBuilder isRead(bool? t) { + _isRead.value = t; + return this; + } + FilterActivityLogsVariablesBuilder activityType(ActivityType? t) { + _activityType.value = t; + return this; + } + FilterActivityLogsVariablesBuilder iconType(ActivityIconType? t) { + _iconType.value = t; + return this; + } + FilterActivityLogsVariablesBuilder offset(int? t) { _offset.value = t; return this; } - ListRecentPaymentsVariablesBuilder limit(int? t) { + FilterActivityLogsVariablesBuilder limit(int? t) { _limit.value = t; return this; } ... } -ExampleConnector.instance.listRecentPayments() +ExampleConnector.instance.filterActivityLogs() +.userId(userId) +.dateFrom(dateFrom) +.dateTo(dateTo) +.isRead(isRead) +.activityType(activityType) +.iconType(iconType) .offset(offset) .limit(limit) .execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -4684,8 +12553,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listRecentPayments(); -listRecentPaymentsData data = result.data; +final result = await ExampleConnector.instance.filterActivityLogs(); +filterActivityLogsData data = result.data; final ref = result.ref; ``` @@ -4693,26 +12562,24 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.listRecentPayments().ref(); +final ref = ExampleConnector.instance.filterActivityLogs().ref(); ref.execute(); ref.subscribe(...); ``` -### getRecentPaymentById +### listFaqDatas #### Required Arguments ```dart -String id = ...; -ExampleConnector.instance.getRecentPaymentById( - id: id, -).execute(); +// No required arguments +ExampleConnector.instance.listFaqDatas().execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -4727,10 +12594,53 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getRecentPaymentById( +final result = await ExampleConnector.instance.listFaqDatas(); +listFaqDatasData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +final ref = ExampleConnector.instance.listFaqDatas().ref(); +ref.execute(); + +ref.subscribe(...); +``` + + +### getFaqDataById +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.getFaqDataById( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `QueryResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +/// Result of a query request. Created to hold extra variables in the future. +class QueryResult extends OperationResult { + QueryResult(super.dataConnect, super.data, super.ref); +} + +final result = await ExampleConnector.instance.getFaqDataById( id: id, ); -getRecentPaymentByIdData data = result.data; +getFaqDataByIdData data = result.data; final ref = result.ref; ``` @@ -4740,7 +12650,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.getRecentPaymentById( +final ref = ExampleConnector.instance.getFaqDataById( id: id, ).ref(); ref.execute(); @@ -4749,42 +12659,34 @@ ref.subscribe(...); ``` -### listRecentPaymentsByStaffId +### filterFaqDatas #### Required Arguments ```dart -String staffId = ...; -ExampleConnector.instance.listRecentPaymentsByStaffId( - staffId: staffId, -).execute(); +// No required arguments +ExampleConnector.instance.filterFaqDatas().execute(); ``` #### Optional Arguments -We return a builder for each query. For listRecentPaymentsByStaffId, we created `listRecentPaymentsByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For filterFaqDatas, we created `filterFaqDatasBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class ListRecentPaymentsByStaffIdVariablesBuilder { +class FilterFaqDatasVariablesBuilder { ... - ListRecentPaymentsByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; + + FilterFaqDatasVariablesBuilder category(String? t) { + _category.value = t; return this; } ... } -ExampleConnector.instance.listRecentPaymentsByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) +ExampleConnector.instance.filterFaqDatas() +.category(category) .execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -4799,10 +12701,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listRecentPaymentsByStaffId( - staffId: staffId, -); -listRecentPaymentsByStaffIdData data = result.data; +final result = await ExampleConnector.instance.filterFaqDatas(); +filterFaqDatasData data = result.data; final ref = result.ref; ``` @@ -4810,371 +12710,7 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRecentPaymentsByApplicationId -#### Required Arguments -```dart -String applicationId = ...; -ExampleConnector.instance.listRecentPaymentsByApplicationId( - applicationId: applicationId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listRecentPaymentsByApplicationId, we created `listRecentPaymentsByApplicationIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListRecentPaymentsByApplicationIdVariablesBuilder { - ... - ListRecentPaymentsByApplicationIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByApplicationIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listRecentPaymentsByApplicationId( - applicationId: applicationId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRecentPaymentsByApplicationId( - applicationId: applicationId, -); -listRecentPaymentsByApplicationIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String applicationId = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByApplicationId( - applicationId: applicationId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRecentPaymentsByInvoiceId -#### Required Arguments -```dart -String invoiceId = ...; -ExampleConnector.instance.listRecentPaymentsByInvoiceId( - invoiceId: invoiceId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listRecentPaymentsByInvoiceId, we created `listRecentPaymentsByInvoiceIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListRecentPaymentsByInvoiceIdVariablesBuilder { - ... - ListRecentPaymentsByInvoiceIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByInvoiceIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listRecentPaymentsByInvoiceId( - invoiceId: invoiceId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRecentPaymentsByInvoiceId( - invoiceId: invoiceId, -); -listRecentPaymentsByInvoiceIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String invoiceId = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByInvoiceId( - invoiceId: invoiceId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRecentPaymentsByStatus -#### Required Arguments -```dart -RecentPaymentStatus status = ...; -ExampleConnector.instance.listRecentPaymentsByStatus( - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listRecentPaymentsByStatus, we created `listRecentPaymentsByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListRecentPaymentsByStatusVariablesBuilder { - ... - ListRecentPaymentsByStatusVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByStatusVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listRecentPaymentsByStatus( - status: status, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRecentPaymentsByStatus( - status: status, -); -listRecentPaymentsByStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -RecentPaymentStatus status = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByStatus( - status: status, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRecentPaymentsByInvoiceIds -#### Required Arguments -```dart -String invoiceIds = ...; -ExampleConnector.instance.listRecentPaymentsByInvoiceIds( - invoiceIds: invoiceIds, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listRecentPaymentsByInvoiceIds, we created `listRecentPaymentsByInvoiceIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListRecentPaymentsByInvoiceIdsVariablesBuilder { - ... - ListRecentPaymentsByInvoiceIdsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByInvoiceIdsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listRecentPaymentsByInvoiceIds( - invoiceIds: invoiceIds, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRecentPaymentsByInvoiceIds( - invoiceIds: invoiceIds, -); -listRecentPaymentsByInvoiceIdsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String invoiceIds = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByInvoiceIds( - invoiceIds: invoiceIds, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRecentPaymentsByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.listRecentPaymentsByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listRecentPaymentsByBusinessId, we created `listRecentPaymentsByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListRecentPaymentsByBusinessIdVariablesBuilder { - ... - ListRecentPaymentsByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListRecentPaymentsByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listRecentPaymentsByBusinessId( - businessId: businessId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRecentPaymentsByBusinessId( - businessId: businessId, -); -listRecentPaymentsByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.listRecentPaymentsByBusinessId( - businessId: businessId, -).ref(); +final ref = ExampleConnector.instance.filterFaqDatas().ref(); ref.execute(); ref.subscribe(...); @@ -5451,208 +12987,6 @@ ref.subscribe(...); ``` -### listTasks -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTasks().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTasks(); -listTasksData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTasks().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTaskById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTaskById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTaskById( - id: id, -); -getTaskByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getTaskById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTasksByOwnerId -#### Required Arguments -```dart -String ownerId = ...; -ExampleConnector.instance.getTasksByOwnerId( - ownerId: ownerId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTasksByOwnerId( - ownerId: ownerId, -); -getTasksByOwnerIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String ownerId = ...; - -final ref = ExampleConnector.instance.getTasksByOwnerId( - ownerId: ownerId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterTasks -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterTasks().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterTasks, we created `filterTasksBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterTasksVariablesBuilder { - ... - - FilterTasksVariablesBuilder status(TaskStatus? t) { - _status.value = t; - return this; - } - FilterTasksVariablesBuilder priority(TaskPriority? t) { - _priority.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterTasks() -.status(status) -.priority(priority) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterTasks(); -filterTasksData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterTasks().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - ### listTaskComments #### Required Arguments ```dart @@ -5792,17 +13126,17 @@ ref.subscribe(...); ``` -### listFaqDatas +### listTeams #### Required Arguments ```dart // No required arguments -ExampleConnector.instance.listFaqDatas().execute(); +ExampleConnector.instance.listTeams().execute(); ``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -5817,8 +13151,8 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listFaqDatas(); -listFaqDatasData data = result.data; +final result = await ExampleConnector.instance.listTeams(); +listTeamsData data = result.data; final ref = result.ref; ``` @@ -5826,18 +13160,18 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -final ref = ExampleConnector.instance.listFaqDatas().ref(); +final ref = ExampleConnector.instance.listTeams().ref(); ref.execute(); ref.subscribe(...); ``` -### getFaqDataById +### getTeamById #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.getFaqDataById( +ExampleConnector.instance.getTeamById( id: id, ).execute(); ``` @@ -5845,7 +13179,7 @@ ExampleConnector.instance.getFaqDataById( #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -5860,10 +13194,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.getFaqDataById( +final result = await ExampleConnector.instance.getTeamById( id: id, ); -getFaqDataByIdData data = result.data; +getTeamByIdData data = result.data; final ref = result.ref; ``` @@ -5873,7 +13207,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.getFaqDataById( +final ref = ExampleConnector.instance.getTeamById( id: id, ).ref(); ref.execute(); @@ -5882,212 +13216,19 @@ ref.subscribe(...); ``` -### filterFaqDatas -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterFaqDatas().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterFaqDatas, we created `filterFaqDatasBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterFaqDatasVariablesBuilder { - ... - - FilterFaqDatasVariablesBuilder category(String? t) { - _category.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterFaqDatas() -.category(category) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterFaqDatas(); -filterFaqDatasData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterFaqDatas().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoiceTemplates -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listInvoiceTemplates().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoiceTemplates, we created `listInvoiceTemplatesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoiceTemplatesVariablesBuilder { - ... - - ListInvoiceTemplatesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoiceTemplatesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoiceTemplates() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoiceTemplates(); -listInvoiceTemplatesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listInvoiceTemplates().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getInvoiceTemplateById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getInvoiceTemplateById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getInvoiceTemplateById( - id: id, -); -getInvoiceTemplateByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getInvoiceTemplateById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoiceTemplatesByOwnerId +### getTeamsByOwnerId #### Required Arguments ```dart String ownerId = ...; -ExampleConnector.instance.listInvoiceTemplatesByOwnerId( +ExampleConnector.instance.getTeamsByOwnerId( ownerId: ownerId, ).execute(); ``` -#### Optional Arguments -We return a builder for each query. For listInvoiceTemplatesByOwnerId, we created `listInvoiceTemplatesByOwnerIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoiceTemplatesByOwnerIdVariablesBuilder { - ... - ListInvoiceTemplatesByOwnerIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoiceTemplatesByOwnerIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - ... -} -ExampleConnector.instance.listInvoiceTemplatesByOwnerId( - ownerId: ownerId, -) -.offset(offset) -.limit(limit) -.execute(); -``` #### Return Type -`execute()` returns a `QueryResult` +`execute()` returns a `QueryResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -6102,10 +13243,10 @@ class QueryResult extends OperationResult { QueryResult(super.dataConnect, super.data, super.ref); } -final result = await ExampleConnector.instance.listInvoiceTemplatesByOwnerId( +final result = await ExampleConnector.instance.getTeamsByOwnerId( ownerId: ownerId, ); -listInvoiceTemplatesByOwnerIdData data = result.data; +getTeamsByOwnerIdData data = result.data; final ref = result.ref; ``` @@ -6115,7 +13256,7 @@ An example of how to use the `Ref` object is shown below: ```dart String ownerId = ...; -final ref = ExampleConnector.instance.listInvoiceTemplatesByOwnerId( +final ref = ExampleConnector.instance.getTeamsByOwnerId( ownerId: ownerId, ).ref(); ref.execute(); @@ -6124,2037 +13265,6 @@ ref.subscribe(...); ``` -### listInvoiceTemplatesByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listInvoiceTemplatesByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoiceTemplatesByVendorId, we created `listInvoiceTemplatesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoiceTemplatesByVendorIdVariablesBuilder { - ... - ListInvoiceTemplatesByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoiceTemplatesByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoiceTemplatesByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoiceTemplatesByVendorId( - vendorId: vendorId, -); -listInvoiceTemplatesByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listInvoiceTemplatesByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoiceTemplatesByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.listInvoiceTemplatesByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoiceTemplatesByBusinessId, we created `listInvoiceTemplatesByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoiceTemplatesByBusinessIdVariablesBuilder { - ... - ListInvoiceTemplatesByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoiceTemplatesByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoiceTemplatesByBusinessId( - businessId: businessId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoiceTemplatesByBusinessId( - businessId: businessId, -); -listInvoiceTemplatesByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.listInvoiceTemplatesByBusinessId( - businessId: businessId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoiceTemplatesByOrderId -#### Required Arguments -```dart -String orderId = ...; -ExampleConnector.instance.listInvoiceTemplatesByOrderId( - orderId: orderId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoiceTemplatesByOrderId, we created `listInvoiceTemplatesByOrderIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoiceTemplatesByOrderIdVariablesBuilder { - ... - ListInvoiceTemplatesByOrderIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoiceTemplatesByOrderIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoiceTemplatesByOrderId( - orderId: orderId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoiceTemplatesByOrderId( - orderId: orderId, -); -listInvoiceTemplatesByOrderIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String orderId = ...; - -final ref = ExampleConnector.instance.listInvoiceTemplatesByOrderId( - orderId: orderId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### searchInvoiceTemplatesByOwnerAndName -#### Required Arguments -```dart -String ownerId = ...; -String name = ...; -ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( - ownerId: ownerId, - name: name, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For searchInvoiceTemplatesByOwnerAndName, we created `searchInvoiceTemplatesByOwnerAndNameBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder { - ... - SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( - ownerId: ownerId, - name: name, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( - ownerId: ownerId, - name: name, -); -searchInvoiceTemplatesByOwnerAndNameData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String ownerId = ...; -String name = ...; - -final ref = ExampleConnector.instance.searchInvoiceTemplatesByOwnerAndName( - ownerId: ownerId, - name: name, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listMessages -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listMessages().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listMessages(); -listMessagesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listMessages().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getMessageById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getMessageById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getMessageById( - id: id, -); -getMessageByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getMessageById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getMessagesByConversationId -#### Required Arguments -```dart -String conversationId = ...; -ExampleConnector.instance.getMessagesByConversationId( - conversationId: conversationId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getMessagesByConversationId( - conversationId: conversationId, -); -getMessagesByConversationIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String conversationId = ...; - -final ref = ExampleConnector.instance.getMessagesByConversationId( - conversationId: conversationId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaff -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listStaff().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaff(); -listStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listStaff().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getStaffById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffById( - id: id, -); -getStaffByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getStaffById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffByUserId -#### Required Arguments -```dart -String userId = ...; -ExampleConnector.instance.getStaffByUserId( - userId: userId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffByUserId( - userId: userId, -); -getStaffByUserIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; - -final ref = ExampleConnector.instance.getStaffByUserId( - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterStaff -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterStaff().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterStaff, we created `filterStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterStaffVariablesBuilder { - ... - - FilterStaffVariablesBuilder ownerId(String? t) { - _ownerId.value = t; - return this; - } - FilterStaffVariablesBuilder fullName(String? t) { - _fullName.value = t; - return this; - } - FilterStaffVariablesBuilder level(String? t) { - _level.value = t; - return this; - } - FilterStaffVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterStaff() -.ownerId(ownerId) -.fullName(fullName) -.level(level) -.email(email) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterStaff(); -filterStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterStaff().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listUserConversations -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listUserConversations().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listUserConversations, we created `listUserConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListUserConversationsVariablesBuilder { - ... - - ListUserConversationsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListUserConversationsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listUserConversations() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUserConversations(); -listUserConversationsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listUserConversations().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getUserConversationByKey -#### Required Arguments -```dart -String conversationId = ...; -String userId = ...; -ExampleConnector.instance.getUserConversationByKey( - conversationId: conversationId, - userId: userId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getUserConversationByKey( - conversationId: conversationId, - userId: userId, -); -getUserConversationByKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String conversationId = ...; -String userId = ...; - -final ref = ExampleConnector.instance.getUserConversationByKey( - conversationId: conversationId, - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listUserConversationsByUserId -#### Required Arguments -```dart -String userId = ...; -ExampleConnector.instance.listUserConversationsByUserId( - userId: userId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listUserConversationsByUserId, we created `listUserConversationsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListUserConversationsByUserIdVariablesBuilder { - ... - ListUserConversationsByUserIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListUserConversationsByUserIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listUserConversationsByUserId( - userId: userId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUserConversationsByUserId( - userId: userId, -); -listUserConversationsByUserIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; - -final ref = ExampleConnector.instance.listUserConversationsByUserId( - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listUnreadUserConversationsByUserId -#### Required Arguments -```dart -String userId = ...; -ExampleConnector.instance.listUnreadUserConversationsByUserId( - userId: userId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listUnreadUserConversationsByUserId, we created `listUnreadUserConversationsByUserIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListUnreadUserConversationsByUserIdVariablesBuilder { - ... - ListUnreadUserConversationsByUserIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListUnreadUserConversationsByUserIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listUnreadUserConversationsByUserId( - userId: userId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUnreadUserConversationsByUserId( - userId: userId, -); -listUnreadUserConversationsByUserIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; - -final ref = ExampleConnector.instance.listUnreadUserConversationsByUserId( - userId: userId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listUserConversationsByConversationId -#### Required Arguments -```dart -String conversationId = ...; -ExampleConnector.instance.listUserConversationsByConversationId( - conversationId: conversationId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listUserConversationsByConversationId, we created `listUserConversationsByConversationIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListUserConversationsByConversationIdVariablesBuilder { - ... - ListUserConversationsByConversationIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListUserConversationsByConversationIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listUserConversationsByConversationId( - conversationId: conversationId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUserConversationsByConversationId( - conversationId: conversationId, -); -listUserConversationsByConversationIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String conversationId = ...; - -final ref = ExampleConnector.instance.listUserConversationsByConversationId( - conversationId: conversationId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterUserConversations -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterUserConversations().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterUserConversations, we created `filterUserConversationsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterUserConversationsVariablesBuilder { - ... - - FilterUserConversationsVariablesBuilder userId(String? t) { - _userId.value = t; - return this; - } - FilterUserConversationsVariablesBuilder conversationId(String? t) { - _conversationId.value = t; - return this; - } - FilterUserConversationsVariablesBuilder unreadMin(int? t) { - _unreadMin.value = t; - return this; - } - FilterUserConversationsVariablesBuilder unreadMax(int? t) { - _unreadMax.value = t; - return this; - } - FilterUserConversationsVariablesBuilder lastReadAfter(Timestamp? t) { - _lastReadAfter.value = t; - return this; - } - FilterUserConversationsVariablesBuilder lastReadBefore(Timestamp? t) { - _lastReadBefore.value = t; - return this; - } - FilterUserConversationsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterUserConversationsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterUserConversations() -.userId(userId) -.conversationId(conversationId) -.unreadMin(unreadMin) -.unreadMax(unreadMax) -.lastReadAfter(lastReadAfter) -.lastReadBefore(lastReadBefore) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterUserConversations(); -filterUserConversationsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterUserConversations().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getMyTasks -#### Required Arguments -```dart -String teamMemberId = ...; -ExampleConnector.instance.getMyTasks( - teamMemberId: teamMemberId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getMyTasks( - teamMemberId: teamMemberId, -); -getMyTasksData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamMemberId = ...; - -final ref = ExampleConnector.instance.getMyTasks( - teamMemberId: teamMemberId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getMemberTaskByIdKey -#### Required Arguments -```dart -String teamMemberId = ...; -String taskId = ...; -ExampleConnector.instance.getMemberTaskByIdKey( - teamMemberId: teamMemberId, - taskId: taskId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getMemberTaskByIdKey( - teamMemberId: teamMemberId, - taskId: taskId, -); -getMemberTaskByIdKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamMemberId = ...; -String taskId = ...; - -final ref = ExampleConnector.instance.getMemberTaskByIdKey( - teamMemberId: teamMemberId, - taskId: taskId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getMemberTasksByTaskId -#### Required Arguments -```dart -String taskId = ...; -ExampleConnector.instance.getMemberTasksByTaskId( - taskId: taskId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getMemberTasksByTaskId( - taskId: taskId, -); -getMemberTasksByTaskIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String taskId = ...; - -final ref = ExampleConnector.instance.getMemberTasksByTaskId( - taskId: taskId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listShifts -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listShifts().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listShifts, we created `listShiftsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListShiftsVariablesBuilder { - ... - - ListShiftsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListShiftsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listShifts() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listShifts(); -listShiftsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listShifts().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getShiftById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getShiftById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getShiftById( - id: id, -); -getShiftByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getShiftById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterShifts -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterShifts().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterShifts, we created `filterShiftsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterShiftsVariablesBuilder { - ... - - FilterShiftsVariablesBuilder status(ShiftStatus? t) { - _status.value = t; - return this; - } - FilterShiftsVariablesBuilder orderId(String? t) { - _orderId.value = t; - return this; - } - FilterShiftsVariablesBuilder dateFrom(Timestamp? t) { - _dateFrom.value = t; - return this; - } - FilterShiftsVariablesBuilder dateTo(Timestamp? t) { - _dateTo.value = t; - return this; - } - FilterShiftsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterShiftsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterShifts() -.status(status) -.orderId(orderId) -.dateFrom(dateFrom) -.dateTo(dateTo) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterShifts(); -filterShiftsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterShifts().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getShiftsByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.getShiftsByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getShiftsByBusinessId, we created `getShiftsByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetShiftsByBusinessIdVariablesBuilder { - ... - GetShiftsByBusinessIdVariablesBuilder dateFrom(Timestamp? t) { - _dateFrom.value = t; - return this; - } - GetShiftsByBusinessIdVariablesBuilder dateTo(Timestamp? t) { - _dateTo.value = t; - return this; - } - GetShiftsByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetShiftsByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getShiftsByBusinessId( - businessId: businessId, -) -.dateFrom(dateFrom) -.dateTo(dateTo) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getShiftsByBusinessId( - businessId: businessId, -); -getShiftsByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.getShiftsByBusinessId( - businessId: businessId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getShiftsByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.getShiftsByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getShiftsByVendorId, we created `getShiftsByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetShiftsByVendorIdVariablesBuilder { - ... - GetShiftsByVendorIdVariablesBuilder dateFrom(Timestamp? t) { - _dateFrom.value = t; - return this; - } - GetShiftsByVendorIdVariablesBuilder dateTo(Timestamp? t) { - _dateTo.value = t; - return this; - } - GetShiftsByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetShiftsByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getShiftsByVendorId( - vendorId: vendorId, -) -.dateFrom(dateFrom) -.dateTo(dateTo) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getShiftsByVendorId( - vendorId: vendorId, -); -getShiftsByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.getShiftsByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getWorkforceById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getWorkforceById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getWorkforceById( - id: id, -); -getWorkforceByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getWorkforceById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getWorkforceByVendorAndStaff -#### Required Arguments -```dart -String vendorId = ...; -String staffId = ...; -ExampleConnector.instance.getWorkforceByVendorAndStaff( - vendorId: vendorId, - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getWorkforceByVendorAndStaff( - vendorId: vendorId, - staffId: staffId, -); -getWorkforceByVendorAndStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; -String staffId = ...; - -final ref = ExampleConnector.instance.getWorkforceByVendorAndStaff( - vendorId: vendorId, - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listWorkforceByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listWorkforceByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listWorkforceByVendorId, we created `listWorkforceByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListWorkforceByVendorIdVariablesBuilder { - ... - ListWorkforceByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListWorkforceByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listWorkforceByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listWorkforceByVendorId( - vendorId: vendorId, -); -listWorkforceByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listWorkforceByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listWorkforceByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listWorkforceByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listWorkforceByStaffId, we created `listWorkforceByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListWorkforceByStaffIdVariablesBuilder { - ... - ListWorkforceByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListWorkforceByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listWorkforceByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listWorkforceByStaffId( - staffId: staffId, -); -listWorkforceByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listWorkforceByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getWorkforceByVendorAndNumber -#### Required Arguments -```dart -String vendorId = ...; -String workforceNumber = ...; -ExampleConnector.instance.getWorkforceByVendorAndNumber( - vendorId: vendorId, - workforceNumber: workforceNumber, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getWorkforceByVendorAndNumber( - vendorId: vendorId, - workforceNumber: workforceNumber, -); -getWorkforceByVendorAndNumberData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; -String workforceNumber = ...; - -final ref = ExampleConnector.instance.getWorkforceByVendorAndNumber( - vendorId: vendorId, - workforceNumber: workforceNumber, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listDocuments -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listDocuments().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listDocuments(); -listDocumentsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listDocuments().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getDocumentById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getDocumentById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getDocumentById( - id: id, -); -getDocumentByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getDocumentById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterDocuments -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterDocuments().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterDocuments, we created `filterDocumentsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterDocumentsVariablesBuilder { - ... - - FilterDocumentsVariablesBuilder documentType(DocumentType? t) { - _documentType.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterDocuments() -.documentType(documentType) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterDocuments(); -filterDocumentsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterDocuments().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - ### listEmergencyContacts #### Required Arguments ```dart @@ -8293,4918 +13403,519 @@ ref.execute(); ref.subscribe(...); ``` - -### listLevels -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listLevels().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listLevels(); -listLevelsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listLevels().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getLevelById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getLevelById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getLevelById( - id: id, -); -getLevelByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getLevelById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterLevels -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterLevels().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterLevels, we created `filterLevelsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterLevelsVariablesBuilder { - ... - - FilterLevelsVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - FilterLevelsVariablesBuilder xpRequired(int? t) { - _xpRequired.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterLevels() -.name(name) -.xpRequired(xpRequired) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterLevels(); -filterLevelsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterLevels().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffAvailabilityStats -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listStaffAvailabilityStats().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffAvailabilityStats, we created `listStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffAvailabilityStatsVariablesBuilder { - ... - - ListStaffAvailabilityStatsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffAvailabilityStatsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffAvailabilityStats() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffAvailabilityStats(); -listStaffAvailabilityStatsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listStaffAvailabilityStats().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffAvailabilityStatsByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( - staffId: staffId, -); -getStaffAvailabilityStatsByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.getStaffAvailabilityStatsByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterStaffAvailabilityStats -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterStaffAvailabilityStats().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterStaffAvailabilityStats, we created `filterStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterStaffAvailabilityStatsVariablesBuilder { - ... - - FilterStaffAvailabilityStatsVariablesBuilder needWorkIndexMin(int? t) { - _needWorkIndexMin.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder needWorkIndexMax(int? t) { - _needWorkIndexMax.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder utilizationMin(int? t) { - _utilizationMin.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder utilizationMax(int? t) { - _utilizationMax.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder acceptanceRateMin(int? t) { - _acceptanceRateMin.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder acceptanceRateMax(int? t) { - _acceptanceRateMax.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder lastShiftAfter(Timestamp? t) { - _lastShiftAfter.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder lastShiftBefore(Timestamp? t) { - _lastShiftBefore.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterStaffAvailabilityStatsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterStaffAvailabilityStats() -.needWorkIndexMin(needWorkIndexMin) -.needWorkIndexMax(needWorkIndexMax) -.utilizationMin(utilizationMin) -.utilizationMax(utilizationMax) -.acceptanceRateMin(acceptanceRateMin) -.acceptanceRateMax(acceptanceRateMax) -.lastShiftAfter(lastShiftAfter) -.lastShiftBefore(lastShiftBefore) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterStaffAvailabilityStats(); -filterStaffAvailabilityStatsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterStaffAvailabilityStats().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAssignments -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listAssignments().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAssignments, we created `listAssignmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAssignmentsVariablesBuilder { - ... - - ListAssignmentsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAssignmentsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAssignments() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAssignments(); -listAssignmentsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listAssignments().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getAssignmentById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getAssignmentById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getAssignmentById( - id: id, -); -getAssignmentByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getAssignmentById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAssignmentsByWorkforceId -#### Required Arguments -```dart -String workforceId = ...; -ExampleConnector.instance.listAssignmentsByWorkforceId( - workforceId: workforceId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAssignmentsByWorkforceId, we created `listAssignmentsByWorkforceIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAssignmentsByWorkforceIdVariablesBuilder { - ... - ListAssignmentsByWorkforceIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAssignmentsByWorkforceIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAssignmentsByWorkforceId( - workforceId: workforceId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAssignmentsByWorkforceId( - workforceId: workforceId, -); -listAssignmentsByWorkforceIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String workforceId = ...; - -final ref = ExampleConnector.instance.listAssignmentsByWorkforceId( - workforceId: workforceId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAssignmentsByWorkforceIds -#### Required Arguments -```dart -String workforceIds = ...; -ExampleConnector.instance.listAssignmentsByWorkforceIds( - workforceIds: workforceIds, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAssignmentsByWorkforceIds, we created `listAssignmentsByWorkforceIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAssignmentsByWorkforceIdsVariablesBuilder { - ... - ListAssignmentsByWorkforceIdsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAssignmentsByWorkforceIdsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAssignmentsByWorkforceIds( - workforceIds: workforceIds, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAssignmentsByWorkforceIds( - workforceIds: workforceIds, -); -listAssignmentsByWorkforceIdsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String workforceIds = ...; - -final ref = ExampleConnector.instance.listAssignmentsByWorkforceIds( - workforceIds: workforceIds, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAssignmentsByShiftRole -#### Required Arguments -```dart -String shiftId = ...; -String roleId = ...; -ExampleConnector.instance.listAssignmentsByShiftRole( - shiftId: shiftId, - roleId: roleId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAssignmentsByShiftRole, we created `listAssignmentsByShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAssignmentsByShiftRoleVariablesBuilder { - ... - ListAssignmentsByShiftRoleVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAssignmentsByShiftRoleVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAssignmentsByShiftRole( - shiftId: shiftId, - roleId: roleId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAssignmentsByShiftRole( - shiftId: shiftId, - roleId: roleId, -); -listAssignmentsByShiftRoleData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -String roleId = ...; - -final ref = ExampleConnector.instance.listAssignmentsByShiftRole( - shiftId: shiftId, - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterAssignments -#### Required Arguments -```dart -String shiftIds = ...; -String roleIds = ...; -ExampleConnector.instance.filterAssignments( - shiftIds: shiftIds, - roleIds: roleIds, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterAssignments, we created `filterAssignmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterAssignmentsVariablesBuilder { - ... - FilterAssignmentsVariablesBuilder status(AssignmentStatus? t) { - _status.value = t; - return this; - } - FilterAssignmentsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterAssignmentsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterAssignments( - shiftIds: shiftIds, - roleIds: roleIds, -) -.status(status) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterAssignments( - shiftIds: shiftIds, - roleIds: roleIds, -); -filterAssignmentsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftIds = ...; -String roleIds = ...; - -final ref = ExampleConnector.instance.filterAssignments( - shiftIds: shiftIds, - roleIds: roleIds, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listCertificates -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listCertificates().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listCertificates(); -listCertificatesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listCertificates().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getCertificateById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getCertificateById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getCertificateById( - id: id, -); -getCertificateByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getCertificateById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listCertificatesByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listCertificatesByStaffId( - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listCertificatesByStaffId( - staffId: staffId, -); -listCertificatesByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listCertificatesByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listApplications -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listApplications().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listApplications(); -listApplicationsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listApplications().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getApplicationById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getApplicationById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getApplicationById( - id: id, -); -getApplicationByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getApplicationById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getApplicationsByShiftId -#### Required Arguments -```dart -String shiftId = ...; -ExampleConnector.instance.getApplicationsByShiftId( - shiftId: shiftId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getApplicationsByShiftId( - shiftId: shiftId, -); -getApplicationsByShiftIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; - -final ref = ExampleConnector.instance.getApplicationsByShiftId( - shiftId: shiftId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getApplicationsByShiftIdAndStatus -#### Required Arguments -```dart -String shiftId = ...; -ApplicationStatus status = ...; -ExampleConnector.instance.getApplicationsByShiftIdAndStatus( - shiftId: shiftId, - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getApplicationsByShiftIdAndStatus, we created `getApplicationsByShiftIdAndStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetApplicationsByShiftIdAndStatusVariablesBuilder { - ... - GetApplicationsByShiftIdAndStatusVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetApplicationsByShiftIdAndStatusVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getApplicationsByShiftIdAndStatus( - shiftId: shiftId, - status: status, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getApplicationsByShiftIdAndStatus( - shiftId: shiftId, - status: status, -); -getApplicationsByShiftIdAndStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -ApplicationStatus status = ...; - -final ref = ExampleConnector.instance.getApplicationsByShiftIdAndStatus( - shiftId: shiftId, - status: status, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getApplicationsByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.getApplicationsByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getApplicationsByStaffId, we created `getApplicationsByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetApplicationsByStaffIdVariablesBuilder { - ... - GetApplicationsByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetApplicationsByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getApplicationsByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getApplicationsByStaffId( - staffId: staffId, -); -getApplicationsByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.getApplicationsByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAcceptedApplicationsByShiftRoleKey -#### Required Arguments -```dart -String shiftId = ...; -String roleId = ...; -ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( - shiftId: shiftId, - roleId: roleId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAcceptedApplicationsByShiftRoleKey, we created `listAcceptedApplicationsByShiftRoleKeyBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder { - ... - ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( - shiftId: shiftId, - roleId: roleId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( - shiftId: shiftId, - roleId: roleId, -); -listAcceptedApplicationsByShiftRoleKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -String roleId = ...; - -final ref = ExampleConnector.instance.listAcceptedApplicationsByShiftRoleKey( - shiftId: shiftId, - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAcceptedApplicationsByBusinessForDay -#### Required Arguments -```dart -String businessId = ...; -Timestamp dayStart = ...; -Timestamp dayEnd = ...; -ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( - businessId: businessId, - dayStart: dayStart, - dayEnd: dayEnd, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listAcceptedApplicationsByBusinessForDay, we created `listAcceptedApplicationsByBusinessForDayBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListAcceptedApplicationsByBusinessForDayVariablesBuilder { - ... - ListAcceptedApplicationsByBusinessForDayVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListAcceptedApplicationsByBusinessForDayVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( - businessId: businessId, - dayStart: dayStart, - dayEnd: dayEnd, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( - businessId: businessId, - dayStart: dayStart, - dayEnd: dayEnd, -); -listAcceptedApplicationsByBusinessForDayData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; -Timestamp dayStart = ...; -Timestamp dayEnd = ...; - -final ref = ExampleConnector.instance.listAcceptedApplicationsByBusinessForDay( - businessId: businessId, - dayStart: dayStart, - dayEnd: dayEnd, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listAttireOptions -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listAttireOptions().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listAttireOptions(); -listAttireOptionsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listAttireOptions().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getAttireOptionById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getAttireOptionById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getAttireOptionById( - id: id, -); -getAttireOptionByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getAttireOptionById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterAttireOptions -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterAttireOptions().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterAttireOptions, we created `filterAttireOptionsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterAttireOptionsVariablesBuilder { - ... - - FilterAttireOptionsVariablesBuilder itemId(String? t) { - _itemId.value = t; - return this; - } - FilterAttireOptionsVariablesBuilder isMandatory(bool? t) { - _isMandatory.value = t; - return this; - } - FilterAttireOptionsVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterAttireOptions() -.itemId(itemId) -.isMandatory(isMandatory) -.vendorId(vendorId) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterAttireOptions(); -filterAttireOptionsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterAttireOptions().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoices -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listInvoices().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoices, we created `listInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoicesVariablesBuilder { - ... - - ListInvoicesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoicesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoices() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoices(); -listInvoicesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listInvoices().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getInvoiceById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getInvoiceById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getInvoiceById( - id: id, -); -getInvoiceByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getInvoiceById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoicesByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listInvoicesByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoicesByVendorId, we created `listInvoicesByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoicesByVendorIdVariablesBuilder { - ... - ListInvoicesByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoicesByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoicesByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoicesByVendorId( - vendorId: vendorId, -); -listInvoicesByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listInvoicesByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoicesByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.listInvoicesByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoicesByBusinessId, we created `listInvoicesByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoicesByBusinessIdVariablesBuilder { - ... - ListInvoicesByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoicesByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoicesByBusinessId( - businessId: businessId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoicesByBusinessId( - businessId: businessId, -); -listInvoicesByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.listInvoicesByBusinessId( - businessId: businessId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoicesByOrderId -#### Required Arguments -```dart -String orderId = ...; -ExampleConnector.instance.listInvoicesByOrderId( - orderId: orderId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoicesByOrderId, we created `listInvoicesByOrderIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoicesByOrderIdVariablesBuilder { - ... - ListInvoicesByOrderIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoicesByOrderIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoicesByOrderId( - orderId: orderId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoicesByOrderId( - orderId: orderId, -); -listInvoicesByOrderIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String orderId = ...; - -final ref = ExampleConnector.instance.listInvoicesByOrderId( - orderId: orderId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listInvoicesByStatus -#### Required Arguments -```dart -InvoiceStatus status = ...; -ExampleConnector.instance.listInvoicesByStatus( - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listInvoicesByStatus, we created `listInvoicesByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListInvoicesByStatusVariablesBuilder { - ... - ListInvoicesByStatusVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListInvoicesByStatusVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listInvoicesByStatus( - status: status, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listInvoicesByStatus( - status: status, -); -listInvoicesByStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -InvoiceStatus status = ...; - -final ref = ExampleConnector.instance.listInvoicesByStatus( - status: status, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterInvoices -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterInvoices().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterInvoices, we created `filterInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterInvoicesVariablesBuilder { - ... - - FilterInvoicesVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - FilterInvoicesVariablesBuilder businessId(String? t) { - _businessId.value = t; - return this; - } - FilterInvoicesVariablesBuilder orderId(String? t) { - _orderId.value = t; - return this; - } - FilterInvoicesVariablesBuilder status(InvoiceStatus? t) { - _status.value = t; - return this; - } - FilterInvoicesVariablesBuilder issueDateFrom(Timestamp? t) { - _issueDateFrom.value = t; - return this; - } - FilterInvoicesVariablesBuilder issueDateTo(Timestamp? t) { - _issueDateTo.value = t; - return this; - } - FilterInvoicesVariablesBuilder dueDateFrom(Timestamp? t) { - _dueDateFrom.value = t; - return this; - } - FilterInvoicesVariablesBuilder dueDateTo(Timestamp? t) { - _dueDateTo.value = t; - return this; - } - FilterInvoicesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterInvoicesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterInvoices() -.vendorId(vendorId) -.businessId(businessId) -.orderId(orderId) -.status(status) -.issueDateFrom(issueDateFrom) -.issueDateTo(issueDateTo) -.dueDateFrom(dueDateFrom) -.dueDateTo(dueDateTo) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterInvoices(); -filterInvoicesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterInvoices().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listOverdueInvoices -#### Required Arguments -```dart -Timestamp now = ...; -ExampleConnector.instance.listOverdueInvoices( - now: now, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listOverdueInvoices, we created `listOverdueInvoicesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListOverdueInvoicesVariablesBuilder { - ... - ListOverdueInvoicesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListOverdueInvoicesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listOverdueInvoices( - now: now, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listOverdueInvoices( - now: now, -); -listOverdueInvoicesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -Timestamp now = ...; - -final ref = ExampleConnector.instance.listOverdueInvoices( - now: now, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listUsers -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listUsers().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listUsers(); -listUsersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listUsers().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getUserById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getUserById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getUserById( - id: id, -); -getUserByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getUserById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterUsers -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterUsers().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterUsers, we created `filterUsersBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterUsersVariablesBuilder { - ... - - FilterUsersVariablesBuilder id(String? t) { - _id.value = t; - return this; - } - FilterUsersVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - FilterUsersVariablesBuilder role(UserBaseRole? t) { - _role.value = t; - return this; - } - FilterUsersVariablesBuilder userRole(String? t) { - _userRole.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterUsers() -.id(id) -.email(email) -.role(role) -.userRole(userRole) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterUsers(); -filterUsersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterUsers().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffRoles -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listStaffRoles().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffRoles, we created `listStaffRolesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffRolesVariablesBuilder { - ... - - ListStaffRolesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffRolesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffRoles() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffRoles(); -listStaffRolesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listStaffRoles().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getStaffRoleByKey -#### Required Arguments -```dart -String staffId = ...; -String roleId = ...; -ExampleConnector.instance.getStaffRoleByKey( - staffId: staffId, - roleId: roleId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getStaffRoleByKey( - staffId: staffId, - roleId: roleId, -); -getStaffRoleByKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String roleId = ...; - -final ref = ExampleConnector.instance.getStaffRoleByKey( - staffId: staffId, - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffRolesByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listStaffRolesByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffRolesByStaffId, we created `listStaffRolesByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffRolesByStaffIdVariablesBuilder { - ... - ListStaffRolesByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffRolesByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffRolesByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffRolesByStaffId( - staffId: staffId, -); -listStaffRolesByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listStaffRolesByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listStaffRolesByRoleId -#### Required Arguments -```dart -String roleId = ...; -ExampleConnector.instance.listStaffRolesByRoleId( - roleId: roleId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listStaffRolesByRoleId, we created `listStaffRolesByRoleIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListStaffRolesByRoleIdVariablesBuilder { - ... - ListStaffRolesByRoleIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListStaffRolesByRoleIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listStaffRolesByRoleId( - roleId: roleId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listStaffRolesByRoleId( - roleId: roleId, -); -listStaffRolesByRoleIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String roleId = ...; - -final ref = ExampleConnector.instance.listStaffRolesByRoleId( - roleId: roleId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterStaffRoles -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterStaffRoles().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterStaffRoles, we created `filterStaffRolesBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterStaffRolesVariablesBuilder { - ... - - FilterStaffRolesVariablesBuilder staffId(String? t) { - _staffId.value = t; - return this; - } - FilterStaffRolesVariablesBuilder roleId(String? t) { - _roleId.value = t; - return this; - } - FilterStaffRolesVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterStaffRolesVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterStaffRoles() -.staffId(staffId) -.roleId(roleId) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterStaffRoles(); -filterStaffRolesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterStaffRoles().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeamHubs -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTeamHubs().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeamHubs(); -listTeamHubsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTeamHubs().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamHubById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTeamHubById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTeamHubById( - id: id, -); -getTeamHubByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getTeamHubById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamHubsByTeamId -#### Required Arguments -```dart -String teamId = ...; -ExampleConnector.instance.getTeamHubsByTeamId( - teamId: teamId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTeamHubsByTeamId( - teamId: teamId, -); -getTeamHubsByTeamIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamId = ...; - -final ref = ExampleConnector.instance.getTeamHubsByTeamId( - teamId: teamId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeamHubsByOwnerId -#### Required Arguments -```dart -String ownerId = ...; -ExampleConnector.instance.listTeamHubsByOwnerId( - ownerId: ownerId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeamHubsByOwnerId( - ownerId: ownerId, -); -listTeamHubsByOwnerIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String ownerId = ...; - -final ref = ExampleConnector.instance.listTeamHubsByOwnerId( - ownerId: ownerId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeamHudDepartments -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTeamHudDepartments().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listTeamHudDepartments, we created `listTeamHudDepartmentsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListTeamHudDepartmentsVariablesBuilder { - ... - - ListTeamHudDepartmentsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListTeamHudDepartmentsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listTeamHudDepartments() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeamHudDepartments(); -listTeamHudDepartmentsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTeamHudDepartments().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamHudDepartmentById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTeamHudDepartmentById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTeamHudDepartmentById( - id: id, -); -getTeamHudDepartmentByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getTeamHudDepartmentById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeamHudDepartmentsByTeamHubId -#### Required Arguments -```dart -String teamHubId = ...; -ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( - teamHubId: teamHubId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listTeamHudDepartmentsByTeamHubId, we created `listTeamHudDepartmentsByTeamHubIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListTeamHudDepartmentsByTeamHubIdVariablesBuilder { - ... - ListTeamHudDepartmentsByTeamHubIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListTeamHudDepartmentsByTeamHubIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( - teamHubId: teamHubId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( - teamHubId: teamHubId, -); -listTeamHudDepartmentsByTeamHubIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamHubId = ...; - -final ref = ExampleConnector.instance.listTeamHudDepartmentsByTeamHubId( - teamHubId: teamHubId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTeamMembers -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTeamMembers().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTeamMembers(); -listTeamMembersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTeamMembers().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamMemberById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTeamMemberById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTeamMemberById( - id: id, -); -getTeamMemberByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getTeamMemberById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTeamMembersByTeamId -#### Required Arguments -```dart -String teamId = ...; -ExampleConnector.instance.getTeamMembersByTeamId( - teamId: teamId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTeamMembersByTeamId( - teamId: teamId, -); -getTeamMembersByTeamIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamId = ...; - -final ref = ExampleConnector.instance.getTeamMembersByTeamId( - teamId: teamId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listClientFeedbacks -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listClientFeedbacks().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listClientFeedbacks, we created `listClientFeedbacksBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListClientFeedbacksVariablesBuilder { - ... - - ListClientFeedbacksVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListClientFeedbacksVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listClientFeedbacks() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listClientFeedbacks(); -listClientFeedbacksData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listClientFeedbacks().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getClientFeedbackById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getClientFeedbackById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getClientFeedbackById( - id: id, -); -getClientFeedbackByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getClientFeedbackById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listClientFeedbacksByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.listClientFeedbacksByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listClientFeedbacksByBusinessId, we created `listClientFeedbacksByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListClientFeedbacksByBusinessIdVariablesBuilder { - ... - ListClientFeedbacksByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListClientFeedbacksByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listClientFeedbacksByBusinessId( - businessId: businessId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listClientFeedbacksByBusinessId( - businessId: businessId, -); -listClientFeedbacksByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.listClientFeedbacksByBusinessId( - businessId: businessId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listClientFeedbacksByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listClientFeedbacksByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listClientFeedbacksByVendorId, we created `listClientFeedbacksByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListClientFeedbacksByVendorIdVariablesBuilder { - ... - ListClientFeedbacksByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListClientFeedbacksByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listClientFeedbacksByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listClientFeedbacksByVendorId( - vendorId: vendorId, -); -listClientFeedbacksByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listClientFeedbacksByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listClientFeedbacksByBusinessAndVendor -#### Required Arguments -```dart -String businessId = ...; -String vendorId = ...; -ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( - businessId: businessId, - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listClientFeedbacksByBusinessAndVendor, we created `listClientFeedbacksByBusinessAndVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListClientFeedbacksByBusinessAndVendorVariablesBuilder { - ... - ListClientFeedbacksByBusinessAndVendorVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListClientFeedbacksByBusinessAndVendorVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( - businessId: businessId, - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( - businessId: businessId, - vendorId: vendorId, -); -listClientFeedbacksByBusinessAndVendorData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; -String vendorId = ...; - -final ref = ExampleConnector.instance.listClientFeedbacksByBusinessAndVendor( - businessId: businessId, - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterClientFeedbacks -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterClientFeedbacks().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterClientFeedbacks, we created `filterClientFeedbacksBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterClientFeedbacksVariablesBuilder { - ... - - FilterClientFeedbacksVariablesBuilder businessId(String? t) { - _businessId.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder ratingMin(int? t) { - _ratingMin.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder ratingMax(int? t) { - _ratingMax.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder dateFrom(Timestamp? t) { - _dateFrom.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder dateTo(Timestamp? t) { - _dateTo.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - FilterClientFeedbacksVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterClientFeedbacks() -.businessId(businessId) -.vendorId(vendorId) -.ratingMin(ratingMin) -.ratingMax(ratingMax) -.dateFrom(dateFrom) -.dateTo(dateTo) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterClientFeedbacks(); -filterClientFeedbacksData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterClientFeedbacks().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listClientFeedbackRatingsByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.listClientFeedbackRatingsByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listClientFeedbackRatingsByVendorId, we created `listClientFeedbackRatingsByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListClientFeedbackRatingsByVendorIdVariablesBuilder { - ... - ListClientFeedbackRatingsByVendorIdVariablesBuilder dateFrom(Timestamp? t) { - _dateFrom.value = t; - return this; - } - ListClientFeedbackRatingsByVendorIdVariablesBuilder dateTo(Timestamp? t) { - _dateTo.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listClientFeedbackRatingsByVendorId( - vendorId: vendorId, -) -.dateFrom(dateFrom) -.dateTo(dateTo) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listClientFeedbackRatingsByVendorId( - vendorId: vendorId, -); -listClientFeedbackRatingsByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.listClientFeedbackRatingsByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listCustomRateCards -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listCustomRateCards().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listCustomRateCards(); -listCustomRateCardsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listCustomRateCards().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getCustomRateCardById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getCustomRateCardById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getCustomRateCardById( - id: id, -); -getCustomRateCardByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getCustomRateCardById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listRoleCategories -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listRoleCategories().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listRoleCategories(); -listRoleCategoriesData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listRoleCategories().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getRoleCategoryById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getRoleCategoryById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getRoleCategoryById( - id: id, -); -getRoleCategoryByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getRoleCategoryById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getRoleCategoriesByCategory -#### Required Arguments -```dart -RoleCategoryType category = ...; -ExampleConnector.instance.getRoleCategoriesByCategory( - category: category, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getRoleCategoriesByCategory( - category: category, -); -getRoleCategoriesByCategoryData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -RoleCategoryType category = ...; - -final ref = ExampleConnector.instance.getRoleCategoriesByCategory( - category: category, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listTaxForms -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listTaxForms().execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listTaxForms(); -listTaxFormsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listTaxForms().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTaxFormById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getTaxFormById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTaxFormById( - id: id, -); -getTaxFormByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getTaxFormById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getTaxFormsBystaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.getTaxFormsBystaffId( - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getTaxFormsBystaffId( - staffId: staffId, -); -getTaxFormsBystaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.getTaxFormsBystaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### filterTaxForms -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.filterTaxForms().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For filterTaxForms, we created `filterTaxFormsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class FilterTaxFormsVariablesBuilder { - ... - - FilterTaxFormsVariablesBuilder formType(TaxFormType? t) { - _formType.value = t; - return this; - } - FilterTaxFormsVariablesBuilder status(TaxFormStatus? t) { - _status.value = t; - return this; - } - FilterTaxFormsVariablesBuilder staffId(String? t) { - _staffId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.filterTaxForms() -.formType(formType) -.status(status) -.staffId(staffId) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.filterTaxForms(); -filterTaxFormsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.filterTaxForms().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listBenefitsData -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listBenefitsData().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listBenefitsData, we created `listBenefitsDataBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListBenefitsDataVariablesBuilder { - ... - - ListBenefitsDataVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListBenefitsDataVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listBenefitsData() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listBenefitsData(); -listBenefitsDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listBenefitsData().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getBenefitsDataByKey -#### Required Arguments -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; -ExampleConnector.instance.getBenefitsDataByKey( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getBenefitsDataByKey( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -); -getBenefitsDataByKeyData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; - -final ref = ExampleConnector.instance.getBenefitsDataByKey( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listBenefitsDataByStaffId -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.listBenefitsDataByStaffId( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listBenefitsDataByStaffId, we created `listBenefitsDataByStaffIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListBenefitsDataByStaffIdVariablesBuilder { - ... - ListBenefitsDataByStaffIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListBenefitsDataByStaffIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listBenefitsDataByStaffId( - staffId: staffId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listBenefitsDataByStaffId( - staffId: staffId, -); -listBenefitsDataByStaffIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.listBenefitsDataByStaffId( - staffId: staffId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listBenefitsDataByVendorBenefitPlanId -#### Required Arguments -```dart -String vendorBenefitPlanId = ...; -ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( - vendorBenefitPlanId: vendorBenefitPlanId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listBenefitsDataByVendorBenefitPlanId, we created `listBenefitsDataByVendorBenefitPlanIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder { - ... - ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( - vendorBenefitPlanId: vendorBenefitPlanId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( - vendorBenefitPlanId: vendorBenefitPlanId, -); -listBenefitsDataByVendorBenefitPlanIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorBenefitPlanId = ...; - -final ref = ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId( - vendorBenefitPlanId: vendorBenefitPlanId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listBenefitsDataByVendorBenefitPlanIds -#### Required Arguments -```dart -String vendorBenefitPlanIds = ...; -ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( - vendorBenefitPlanIds: vendorBenefitPlanIds, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listBenefitsDataByVendorBenefitPlanIds, we created `listBenefitsDataByVendorBenefitPlanIdsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder { - ... - ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( - vendorBenefitPlanIds: vendorBenefitPlanIds, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( - vendorBenefitPlanIds: vendorBenefitPlanIds, -); -listBenefitsDataByVendorBenefitPlanIdsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorBenefitPlanIds = ...; - -final ref = ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds( - vendorBenefitPlanIds: vendorBenefitPlanIds, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### listOrders -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.listOrders().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For listOrders, we created `listOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class ListOrdersVariablesBuilder { - ... - - ListOrdersVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - ListOrdersVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.listOrders() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.listOrders(); -listOrdersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.listOrders().ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getOrderById -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.getOrderById( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getOrderById( - id: id, -); -getOrderByIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.getOrderById( - id: id, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getOrdersByBusinessId -#### Required Arguments -```dart -String businessId = ...; -ExampleConnector.instance.getOrdersByBusinessId( - businessId: businessId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getOrdersByBusinessId, we created `getOrdersByBusinessIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetOrdersByBusinessIdVariablesBuilder { - ... - GetOrdersByBusinessIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetOrdersByBusinessIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getOrdersByBusinessId( - businessId: businessId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getOrdersByBusinessId( - businessId: businessId, -); -getOrdersByBusinessIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessId = ...; - -final ref = ExampleConnector.instance.getOrdersByBusinessId( - businessId: businessId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getOrdersByVendorId -#### Required Arguments -```dart -String vendorId = ...; -ExampleConnector.instance.getOrdersByVendorId( - vendorId: vendorId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getOrdersByVendorId, we created `getOrdersByVendorIdBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetOrdersByVendorIdVariablesBuilder { - ... - GetOrdersByVendorIdVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetOrdersByVendorIdVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getOrdersByVendorId( - vendorId: vendorId, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getOrdersByVendorId( - vendorId: vendorId, -); -getOrdersByVendorIdData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; - -final ref = ExampleConnector.instance.getOrdersByVendorId( - vendorId: vendorId, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getOrdersByStatus -#### Required Arguments -```dart -OrderStatus status = ...; -ExampleConnector.instance.getOrdersByStatus( - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getOrdersByStatus, we created `getOrdersByStatusBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetOrdersByStatusVariablesBuilder { - ... - GetOrdersByStatusVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetOrdersByStatusVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getOrdersByStatus( - status: status, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getOrdersByStatus( - status: status, -); -getOrdersByStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -OrderStatus status = ...; - -final ref = ExampleConnector.instance.getOrdersByStatus( - status: status, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getOrdersByDateRange -#### Required Arguments -```dart -Timestamp start = ...; -Timestamp end = ...; -ExampleConnector.instance.getOrdersByDateRange( - start: start, - end: end, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getOrdersByDateRange, we created `getOrdersByDateRangeBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetOrdersByDateRangeVariablesBuilder { - ... - GetOrdersByDateRangeVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetOrdersByDateRangeVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getOrdersByDateRange( - start: start, - end: end, -) -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getOrdersByDateRange( - start: start, - end: end, -); -getOrdersByDateRangeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -Timestamp start = ...; -Timestamp end = ...; - -final ref = ExampleConnector.instance.getOrdersByDateRange( - start: start, - end: end, -).ref(); -ref.execute(); - -ref.subscribe(...); -``` - - -### getRapidOrders -#### Required Arguments -```dart -// No required arguments -ExampleConnector.instance.getRapidOrders().execute(); -``` - -#### Optional Arguments -We return a builder for each query. For getRapidOrders, we created `getRapidOrdersBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class GetRapidOrdersVariablesBuilder { - ... - - GetRapidOrdersVariablesBuilder offset(int? t) { - _offset.value = t; - return this; - } - GetRapidOrdersVariablesBuilder limit(int? t) { - _limit.value = t; - return this; - } - - ... -} -ExampleConnector.instance.getRapidOrders() -.offset(offset) -.limit(limit) -.execute(); -``` - -#### Return Type -`execute()` returns a `QueryResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -/// Result of a query request. Created to hold extra variables in the future. -class QueryResult extends OperationResult { - QueryResult(super.dataConnect, super.data, super.ref); -} - -final result = await ExampleConnector.instance.getRapidOrders(); -getRapidOrdersData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -final ref = ExampleConnector.instance.getRapidOrders().ref(); -ref.execute(); - -ref.subscribe(...); -``` - ## Mutations -### createTeamMember +### createFaqData #### Required Arguments ```dart -String teamId = ...; -TeamMemberRole role = ...; -String userId = ...; -ExampleConnector.instance.createTeamMember( - teamId: teamId, - role: role, - userId: userId, +String category = ...; +ExampleConnector.instance.createFaqData( + category: category, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createTeamMember, we created `createTeamMemberBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createFaqData, we created `createFaqDataBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateTeamMemberVariablesBuilder { +class CreateFaqDataVariablesBuilder { ... - CreateTeamMemberVariablesBuilder title(String? t) { + CreateFaqDataVariablesBuilder questions(List? t) { + _questions.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createFaqData( + category: category, +) +.questions(questions) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createFaqData( + category: category, +); +createFaqDataData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String category = ...; + +final ref = ExampleConnector.instance.createFaqData( + category: category, +).ref(); +ref.execute(); +``` + + +### updateFaqData +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateFaqData( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateFaqData, we created `updateFaqDataBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateFaqDataVariablesBuilder { + ... + UpdateFaqDataVariablesBuilder category(String? t) { + _category.value = t; + return this; + } + UpdateFaqDataVariablesBuilder questions(List? t) { + _questions.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateFaqData( + id: id, +) +.category(category) +.questions(questions) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateFaqData( + id: id, +); +updateFaqDataData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateFaqData( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteFaqData +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteFaqData( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteFaqData( + id: id, +); +deleteFaqDataData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteFaqData( + id: id, +).ref(); +ref.execute(); +``` + + +### createStaffAvailability +#### Required Arguments +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; +ExampleConnector.instance.createStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createStaffAvailability, we created `createStaffAvailabilityBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffAvailabilityVariablesBuilder { + ... + CreateStaffAvailabilityVariablesBuilder status(AvailabilityStatus? t) { + _status.value = t; + return this; + } + CreateStaffAvailabilityVariablesBuilder notes(String? t) { + _notes.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +) +.status(status) +.notes(notes) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +); +createStaffAvailabilityData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; + +final ref = ExampleConnector.instance.createStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).ref(); +ref.execute(); +``` + + +### updateStaffAvailability +#### Required Arguments +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; +ExampleConnector.instance.updateStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateStaffAvailability, we created `updateStaffAvailabilityBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateStaffAvailabilityVariablesBuilder { + ... + UpdateStaffAvailabilityVariablesBuilder status(AvailabilityStatus? t) { + _status.value = t; + return this; + } + UpdateStaffAvailabilityVariablesBuilder notes(String? t) { + _notes.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +) +.status(status) +.notes(notes) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +); +updateStaffAvailabilityData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; + +final ref = ExampleConnector.instance.updateStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).ref(); +ref.execute(); +``` + + +### deleteStaffAvailability +#### Required Arguments +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; +ExampleConnector.instance.deleteStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +); +deleteStaffAvailabilityData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +DayOfWeek day = ...; +AvailabilitySlot slot = ...; + +final ref = ExampleConnector.instance.deleteStaffAvailability( + staffId: staffId, + day: day, + slot: slot, +).ref(); +ref.execute(); +``` + + +### createTaxForm +#### Required Arguments +```dart +TaxFormType formType = ...; +String title = ...; +String staffId = ...; +ExampleConnector.instance.createTaxForm( + formType: formType, + title: title, + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTaxForm, we created `createTaxFormBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTaxFormVariablesBuilder { + ... + CreateTaxFormVariablesBuilder subtitle(String? t) { + _subtitle.value = t; + return this; + } + CreateTaxFormVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateTaxFormVariablesBuilder status(TaxFormStatus? t) { + _status.value = t; + return this; + } + CreateTaxFormVariablesBuilder formData(AnyValue? t) { + _formData.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTaxForm( + formType: formType, + title: title, + staffId: staffId, +) +.subtitle(subtitle) +.description(description) +.status(status) +.formData(formData) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createTaxForm( + formType: formType, + title: title, + staffId: staffId, +); +createTaxFormData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +TaxFormType formType = ...; +String title = ...; +String staffId = ...; + +final ref = ExampleConnector.instance.createTaxForm( + formType: formType, + title: title, + staffId: staffId, +).ref(); +ref.execute(); +``` + + +### updateTaxForm +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateTaxForm( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateTaxForm, we created `updateTaxFormBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateTaxFormVariablesBuilder { + ... + UpdateTaxFormVariablesBuilder status(TaxFormStatus? t) { + _status.value = t; + return this; + } + UpdateTaxFormVariablesBuilder formData(AnyValue? t) { + _formData.value = t; + return this; + } + UpdateTaxFormVariablesBuilder title(String? t) { _title.value = t; return this; } - CreateTeamMemberVariablesBuilder department(String? t) { - _department.value = t; + UpdateTaxFormVariablesBuilder subtitle(String? t) { + _subtitle.value = t; return this; } - CreateTeamMemberVariablesBuilder teamHubId(String? t) { - _teamHubId.value = t; - return this; - } - CreateTeamMemberVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - CreateTeamMemberVariablesBuilder inviteStatus(TeamMemberInviteStatus? t) { - _inviteStatus.value = t; + UpdateTaxFormVariablesBuilder description(String? t) { + _description.value = t; return this; } ... } -ExampleConnector.instance.createTeamMember( - teamId: teamId, - role: role, - userId: userId, +ExampleConnector.instance.updateTaxForm( + id: id, ) +.status(status) +.formData(formData) .title(title) -.department(department) -.teamHubId(teamHubId) -.isActive(isActive) -.inviteStatus(inviteStatus) +.subtitle(subtitle) +.description(description) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -13214,12 +13925,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createTeamMember( - teamId: teamId, - role: role, - userId: userId, +final result = await ExampleConnector.instance.updateTaxForm( + id: id, ); -createTeamMemberData data = result.data; +updateTaxFormData data = result.data; final ref = result.ref; ``` @@ -13227,1093 +13936,365 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String teamId = ...; -TeamMemberRole role = ...; +String id = ...; + +final ref = ExampleConnector.instance.updateTaxForm( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteTaxForm +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTaxForm( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteTaxForm( + id: id, +); +deleteTaxFormData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteTaxForm( + id: id, +).ref(); +ref.execute(); +``` + + +### createMessage +#### Required Arguments +```dart +String conversationId = ...; +String senderId = ...; +String content = ...; +ExampleConnector.instance.createMessage( + conversationId: conversationId, + senderId: senderId, + content: content, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createMessage, we created `createMessageBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateMessageVariablesBuilder { + ... + CreateMessageVariablesBuilder isSystem(bool? t) { + _isSystem.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createMessage( + conversationId: conversationId, + senderId: senderId, + content: content, +) +.isSystem(isSystem) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createMessage( + conversationId: conversationId, + senderId: senderId, + content: content, +); +createMessageData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String conversationId = ...; +String senderId = ...; +String content = ...; + +final ref = ExampleConnector.instance.createMessage( + conversationId: conversationId, + senderId: senderId, + content: content, +).ref(); +ref.execute(); +``` + + +### updateMessage +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateMessage( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateMessage, we created `updateMessageBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateMessageVariablesBuilder { + ... + UpdateMessageVariablesBuilder conversationId(String? t) { + _conversationId.value = t; + return this; + } + UpdateMessageVariablesBuilder senderId(String? t) { + _senderId.value = t; + return this; + } + UpdateMessageVariablesBuilder content(String? t) { + _content.value = t; + return this; + } + UpdateMessageVariablesBuilder isSystem(bool? t) { + _isSystem.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateMessage( + id: id, +) +.conversationId(conversationId) +.senderId(senderId) +.content(content) +.isSystem(isSystem) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateMessage( + id: id, +); +updateMessageData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateMessage( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteMessage +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteMessage( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteMessage( + id: id, +); +deleteMessageData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteMessage( + id: id, +).ref(); +ref.execute(); +``` + + +### createVendor +#### Required Arguments +```dart String userId = ...; - -final ref = ExampleConnector.instance.createTeamMember( - teamId: teamId, - role: role, +String companyName = ...; +ExampleConnector.instance.createVendor( userId: userId, -).ref(); -ref.execute(); -``` - - -### updateTeamMember -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTeamMember( - id: id, + companyName: companyName, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateTeamMember, we created `updateTeamMemberBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createVendor, we created `createVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateTeamMemberVariablesBuilder { +class CreateVendorVariablesBuilder { ... - UpdateTeamMemberVariablesBuilder role(TeamMemberRole? t) { - _role.value = t; - return this; - } - UpdateTeamMemberVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateTeamMemberVariablesBuilder department(String? t) { - _department.value = t; - return this; - } - UpdateTeamMemberVariablesBuilder teamHubId(String? t) { - _teamHubId.value = t; - return this; - } - UpdateTeamMemberVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - UpdateTeamMemberVariablesBuilder inviteStatus(TeamMemberInviteStatus? t) { - _inviteStatus.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateTeamMember( - id: id, -) -.role(role) -.title(title) -.department(department) -.teamHubId(teamHubId) -.isActive(isActive) -.inviteStatus(inviteStatus) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTeamMember( - id: id, -); -updateTeamMemberData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateTeamMember( - id: id, -).ref(); -ref.execute(); -``` - - -### updateTeamMemberInviteStatus -#### Required Arguments -```dart -String id = ...; -TeamMemberInviteStatus inviteStatus = ...; -ExampleConnector.instance.updateTeamMemberInviteStatus( - id: id, - inviteStatus: inviteStatus, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTeamMemberInviteStatus( - id: id, - inviteStatus: inviteStatus, -); -updateTeamMemberInviteStatusData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; -TeamMemberInviteStatus inviteStatus = ...; - -final ref = ExampleConnector.instance.updateTeamMemberInviteStatus( - id: id, - inviteStatus: inviteStatus, -).ref(); -ref.execute(); -``` - - -### acceptInviteByCode -#### Required Arguments -```dart -String inviteCode = ...; -ExampleConnector.instance.acceptInviteByCode( - inviteCode: inviteCode, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.acceptInviteByCode( - inviteCode: inviteCode, -); -acceptInviteByCodeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String inviteCode = ...; - -final ref = ExampleConnector.instance.acceptInviteByCode( - inviteCode: inviteCode, -).ref(); -ref.execute(); -``` - - -### cancelInviteByCode -#### Required Arguments -```dart -String inviteCode = ...; -ExampleConnector.instance.cancelInviteByCode( - inviteCode: inviteCode, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.cancelInviteByCode( - inviteCode: inviteCode, -); -cancelInviteByCodeData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String inviteCode = ...; - -final ref = ExampleConnector.instance.cancelInviteByCode( - inviteCode: inviteCode, -).ref(); -ref.execute(); -``` - - -### deleteTeamMember -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteTeamMember( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteTeamMember( - id: id, -); -deleteTeamMemberData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteTeamMember( - id: id, -).ref(); -ref.execute(); -``` - - -### createBenefitsData -#### Required Arguments -```dart -String vendorBenefitPlanId = ...; -String staffId = ...; -int current = ...; -ExampleConnector.instance.createBenefitsData( - vendorBenefitPlanId: vendorBenefitPlanId, - staffId: staffId, - current: current, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createBenefitsData( - vendorBenefitPlanId: vendorBenefitPlanId, - staffId: staffId, - current: current, -); -createBenefitsDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorBenefitPlanId = ...; -String staffId = ...; -int current = ...; - -final ref = ExampleConnector.instance.createBenefitsData( - vendorBenefitPlanId: vendorBenefitPlanId, - staffId: staffId, - current: current, -).ref(); -ref.execute(); -``` - - -### updateBenefitsData -#### Required Arguments -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; -ExampleConnector.instance.updateBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateBenefitsData, we created `updateBenefitsDataBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateBenefitsDataVariablesBuilder { - ... - UpdateBenefitsDataVariablesBuilder current(int? t) { - _current.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -) -.current(current) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -); -updateBenefitsDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; - -final ref = ExampleConnector.instance.updateBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).ref(); -ref.execute(); -``` - - -### deleteBenefitsData -#### Required Arguments -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; -ExampleConnector.instance.deleteBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -); -deleteBenefitsDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String vendorBenefitPlanId = ...; - -final ref = ExampleConnector.instance.deleteBenefitsData( - staffId: staffId, - vendorBenefitPlanId: vendorBenefitPlanId, -).ref(); -ref.execute(); -``` - - -### createStaffCourse -#### Required Arguments -```dart -String staffId = ...; -String courseId = ...; -ExampleConnector.instance.createStaffCourse( - staffId: staffId, - courseId: courseId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createStaffCourse, we created `createStaffCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateStaffCourseVariablesBuilder { - ... - CreateStaffCourseVariablesBuilder progressPercent(int? t) { - _progressPercent.value = t; - return this; - } - CreateStaffCourseVariablesBuilder completed(bool? t) { - _completed.value = t; - return this; - } - CreateStaffCourseVariablesBuilder completedAt(Timestamp? t) { - _completedAt.value = t; - return this; - } - CreateStaffCourseVariablesBuilder startedAt(Timestamp? t) { - _startedAt.value = t; - return this; - } - CreateStaffCourseVariablesBuilder lastAccessedAt(Timestamp? t) { - _lastAccessedAt.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createStaffCourse( - staffId: staffId, - courseId: courseId, -) -.progressPercent(progressPercent) -.completed(completed) -.completedAt(completedAt) -.startedAt(startedAt) -.lastAccessedAt(lastAccessedAt) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createStaffCourse( - staffId: staffId, - courseId: courseId, -); -createStaffCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String courseId = ...; - -final ref = ExampleConnector.instance.createStaffCourse( - staffId: staffId, - courseId: courseId, -).ref(); -ref.execute(); -``` - - -### updateStaffCourse -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateStaffCourse( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateStaffCourse, we created `updateStaffCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateStaffCourseVariablesBuilder { - ... - UpdateStaffCourseVariablesBuilder progressPercent(int? t) { - _progressPercent.value = t; - return this; - } - UpdateStaffCourseVariablesBuilder completed(bool? t) { - _completed.value = t; - return this; - } - UpdateStaffCourseVariablesBuilder completedAt(Timestamp? t) { - _completedAt.value = t; - return this; - } - UpdateStaffCourseVariablesBuilder startedAt(Timestamp? t) { - _startedAt.value = t; - return this; - } - UpdateStaffCourseVariablesBuilder lastAccessedAt(Timestamp? t) { - _lastAccessedAt.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateStaffCourse( - id: id, -) -.progressPercent(progressPercent) -.completed(completed) -.completedAt(completedAt) -.startedAt(startedAt) -.lastAccessedAt(lastAccessedAt) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateStaffCourse( - id: id, -); -updateStaffCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateStaffCourse( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteStaffCourse -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteStaffCourse( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteStaffCourse( - id: id, -); -deleteStaffCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteStaffCourse( - id: id, -).ref(); -ref.execute(); -``` - - -### createTeam -#### Required Arguments -```dart -String teamName = ...; -String ownerId = ...; -String ownerName = ...; -String ownerRole = ...; -ExampleConnector.instance.createTeam( - teamName: teamName, - ownerId: ownerId, - ownerName: ownerName, - ownerRole: ownerRole, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createTeam, we created `createTeamBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateTeamVariablesBuilder { - ... - CreateTeamVariablesBuilder email(String? t) { + CreateVendorVariablesBuilder email(String? t) { _email.value = t; return this; } - CreateTeamVariablesBuilder companyLogo(String? t) { - _companyLogo.value = t; + CreateVendorVariablesBuilder phone(String? t) { + _phone.value = t; return this; } - CreateTeamVariablesBuilder totalMembers(int? t) { - _totalMembers.value = t; + CreateVendorVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; return this; } - CreateTeamVariablesBuilder activeMembers(int? t) { - _activeMembers.value = t; - return this; - } - CreateTeamVariablesBuilder totalHubs(int? t) { - _totalHubs.value = t; - return this; - } - CreateTeamVariablesBuilder departments(AnyValue? t) { - _departments.value = t; - return this; - } - CreateTeamVariablesBuilder favoriteStaffCount(int? t) { - _favoriteStaffCount.value = t; - return this; - } - CreateTeamVariablesBuilder blockedStaffCount(int? t) { - _blockedStaffCount.value = t; - return this; - } - CreateTeamVariablesBuilder favoriteStaff(AnyValue? t) { - _favoriteStaff.value = t; - return this; - } - CreateTeamVariablesBuilder blockedStaff(AnyValue? t) { - _blockedStaff.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createTeam( - teamName: teamName, - ownerId: ownerId, - ownerName: ownerName, - ownerRole: ownerRole, -) -.email(email) -.companyLogo(companyLogo) -.totalMembers(totalMembers) -.activeMembers(activeMembers) -.totalHubs(totalHubs) -.departments(departments) -.favoriteStaffCount(favoriteStaffCount) -.blockedStaffCount(blockedStaffCount) -.favoriteStaff(favoriteStaff) -.blockedStaff(blockedStaff) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createTeam( - teamName: teamName, - ownerId: ownerId, - ownerName: ownerName, - ownerRole: ownerRole, -); -createTeamData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamName = ...; -String ownerId = ...; -String ownerName = ...; -String ownerRole = ...; - -final ref = ExampleConnector.instance.createTeam( - teamName: teamName, - ownerId: ownerId, - ownerName: ownerName, - ownerRole: ownerRole, -).ref(); -ref.execute(); -``` - - -### updateTeam -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTeam( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateTeam, we created `updateTeamBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateTeamVariablesBuilder { - ... - UpdateTeamVariablesBuilder teamName(String? t) { - _teamName.value = t; - return this; - } - UpdateTeamVariablesBuilder ownerName(String? t) { - _ownerName.value = t; - return this; - } - UpdateTeamVariablesBuilder ownerRole(String? t) { - _ownerRole.value = t; - return this; - } - UpdateTeamVariablesBuilder companyLogo(String? t) { - _companyLogo.value = t; - return this; - } - UpdateTeamVariablesBuilder totalMembers(int? t) { - _totalMembers.value = t; - return this; - } - UpdateTeamVariablesBuilder activeMembers(int? t) { - _activeMembers.value = t; - return this; - } - UpdateTeamVariablesBuilder totalHubs(int? t) { - _totalHubs.value = t; - return this; - } - UpdateTeamVariablesBuilder departments(AnyValue? t) { - _departments.value = t; - return this; - } - UpdateTeamVariablesBuilder favoriteStaffCount(int? t) { - _favoriteStaffCount.value = t; - return this; - } - UpdateTeamVariablesBuilder blockedStaffCount(int? t) { - _blockedStaffCount.value = t; - return this; - } - UpdateTeamVariablesBuilder favoriteStaff(AnyValue? t) { - _favoriteStaff.value = t; - return this; - } - UpdateTeamVariablesBuilder blockedStaff(AnyValue? t) { - _blockedStaff.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateTeam( - id: id, -) -.teamName(teamName) -.ownerName(ownerName) -.ownerRole(ownerRole) -.companyLogo(companyLogo) -.totalMembers(totalMembers) -.activeMembers(activeMembers) -.totalHubs(totalHubs) -.departments(departments) -.favoriteStaffCount(favoriteStaffCount) -.blockedStaffCount(blockedStaffCount) -.favoriteStaff(favoriteStaff) -.blockedStaff(blockedStaff) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTeam( - id: id, -); -updateTeamData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateTeam( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteTeam -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteTeam( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteTeam( - id: id, -); -deleteTeamData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteTeam( - id: id, -).ref(); -ref.execute(); -``` - - -### createTeamHub -#### Required Arguments -```dart -String teamId = ...; -String hubName = ...; -String address = ...; -ExampleConnector.instance.createTeamHub( - teamId: teamId, - hubName: hubName, - address: address, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createTeamHub, we created `createTeamHubBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateTeamHubVariablesBuilder { - ... - CreateTeamHubVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - CreateTeamHubVariablesBuilder state(String? t) { - _state.value = t; - return this; - } - CreateTeamHubVariablesBuilder zipCode(String? t) { - _zipCode.value = t; - return this; - } - CreateTeamHubVariablesBuilder managerName(String? t) { - _managerName.value = t; - return this; - } - CreateTeamHubVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - CreateTeamHubVariablesBuilder departments(AnyValue? t) { - _departments.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createTeamHub( - teamId: teamId, - hubName: hubName, - address: address, -) -.city(city) -.state(state) -.zipCode(zipCode) -.managerName(managerName) -.isActive(isActive) -.departments(departments) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createTeamHub( - teamId: teamId, - hubName: hubName, - address: address, -); -createTeamHubData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamId = ...; -String hubName = ...; -String address = ...; - -final ref = ExampleConnector.instance.createTeamHub( - teamId: teamId, - hubName: hubName, - address: address, -).ref(); -ref.execute(); -``` - - -### updateTeamHub -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTeamHub( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateTeamHub, we created `updateTeamHubBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateTeamHubVariablesBuilder { - ... - UpdateTeamHubVariablesBuilder hubName(String? t) { - _hubName.value = t; - return this; - } - UpdateTeamHubVariablesBuilder address(String? t) { + CreateVendorVariablesBuilder address(String? t) { _address.value = t; return this; } - UpdateTeamHubVariablesBuilder city(String? t) { - _city.value = t; + CreateVendorVariablesBuilder billingAddress(String? t) { + _billingAddress.value = t; return this; } - UpdateTeamHubVariablesBuilder state(String? t) { + CreateVendorVariablesBuilder timezone(String? t) { + _timezone.value = t; + return this; + } + CreateVendorVariablesBuilder legalName(String? t) { + _legalName.value = t; + return this; + } + CreateVendorVariablesBuilder doingBusinessAs(String? t) { + _doingBusinessAs.value = t; + return this; + } + CreateVendorVariablesBuilder region(String? t) { + _region.value = t; + return this; + } + CreateVendorVariablesBuilder state(String? t) { _state.value = t; return this; } - UpdateTeamHubVariablesBuilder zipCode(String? t) { - _zipCode.value = t; + CreateVendorVariablesBuilder city(String? t) { + _city.value = t; return this; } - UpdateTeamHubVariablesBuilder managerName(String? t) { - _managerName.value = t; + CreateVendorVariablesBuilder serviceSpecialty(String? t) { + _serviceSpecialty.value = t; return this; } - UpdateTeamHubVariablesBuilder isActive(bool? t) { + CreateVendorVariablesBuilder approvalStatus(ApprovalStatus? t) { + _approvalStatus.value = t; + return this; + } + CreateVendorVariablesBuilder isActive(bool? t) { _isActive.value = t; return this; } - UpdateTeamHubVariablesBuilder departments(AnyValue? t) { - _departments.value = t; + CreateVendorVariablesBuilder markup(double? t) { + _markup.value = t; + return this; + } + CreateVendorVariablesBuilder fee(double? t) { + _fee.value = t; + return this; + } + CreateVendorVariablesBuilder csat(double? t) { + _csat.value = t; + return this; + } + CreateVendorVariablesBuilder tier(VendorTier? t) { + _tier.value = t; return this; } ... } -ExampleConnector.instance.updateTeamHub( - id: id, +ExampleConnector.instance.createVendor( + userId: userId, + companyName: companyName, ) -.hubName(hubName) +.email(email) +.phone(phone) +.photoUrl(photoUrl) .address(address) -.city(city) +.billingAddress(billingAddress) +.timezone(timezone) +.legalName(legalName) +.doingBusinessAs(doingBusinessAs) +.region(region) .state(state) -.zipCode(zipCode) -.managerName(managerName) +.city(city) +.serviceSpecialty(serviceSpecialty) +.approvalStatus(approvalStatus) .isActive(isActive) -.departments(departments) +.markup(markup) +.fee(fee) +.csat(csat) +.tier(tier) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -14323,10 +14304,163 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateTeamHub( +final result = await ExampleConnector.instance.createVendor( + userId: userId, + companyName: companyName, +); +createVendorData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; +String companyName = ...; + +final ref = ExampleConnector.instance.createVendor( + userId: userId, + companyName: companyName, +).ref(); +ref.execute(); +``` + + +### updateVendor +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateVendor( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateVendor, we created `updateVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateVendorVariablesBuilder { + ... + UpdateVendorVariablesBuilder companyName(String? t) { + _companyName.value = t; + return this; + } + UpdateVendorVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + UpdateVendorVariablesBuilder phone(String? t) { + _phone.value = t; + return this; + } + UpdateVendorVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; + return this; + } + UpdateVendorVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + UpdateVendorVariablesBuilder billingAddress(String? t) { + _billingAddress.value = t; + return this; + } + UpdateVendorVariablesBuilder timezone(String? t) { + _timezone.value = t; + return this; + } + UpdateVendorVariablesBuilder legalName(String? t) { + _legalName.value = t; + return this; + } + UpdateVendorVariablesBuilder doingBusinessAs(String? t) { + _doingBusinessAs.value = t; + return this; + } + UpdateVendorVariablesBuilder region(String? t) { + _region.value = t; + return this; + } + UpdateVendorVariablesBuilder state(String? t) { + _state.value = t; + return this; + } + UpdateVendorVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + UpdateVendorVariablesBuilder serviceSpecialty(String? t) { + _serviceSpecialty.value = t; + return this; + } + UpdateVendorVariablesBuilder approvalStatus(ApprovalStatus? t) { + _approvalStatus.value = t; + return this; + } + UpdateVendorVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + UpdateVendorVariablesBuilder markup(double? t) { + _markup.value = t; + return this; + } + UpdateVendorVariablesBuilder fee(double? t) { + _fee.value = t; + return this; + } + UpdateVendorVariablesBuilder csat(double? t) { + _csat.value = t; + return this; + } + UpdateVendorVariablesBuilder tier(VendorTier? t) { + _tier.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateVendor( + id: id, +) +.companyName(companyName) +.email(email) +.phone(phone) +.photoUrl(photoUrl) +.address(address) +.billingAddress(billingAddress) +.timezone(timezone) +.legalName(legalName) +.doingBusinessAs(doingBusinessAs) +.region(region) +.state(state) +.city(city) +.serviceSpecialty(serviceSpecialty) +.approvalStatus(approvalStatus) +.isActive(isActive) +.markup(markup) +.fee(fee) +.csat(csat) +.tier(tier) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateVendor( id: id, ); -updateTeamHubData data = result.data; +updateVendorData data = result.data; final ref = result.ref; ``` @@ -14336,18 +14470,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateTeamHub( +final ref = ExampleConnector.instance.updateVendor( id: id, ).ref(); ref.execute(); ``` -### deleteTeamHub +### deleteVendor #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteTeamHub( +ExampleConnector.instance.deleteVendor( id: id, ).execute(); ``` @@ -14355,7 +14489,7 @@ ExampleConnector.instance.deleteTeamHub( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -14365,10 +14499,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteTeamHub( +final result = await ExampleConnector.instance.deleteVendor( id: id, ); -deleteTeamHubData data = result.data; +deleteVendorData data = result.data; final ref = result.ref; ``` @@ -14378,7 +14512,2007 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteTeamHub( +final ref = ExampleConnector.instance.deleteVendor( + id: id, +).ref(); +ref.execute(); +``` + + +### createAccount +#### Required Arguments +```dart +String bank = ...; +AccountType type = ...; +String last4 = ...; +String ownerId = ...; +ExampleConnector.instance.createAccount( + bank: bank, + type: type, + last4: last4, + ownerId: ownerId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createAccount, we created `createAccountBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateAccountVariablesBuilder { + ... + CreateAccountVariablesBuilder isPrimary(bool? t) { + _isPrimary.value = t; + return this; + } + CreateAccountVariablesBuilder accountNumber(String? t) { + _accountNumber.value = t; + return this; + } + CreateAccountVariablesBuilder routeNumber(String? t) { + _routeNumber.value = t; + return this; + } + CreateAccountVariablesBuilder expiryTime(Timestamp? t) { + _expiryTime.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createAccount( + bank: bank, + type: type, + last4: last4, + ownerId: ownerId, +) +.isPrimary(isPrimary) +.accountNumber(accountNumber) +.routeNumber(routeNumber) +.expiryTime(expiryTime) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createAccount( + bank: bank, + type: type, + last4: last4, + ownerId: ownerId, +); +createAccountData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String bank = ...; +AccountType type = ...; +String last4 = ...; +String ownerId = ...; + +final ref = ExampleConnector.instance.createAccount( + bank: bank, + type: type, + last4: last4, + ownerId: ownerId, +).ref(); +ref.execute(); +``` + + +### updateAccount +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateAccount( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateAccount, we created `updateAccountBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateAccountVariablesBuilder { + ... + UpdateAccountVariablesBuilder bank(String? t) { + _bank.value = t; + return this; + } + UpdateAccountVariablesBuilder type(AccountType? t) { + _type.value = t; + return this; + } + UpdateAccountVariablesBuilder last4(String? t) { + _last4.value = t; + return this; + } + UpdateAccountVariablesBuilder isPrimary(bool? t) { + _isPrimary.value = t; + return this; + } + UpdateAccountVariablesBuilder accountNumber(String? t) { + _accountNumber.value = t; + return this; + } + UpdateAccountVariablesBuilder routeNumber(String? t) { + _routeNumber.value = t; + return this; + } + UpdateAccountVariablesBuilder expiryTime(Timestamp? t) { + _expiryTime.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateAccount( + id: id, +) +.bank(bank) +.type(type) +.last4(last4) +.isPrimary(isPrimary) +.accountNumber(accountNumber) +.routeNumber(routeNumber) +.expiryTime(expiryTime) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateAccount( + id: id, +); +updateAccountData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateAccount( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteAccount +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteAccount( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteAccount( + id: id, +); +deleteAccountData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteAccount( + id: id, +).ref(); +ref.execute(); +``` + + +### createShiftRole +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +int count = ...; +ExampleConnector.instance.createShiftRole( + shiftId: shiftId, + roleId: roleId, + count: count, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createShiftRole, we created `createShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateShiftRoleVariablesBuilder { + ... + CreateShiftRoleVariablesBuilder assigned(int? t) { + _assigned.value = t; + return this; + } + CreateShiftRoleVariablesBuilder startTime(Timestamp? t) { + _startTime.value = t; + return this; + } + CreateShiftRoleVariablesBuilder endTime(Timestamp? t) { + _endTime.value = t; + return this; + } + CreateShiftRoleVariablesBuilder hours(double? t) { + _hours.value = t; + return this; + } + CreateShiftRoleVariablesBuilder department(String? t) { + _department.value = t; + return this; + } + CreateShiftRoleVariablesBuilder uniform(String? t) { + _uniform.value = t; + return this; + } + CreateShiftRoleVariablesBuilder breakType(BreakDuration? t) { + _breakType.value = t; + return this; + } + CreateShiftRoleVariablesBuilder totalValue(double? t) { + _totalValue.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createShiftRole( + shiftId: shiftId, + roleId: roleId, + count: count, +) +.assigned(assigned) +.startTime(startTime) +.endTime(endTime) +.hours(hours) +.department(department) +.uniform(uniform) +.breakType(breakType) +.totalValue(totalValue) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createShiftRole( + shiftId: shiftId, + roleId: roleId, + count: count, +); +createShiftRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; +int count = ...; + +final ref = ExampleConnector.instance.createShiftRole( + shiftId: shiftId, + roleId: roleId, + count: count, +).ref(); +ref.execute(); +``` + + +### updateShiftRole +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +ExampleConnector.instance.updateShiftRole( + shiftId: shiftId, + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateShiftRole, we created `updateShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateShiftRoleVariablesBuilder { + ... + UpdateShiftRoleVariablesBuilder count(int? t) { + _count.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder assigned(int? t) { + _assigned.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder startTime(Timestamp? t) { + _startTime.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder endTime(Timestamp? t) { + _endTime.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder hours(double? t) { + _hours.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder department(String? t) { + _department.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder uniform(String? t) { + _uniform.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder breakType(BreakDuration? t) { + _breakType.value = t; + return this; + } + UpdateShiftRoleVariablesBuilder totalValue(double? t) { + _totalValue.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateShiftRole( + shiftId: shiftId, + roleId: roleId, +) +.count(count) +.assigned(assigned) +.startTime(startTime) +.endTime(endTime) +.hours(hours) +.department(department) +.uniform(uniform) +.breakType(breakType) +.totalValue(totalValue) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateShiftRole( + shiftId: shiftId, + roleId: roleId, +); +updateShiftRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.updateShiftRole( + shiftId: shiftId, + roleId: roleId, +).ref(); +ref.execute(); +``` + + +### deleteShiftRole +#### Required Arguments +```dart +String shiftId = ...; +String roleId = ...; +ExampleConnector.instance.deleteShiftRole( + shiftId: shiftId, + roleId: roleId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteShiftRole( + shiftId: shiftId, + roleId: roleId, +); +deleteShiftRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String shiftId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.deleteShiftRole( + shiftId: shiftId, + roleId: roleId, +).ref(); +ref.execute(); +``` + + +### createStaffAvailabilityStats +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.createStaffAvailabilityStats( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createStaffAvailabilityStats, we created `createStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffAvailabilityStatsVariablesBuilder { + ... + CreateStaffAvailabilityStatsVariablesBuilder needWorkIndex(int? t) { + _needWorkIndex.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder utilizationPercentage(int? t) { + _utilizationPercentage.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder predictedAvailabilityScore(int? t) { + _predictedAvailabilityScore.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder scheduledHoursThisPeriod(int? t) { + _scheduledHoursThisPeriod.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder desiredHoursThisPeriod(int? t) { + _desiredHoursThisPeriod.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder lastShiftDate(Timestamp? t) { + _lastShiftDate.value = t; + return this; + } + CreateStaffAvailabilityStatsVariablesBuilder acceptanceRate(int? t) { + _acceptanceRate.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaffAvailabilityStats( + staffId: staffId, +) +.needWorkIndex(needWorkIndex) +.utilizationPercentage(utilizationPercentage) +.predictedAvailabilityScore(predictedAvailabilityScore) +.scheduledHoursThisPeriod(scheduledHoursThisPeriod) +.desiredHoursThisPeriod(desiredHoursThisPeriod) +.lastShiftDate(lastShiftDate) +.acceptanceRate(acceptanceRate) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaffAvailabilityStats( + staffId: staffId, +); +createStaffAvailabilityStatsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.createStaffAvailabilityStats( + staffId: staffId, +).ref(); +ref.execute(); +``` + + +### updateStaffAvailabilityStats +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.updateStaffAvailabilityStats( + staffId: staffId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateStaffAvailabilityStats, we created `updateStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateStaffAvailabilityStatsVariablesBuilder { + ... + UpdateStaffAvailabilityStatsVariablesBuilder needWorkIndex(int? t) { + _needWorkIndex.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder utilizationPercentage(int? t) { + _utilizationPercentage.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder predictedAvailabilityScore(int? t) { + _predictedAvailabilityScore.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder scheduledHoursThisPeriod(int? t) { + _scheduledHoursThisPeriod.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder desiredHoursThisPeriod(int? t) { + _desiredHoursThisPeriod.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder lastShiftDate(Timestamp? t) { + _lastShiftDate.value = t; + return this; + } + UpdateStaffAvailabilityStatsVariablesBuilder acceptanceRate(int? t) { + _acceptanceRate.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateStaffAvailabilityStats( + staffId: staffId, +) +.needWorkIndex(needWorkIndex) +.utilizationPercentage(utilizationPercentage) +.predictedAvailabilityScore(predictedAvailabilityScore) +.scheduledHoursThisPeriod(scheduledHoursThisPeriod) +.desiredHoursThisPeriod(desiredHoursThisPeriod) +.lastShiftDate(lastShiftDate) +.acceptanceRate(acceptanceRate) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateStaffAvailabilityStats( + staffId: staffId, +); +updateStaffAvailabilityStatsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.updateStaffAvailabilityStats( + staffId: staffId, +).ref(); +ref.execute(); +``` + + +### deleteStaffAvailabilityStats +#### Required Arguments +```dart +String staffId = ...; +ExampleConnector.instance.deleteStaffAvailabilityStats( + staffId: staffId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaffAvailabilityStats( + staffId: staffId, +); +deleteStaffAvailabilityStatsData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; + +final ref = ExampleConnector.instance.deleteStaffAvailabilityStats( + staffId: staffId, +).ref(); +ref.execute(); +``` + + +### createTaskComment +#### Required Arguments +```dart +String taskId = ...; +String teamMemberId = ...; +String comment = ...; +ExampleConnector.instance.createTaskComment( + taskId: taskId, + teamMemberId: teamMemberId, + comment: comment, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTaskComment, we created `createTaskCommentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTaskCommentVariablesBuilder { + ... + CreateTaskCommentVariablesBuilder isSystem(bool? t) { + _isSystem.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTaskComment( + taskId: taskId, + teamMemberId: teamMemberId, + comment: comment, +) +.isSystem(isSystem) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createTaskComment( + taskId: taskId, + teamMemberId: teamMemberId, + comment: comment, +); +createTaskCommentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String taskId = ...; +String teamMemberId = ...; +String comment = ...; + +final ref = ExampleConnector.instance.createTaskComment( + taskId: taskId, + teamMemberId: teamMemberId, + comment: comment, +).ref(); +ref.execute(); +``` + + +### updateTaskComment +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateTaskComment( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateTaskComment, we created `updateTaskCommentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateTaskCommentVariablesBuilder { + ... + UpdateTaskCommentVariablesBuilder comment(String? t) { + _comment.value = t; + return this; + } + UpdateTaskCommentVariablesBuilder isSystem(bool? t) { + _isSystem.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateTaskComment( + id: id, +) +.comment(comment) +.isSystem(isSystem) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateTaskComment( + id: id, +); +updateTaskCommentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateTaskComment( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteTaskComment +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTaskComment( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteTaskComment( + id: id, +); +deleteTaskCommentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteTaskComment( + id: id, +).ref(); +ref.execute(); +``` + + +### createCustomRateCard +#### Required Arguments +```dart +String name = ...; +ExampleConnector.instance.createCustomRateCard( + name: name, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createCustomRateCard, we created `createCustomRateCardBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateCustomRateCardVariablesBuilder { + ... + CreateCustomRateCardVariablesBuilder baseBook(String? t) { + _baseBook.value = t; + return this; + } + CreateCustomRateCardVariablesBuilder discount(double? t) { + _discount.value = t; + return this; + } + CreateCustomRateCardVariablesBuilder isDefault(bool? t) { + _isDefault.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createCustomRateCard( + name: name, +) +.baseBook(baseBook) +.discount(discount) +.isDefault(isDefault) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createCustomRateCard( + name: name, +); +createCustomRateCardData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String name = ...; + +final ref = ExampleConnector.instance.createCustomRateCard( + name: name, +).ref(); +ref.execute(); +``` + + +### updateCustomRateCard +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateCustomRateCard( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateCustomRateCard, we created `updateCustomRateCardBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateCustomRateCardVariablesBuilder { + ... + UpdateCustomRateCardVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + UpdateCustomRateCardVariablesBuilder baseBook(String? t) { + _baseBook.value = t; + return this; + } + UpdateCustomRateCardVariablesBuilder discount(double? t) { + _discount.value = t; + return this; + } + UpdateCustomRateCardVariablesBuilder isDefault(bool? t) { + _isDefault.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateCustomRateCard( + id: id, +) +.name(name) +.baseBook(baseBook) +.discount(discount) +.isDefault(isDefault) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateCustomRateCard( + id: id, +); +updateCustomRateCardData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateCustomRateCard( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteCustomRateCard +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteCustomRateCard( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteCustomRateCard( + id: id, +); +deleteCustomRateCardData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteCustomRateCard( + id: id, +).ref(); +ref.execute(); +``` + + +### createActivityLog +#### Required Arguments +```dart +String userId = ...; +Timestamp date = ...; +String title = ...; +String description = ...; +ActivityType activityType = ...; +ExampleConnector.instance.createActivityLog( + userId: userId, + date: date, + title: title, + description: description, + activityType: activityType, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createActivityLog, we created `createActivityLogBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateActivityLogVariablesBuilder { + ... + CreateActivityLogVariablesBuilder hourStart(String? t) { + _hourStart.value = t; + return this; + } + CreateActivityLogVariablesBuilder hourEnd(String? t) { + _hourEnd.value = t; + return this; + } + CreateActivityLogVariablesBuilder totalhours(String? t) { + _totalhours.value = t; + return this; + } + CreateActivityLogVariablesBuilder iconType(ActivityIconType? t) { + _iconType.value = t; + return this; + } + CreateActivityLogVariablesBuilder iconColor(String? t) { + _iconColor.value = t; + return this; + } + CreateActivityLogVariablesBuilder isRead(bool? t) { + _isRead.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createActivityLog( + userId: userId, + date: date, + title: title, + description: description, + activityType: activityType, +) +.hourStart(hourStart) +.hourEnd(hourEnd) +.totalhours(totalhours) +.iconType(iconType) +.iconColor(iconColor) +.isRead(isRead) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createActivityLog( + userId: userId, + date: date, + title: title, + description: description, + activityType: activityType, +); +createActivityLogData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; +Timestamp date = ...; +String title = ...; +String description = ...; +ActivityType activityType = ...; + +final ref = ExampleConnector.instance.createActivityLog( + userId: userId, + date: date, + title: title, + description: description, + activityType: activityType, +).ref(); +ref.execute(); +``` + + +### updateActivityLog +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateActivityLog( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateActivityLog, we created `updateActivityLogBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateActivityLogVariablesBuilder { + ... + UpdateActivityLogVariablesBuilder userId(String? t) { + _userId.value = t; + return this; + } + UpdateActivityLogVariablesBuilder date(Timestamp? t) { + _date.value = t; + return this; + } + UpdateActivityLogVariablesBuilder hourStart(String? t) { + _hourStart.value = t; + return this; + } + UpdateActivityLogVariablesBuilder hourEnd(String? t) { + _hourEnd.value = t; + return this; + } + UpdateActivityLogVariablesBuilder totalhours(String? t) { + _totalhours.value = t; + return this; + } + UpdateActivityLogVariablesBuilder iconType(ActivityIconType? t) { + _iconType.value = t; + return this; + } + UpdateActivityLogVariablesBuilder iconColor(String? t) { + _iconColor.value = t; + return this; + } + UpdateActivityLogVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + UpdateActivityLogVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateActivityLogVariablesBuilder isRead(bool? t) { + _isRead.value = t; + return this; + } + UpdateActivityLogVariablesBuilder activityType(ActivityType? t) { + _activityType.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateActivityLog( + id: id, +) +.userId(userId) +.date(date) +.hourStart(hourStart) +.hourEnd(hourEnd) +.totalhours(totalhours) +.iconType(iconType) +.iconColor(iconColor) +.title(title) +.description(description) +.isRead(isRead) +.activityType(activityType) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateActivityLog( + id: id, +); +updateActivityLogData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateActivityLog( + id: id, +).ref(); +ref.execute(); +``` + + +### markActivityLogAsRead +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.markActivityLogAsRead( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.markActivityLogAsRead( + id: id, +); +markActivityLogAsReadData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.markActivityLogAsRead( + id: id, +).ref(); +ref.execute(); +``` + + +### markActivityLogsAsRead +#### Required Arguments +```dart +String ids = ...; +ExampleConnector.instance.markActivityLogsAsRead( + ids: ids, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.markActivityLogsAsRead( + ids: ids, +); +markActivityLogsAsReadData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String ids = ...; + +final ref = ExampleConnector.instance.markActivityLogsAsRead( + ids: ids, +).ref(); +ref.execute(); +``` + + +### deleteActivityLog +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteActivityLog( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteActivityLog( + id: id, +); +deleteActivityLogData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteActivityLog( + id: id, +).ref(); +ref.execute(); +``` + + +### createMemberTask +#### Required Arguments +```dart +String teamMemberId = ...; +String taskId = ...; +ExampleConnector.instance.createMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +); +createMemberTaskData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamMemberId = ...; +String taskId = ...; + +final ref = ExampleConnector.instance.createMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +).ref(); +ref.execute(); +``` + + +### deleteMemberTask +#### Required Arguments +```dart +String teamMemberId = ...; +String taskId = ...; +ExampleConnector.instance.deleteMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +); +deleteMemberTaskData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamMemberId = ...; +String taskId = ...; + +final ref = ExampleConnector.instance.deleteMemberTask( + teamMemberId: teamMemberId, + taskId: taskId, +).ref(); +ref.execute(); +``` + + +### CreateStaff +#### Required Arguments +```dart +String userId = ...; +String fullName = ...; +ExampleConnector.instance.createStaff( + userId: userId, + fullName: fullName, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For CreateStaff, we created `CreateStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffVariablesBuilder { + ... + CreateStaffVariablesBuilder level(String? t) { + _level.value = t; + return this; + } + CreateStaffVariablesBuilder role(String? t) { + _role.value = t; + return this; + } + CreateStaffVariablesBuilder phone(String? t) { + _phone.value = t; + return this; + } + CreateStaffVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + CreateStaffVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; + return this; + } + CreateStaffVariablesBuilder totalShifts(int? t) { + _totalShifts.value = t; + return this; + } + CreateStaffVariablesBuilder averageRating(double? t) { + _averageRating.value = t; + return this; + } + CreateStaffVariablesBuilder onTimeRate(int? t) { + _onTimeRate.value = t; + return this; + } + CreateStaffVariablesBuilder noShowCount(int? t) { + _noShowCount.value = t; + return this; + } + CreateStaffVariablesBuilder cancellationCount(int? t) { + _cancellationCount.value = t; + return this; + } + CreateStaffVariablesBuilder reliabilityScore(int? t) { + _reliabilityScore.value = t; + return this; + } + CreateStaffVariablesBuilder bio(String? t) { + _bio.value = t; + return this; + } + CreateStaffVariablesBuilder skills(List? t) { + _skills.value = t; + return this; + } + CreateStaffVariablesBuilder industries(List? t) { + _industries.value = t; + return this; + } + CreateStaffVariablesBuilder preferredLocations(List? t) { + _preferredLocations.value = t; + return this; + } + CreateStaffVariablesBuilder maxDistanceMiles(int? t) { + _maxDistanceMiles.value = t; + return this; + } + CreateStaffVariablesBuilder languages(AnyValue? t) { + _languages.value = t; + return this; + } + CreateStaffVariablesBuilder itemsAttire(AnyValue? t) { + _itemsAttire.value = t; + return this; + } + CreateStaffVariablesBuilder xp(int? t) { + _xp.value = t; + return this; + } + CreateStaffVariablesBuilder badges(AnyValue? t) { + _badges.value = t; + return this; + } + CreateStaffVariablesBuilder isRecommended(bool? t) { + _isRecommended.value = t; + return this; + } + CreateStaffVariablesBuilder ownerId(String? t) { + _ownerId.value = t; + return this; + } + CreateStaffVariablesBuilder department(DepartmentType? t) { + _department.value = t; + return this; + } + CreateStaffVariablesBuilder hubId(String? t) { + _hubId.value = t; + return this; + } + CreateStaffVariablesBuilder manager(String? t) { + _manager.value = t; + return this; + } + CreateStaffVariablesBuilder english(EnglishProficiency? t) { + _english.value = t; + return this; + } + CreateStaffVariablesBuilder backgroundCheckStatus(BackgroundCheckStatus? t) { + _backgroundCheckStatus.value = t; + return this; + } + CreateStaffVariablesBuilder employmentType(EmploymentType? t) { + _employmentType.value = t; + return this; + } + CreateStaffVariablesBuilder initial(String? t) { + _initial.value = t; + return this; + } + CreateStaffVariablesBuilder englishRequired(bool? t) { + _englishRequired.value = t; + return this; + } + CreateStaffVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + CreateStaffVariablesBuilder addres(String? t) { + _addres.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaff( + userId: userId, + fullName: fullName, +) +.level(level) +.role(role) +.phone(phone) +.email(email) +.photoUrl(photoUrl) +.totalShifts(totalShifts) +.averageRating(averageRating) +.onTimeRate(onTimeRate) +.noShowCount(noShowCount) +.cancellationCount(cancellationCount) +.reliabilityScore(reliabilityScore) +.bio(bio) +.skills(skills) +.industries(industries) +.preferredLocations(preferredLocations) +.maxDistanceMiles(maxDistanceMiles) +.languages(languages) +.itemsAttire(itemsAttire) +.xp(xp) +.badges(badges) +.isRecommended(isRecommended) +.ownerId(ownerId) +.department(department) +.hubId(hubId) +.manager(manager) +.english(english) +.backgroundCheckStatus(backgroundCheckStatus) +.employmentType(employmentType) +.initial(initial) +.englishRequired(englishRequired) +.city(city) +.addres(addres) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaff( + userId: userId, + fullName: fullName, +); +CreateStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String userId = ...; +String fullName = ...; + +final ref = ExampleConnector.instance.createStaff( + userId: userId, + fullName: fullName, +).ref(); +ref.execute(); +``` + + +### UpdateStaff +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateStaff( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For UpdateStaff, we created `UpdateStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateStaffVariablesBuilder { + ... + UpdateStaffVariablesBuilder userId(String? t) { + _userId.value = t; + return this; + } + UpdateStaffVariablesBuilder fullName(String? t) { + _fullName.value = t; + return this; + } + UpdateStaffVariablesBuilder level(String? t) { + _level.value = t; + return this; + } + UpdateStaffVariablesBuilder role(String? t) { + _role.value = t; + return this; + } + UpdateStaffVariablesBuilder phone(String? t) { + _phone.value = t; + return this; + } + UpdateStaffVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + UpdateStaffVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; + return this; + } + UpdateStaffVariablesBuilder totalShifts(int? t) { + _totalShifts.value = t; + return this; + } + UpdateStaffVariablesBuilder averageRating(double? t) { + _averageRating.value = t; + return this; + } + UpdateStaffVariablesBuilder onTimeRate(int? t) { + _onTimeRate.value = t; + return this; + } + UpdateStaffVariablesBuilder noShowCount(int? t) { + _noShowCount.value = t; + return this; + } + UpdateStaffVariablesBuilder cancellationCount(int? t) { + _cancellationCount.value = t; + return this; + } + UpdateStaffVariablesBuilder reliabilityScore(int? t) { + _reliabilityScore.value = t; + return this; + } + UpdateStaffVariablesBuilder bio(String? t) { + _bio.value = t; + return this; + } + UpdateStaffVariablesBuilder skills(List? t) { + _skills.value = t; + return this; + } + UpdateStaffVariablesBuilder industries(List? t) { + _industries.value = t; + return this; + } + UpdateStaffVariablesBuilder preferredLocations(List? t) { + _preferredLocations.value = t; + return this; + } + UpdateStaffVariablesBuilder maxDistanceMiles(int? t) { + _maxDistanceMiles.value = t; + return this; + } + UpdateStaffVariablesBuilder languages(AnyValue? t) { + _languages.value = t; + return this; + } + UpdateStaffVariablesBuilder itemsAttire(AnyValue? t) { + _itemsAttire.value = t; + return this; + } + UpdateStaffVariablesBuilder xp(int? t) { + _xp.value = t; + return this; + } + UpdateStaffVariablesBuilder badges(AnyValue? t) { + _badges.value = t; + return this; + } + UpdateStaffVariablesBuilder isRecommended(bool? t) { + _isRecommended.value = t; + return this; + } + UpdateStaffVariablesBuilder ownerId(String? t) { + _ownerId.value = t; + return this; + } + UpdateStaffVariablesBuilder department(DepartmentType? t) { + _department.value = t; + return this; + } + UpdateStaffVariablesBuilder hubId(String? t) { + _hubId.value = t; + return this; + } + UpdateStaffVariablesBuilder manager(String? t) { + _manager.value = t; + return this; + } + UpdateStaffVariablesBuilder english(EnglishProficiency? t) { + _english.value = t; + return this; + } + UpdateStaffVariablesBuilder backgroundCheckStatus(BackgroundCheckStatus? t) { + _backgroundCheckStatus.value = t; + return this; + } + UpdateStaffVariablesBuilder employmentType(EmploymentType? t) { + _employmentType.value = t; + return this; + } + UpdateStaffVariablesBuilder initial(String? t) { + _initial.value = t; + return this; + } + UpdateStaffVariablesBuilder englishRequired(bool? t) { + _englishRequired.value = t; + return this; + } + UpdateStaffVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + UpdateStaffVariablesBuilder addres(String? t) { + _addres.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateStaff( + id: id, +) +.userId(userId) +.fullName(fullName) +.level(level) +.role(role) +.phone(phone) +.email(email) +.photoUrl(photoUrl) +.totalShifts(totalShifts) +.averageRating(averageRating) +.onTimeRate(onTimeRate) +.noShowCount(noShowCount) +.cancellationCount(cancellationCount) +.reliabilityScore(reliabilityScore) +.bio(bio) +.skills(skills) +.industries(industries) +.preferredLocations(preferredLocations) +.maxDistanceMiles(maxDistanceMiles) +.languages(languages) +.itemsAttire(itemsAttire) +.xp(xp) +.badges(badges) +.isRecommended(isRecommended) +.ownerId(ownerId) +.department(department) +.hubId(hubId) +.manager(manager) +.english(english) +.backgroundCheckStatus(backgroundCheckStatus) +.employmentType(employmentType) +.initial(initial) +.englishRequired(englishRequired) +.city(city) +.addres(addres) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateStaff( + id: id, +); +UpdateStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateStaff( + id: id, +).ref(); +ref.execute(); +``` + + +### DeleteStaff +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteStaff( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaff( + id: id, +); +DeleteStaffData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteStaff( id: id, ).ref(); ref.execute(); @@ -14602,120 +16736,78 @@ ref.execute(); ``` -### createShift +### CreateCertificate #### Required Arguments ```dart -String title = ...; -String orderId = ...; -ExampleConnector.instance.createShift( - title: title, - orderId: orderId, +String name = ...; +CertificateStatus status = ...; +String staffId = ...; +ExampleConnector.instance.createCertificate( + name: name, + status: status, + staffId: staffId, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createShift, we created `createShiftBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For CreateCertificate, we created `CreateCertificateBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateShiftVariablesBuilder { +class CreateCertificateVariablesBuilder { ... - CreateShiftVariablesBuilder date(Timestamp? t) { - _date.value = t; - return this; - } - CreateShiftVariablesBuilder startTime(Timestamp? t) { - _startTime.value = t; - return this; - } - CreateShiftVariablesBuilder endTime(Timestamp? t) { - _endTime.value = t; - return this; - } - CreateShiftVariablesBuilder hours(double? t) { - _hours.value = t; - return this; - } - CreateShiftVariablesBuilder cost(double? t) { - _cost.value = t; - return this; - } - CreateShiftVariablesBuilder location(String? t) { - _location.value = t; - return this; - } - CreateShiftVariablesBuilder locationAddress(String? t) { - _locationAddress.value = t; - return this; - } - CreateShiftVariablesBuilder latitude(double? t) { - _latitude.value = t; - return this; - } - CreateShiftVariablesBuilder longitude(double? t) { - _longitude.value = t; - return this; - } - CreateShiftVariablesBuilder description(String? t) { + CreateCertificateVariablesBuilder description(String? t) { _description.value = t; return this; } - CreateShiftVariablesBuilder status(ShiftStatus? t) { - _status.value = t; + CreateCertificateVariablesBuilder expiry(Timestamp? t) { + _expiry.value = t; return this; } - CreateShiftVariablesBuilder workersNeeded(int? t) { - _workersNeeded.value = t; + CreateCertificateVariablesBuilder fileUrl(String? t) { + _fileUrl.value = t; return this; } - CreateShiftVariablesBuilder filled(int? t) { - _filled.value = t; + CreateCertificateVariablesBuilder icon(String? t) { + _icon.value = t; return this; } - CreateShiftVariablesBuilder filledAt(Timestamp? t) { - _filledAt.value = t; + CreateCertificateVariablesBuilder certificationType(ComplianceType? t) { + _certificationType.value = t; return this; } - CreateShiftVariablesBuilder managers(List? t) { - _managers.value = t; + CreateCertificateVariablesBuilder issuer(String? t) { + _issuer.value = t; return this; } - CreateShiftVariablesBuilder durationDays(int? t) { - _durationDays.value = t; + CreateCertificateVariablesBuilder validationStatus(ValidationStatus? t) { + _validationStatus.value = t; return this; } - CreateShiftVariablesBuilder createdBy(String? t) { - _createdBy.value = t; + CreateCertificateVariablesBuilder certificateNumber(String? t) { + _certificateNumber.value = t; return this; } ... } -ExampleConnector.instance.createShift( - title: title, - orderId: orderId, +ExampleConnector.instance.createCertificate( + name: name, + status: status, + staffId: staffId, ) -.date(date) -.startTime(startTime) -.endTime(endTime) -.hours(hours) -.cost(cost) -.location(location) -.locationAddress(locationAddress) -.latitude(latitude) -.longitude(longitude) .description(description) -.status(status) -.workersNeeded(workersNeeded) -.filled(filled) -.filledAt(filledAt) -.managers(managers) -.durationDays(durationDays) -.createdBy(createdBy) +.expiry(expiry) +.fileUrl(fileUrl) +.icon(icon) +.certificationType(certificationType) +.issuer(issuer) +.validationStatus(validationStatus) +.certificateNumber(certificateNumber) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -14725,11 +16817,12 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createShift( - title: title, - orderId: orderId, +final result = await ExampleConnector.instance.createCertificate( + name: name, + status: status, + staffId: staffId, ); -createShiftData data = result.data; +CreateCertificateData data = result.data; final ref = result.ref; ``` @@ -14737,133 +16830,100 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String title = ...; -String orderId = ...; +String name = ...; +CertificateStatus status = ...; +String staffId = ...; -final ref = ExampleConnector.instance.createShift( - title: title, - orderId: orderId, +final ref = ExampleConnector.instance.createCertificate( + name: name, + status: status, + staffId: staffId, ).ref(); ref.execute(); ``` -### updateShift +### UpdateCertificate #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateShift( +ExampleConnector.instance.updateCertificate( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateShift, we created `updateShiftBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For UpdateCertificate, we created `UpdateCertificateBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateShiftVariablesBuilder { +class UpdateCertificateVariablesBuilder { ... - UpdateShiftVariablesBuilder title(String? t) { - _title.value = t; + UpdateCertificateVariablesBuilder name(String? t) { + _name.value = t; return this; } - UpdateShiftVariablesBuilder orderId(String? t) { - _orderId.value = t; - return this; - } - UpdateShiftVariablesBuilder date(Timestamp? t) { - _date.value = t; - return this; - } - UpdateShiftVariablesBuilder startTime(Timestamp? t) { - _startTime.value = t; - return this; - } - UpdateShiftVariablesBuilder endTime(Timestamp? t) { - _endTime.value = t; - return this; - } - UpdateShiftVariablesBuilder hours(double? t) { - _hours.value = t; - return this; - } - UpdateShiftVariablesBuilder cost(double? t) { - _cost.value = t; - return this; - } - UpdateShiftVariablesBuilder location(String? t) { - _location.value = t; - return this; - } - UpdateShiftVariablesBuilder locationAddress(String? t) { - _locationAddress.value = t; - return this; - } - UpdateShiftVariablesBuilder latitude(double? t) { - _latitude.value = t; - return this; - } - UpdateShiftVariablesBuilder longitude(double? t) { - _longitude.value = t; - return this; - } - UpdateShiftVariablesBuilder description(String? t) { + UpdateCertificateVariablesBuilder description(String? t) { _description.value = t; return this; } - UpdateShiftVariablesBuilder status(ShiftStatus? t) { + UpdateCertificateVariablesBuilder expiry(Timestamp? t) { + _expiry.value = t; + return this; + } + UpdateCertificateVariablesBuilder status(CertificateStatus? t) { _status.value = t; return this; } - UpdateShiftVariablesBuilder workersNeeded(int? t) { - _workersNeeded.value = t; + UpdateCertificateVariablesBuilder fileUrl(String? t) { + _fileUrl.value = t; return this; } - UpdateShiftVariablesBuilder filled(int? t) { - _filled.value = t; + UpdateCertificateVariablesBuilder icon(String? t) { + _icon.value = t; return this; } - UpdateShiftVariablesBuilder filledAt(Timestamp? t) { - _filledAt.value = t; + UpdateCertificateVariablesBuilder staffId(String? t) { + _staffId.value = t; return this; } - UpdateShiftVariablesBuilder managers(List? t) { - _managers.value = t; + UpdateCertificateVariablesBuilder certificationType(ComplianceType? t) { + _certificationType.value = t; return this; } - UpdateShiftVariablesBuilder durationDays(int? t) { - _durationDays.value = t; + UpdateCertificateVariablesBuilder issuer(String? t) { + _issuer.value = t; + return this; + } + UpdateCertificateVariablesBuilder validationStatus(ValidationStatus? t) { + _validationStatus.value = t; + return this; + } + UpdateCertificateVariablesBuilder certificateNumber(String? t) { + _certificateNumber.value = t; return this; } ... } -ExampleConnector.instance.updateShift( +ExampleConnector.instance.updateCertificate( id: id, ) -.title(title) -.orderId(orderId) -.date(date) -.startTime(startTime) -.endTime(endTime) -.hours(hours) -.cost(cost) -.location(location) -.locationAddress(locationAddress) -.latitude(latitude) -.longitude(longitude) +.name(name) .description(description) +.expiry(expiry) .status(status) -.workersNeeded(workersNeeded) -.filled(filled) -.filledAt(filledAt) -.managers(managers) -.durationDays(durationDays) +.fileUrl(fileUrl) +.icon(icon) +.staffId(staffId) +.certificationType(certificationType) +.issuer(issuer) +.validationStatus(validationStatus) +.certificateNumber(certificateNumber) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -14873,10 +16933,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateShift( +final result = await ExampleConnector.instance.updateCertificate( id: id, ); -updateShiftData data = result.data; +UpdateCertificateData data = result.data; final ref = result.ref; ``` @@ -14886,18 +16946,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateShift( +final ref = ExampleConnector.instance.updateCertificate( id: id, ).ref(); ref.execute(); ``` -### deleteShift +### DeleteCertificate #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteShift( +ExampleConnector.instance.deleteCertificate( id: id, ).execute(); ``` @@ -14905,7 +16965,7 @@ ExampleConnector.instance.deleteShift( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -14915,10 +16975,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteShift( +final result = await ExampleConnector.instance.deleteCertificate( id: id, ); -deleteShiftData data = result.data; +DeleteCertificateData data = result.data; final ref = result.ref; ``` @@ -14928,13 +16988,324 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteShift( +final ref = ExampleConnector.instance.deleteCertificate( id: id, ).ref(); ref.execute(); ``` +### createHub +#### Required Arguments +```dart +String name = ...; +String ownerId = ...; +ExampleConnector.instance.createHub( + name: name, + ownerId: ownerId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createHub, we created `createHubBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateHubVariablesBuilder { + ... + CreateHubVariablesBuilder locationName(String? t) { + _locationName.value = t; + return this; + } + CreateHubVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + CreateHubVariablesBuilder nfcTagId(String? t) { + _nfcTagId.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createHub( + name: name, + ownerId: ownerId, +) +.locationName(locationName) +.address(address) +.nfcTagId(nfcTagId) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createHub( + name: name, + ownerId: ownerId, +); +createHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String name = ...; +String ownerId = ...; + +final ref = ExampleConnector.instance.createHub( + name: name, + ownerId: ownerId, +).ref(); +ref.execute(); +``` + + +### updateHub +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateHub( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateHub, we created `updateHubBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateHubVariablesBuilder { + ... + UpdateHubVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + UpdateHubVariablesBuilder locationName(String? t) { + _locationName.value = t; + return this; + } + UpdateHubVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + UpdateHubVariablesBuilder nfcTagId(String? t) { + _nfcTagId.value = t; + return this; + } + UpdateHubVariablesBuilder ownerId(String? t) { + _ownerId.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateHub( + id: id, +) +.name(name) +.locationName(locationName) +.address(address) +.nfcTagId(nfcTagId) +.ownerId(ownerId) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateHub( + id: id, +); +updateHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateHub( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteHub +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteHub( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteHub( + id: id, +); +deleteHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteHub( + id: id, +).ref(); +ref.execute(); +``` + + +### createStaffRole +#### Required Arguments +```dart +String staffId = ...; +String roleId = ...; +ExampleConnector.instance.createStaffRole( + staffId: staffId, + roleId: roleId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createStaffRole, we created `createStaffRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffRoleVariablesBuilder { + ... + CreateStaffRoleVariablesBuilder roleType(RoleType? t) { + _roleType.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaffRole( + staffId: staffId, + roleId: roleId, +) +.roleType(roleType) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaffRole( + staffId: staffId, + roleId: roleId, +); +createStaffRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.createStaffRole( + staffId: staffId, + roleId: roleId, +).ref(); +ref.execute(); +``` + + +### deleteStaffRole +#### Required Arguments +```dart +String staffId = ...; +String roleId = ...; +ExampleConnector.instance.deleteStaffRole( + staffId: staffId, + roleId: roleId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaffRole( + staffId: staffId, + roleId: roleId, +); +deleteStaffRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String roleId = ...; + +final ref = ExampleConnector.instance.deleteStaffRole( + staffId: staffId, + roleId: roleId, +).ref(); +ref.execute(); +``` + + ### createUserConversation #### Required Arguments ```dart @@ -15242,55 +17613,40 @@ ref.execute(); ``` -### CreateUser +### createCategory #### Required Arguments ```dart -String id = ...; -UserBaseRole role = ...; -ExampleConnector.instance.createUser( - id: id, - role: role, +String categoryId = ...; +String label = ...; +ExampleConnector.instance.createCategory( + categoryId: categoryId, + label: label, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For CreateUser, we created `CreateUserBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createCategory, we created `createCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateUserVariablesBuilder { +class CreateCategoryVariablesBuilder { ... - CreateUserVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - CreateUserVariablesBuilder fullName(String? t) { - _fullName.value = t; - return this; - } - CreateUserVariablesBuilder userRole(String? t) { - _userRole.value = t; - return this; - } - CreateUserVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; + CreateCategoryVariablesBuilder icon(String? t) { + _icon.value = t; return this; } ... } -ExampleConnector.instance.createUser( - id: id, - role: role, +ExampleConnector.instance.createCategory( + categoryId: categoryId, + label: label, ) -.email(email) -.fullName(fullName) -.userRole(userRole) -.photoUrl(photoUrl) +.icon(icon) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15300,11 +17656,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createUser( - id: id, - role: role, +final result = await ExampleConnector.instance.createCategory( + categoryId: categoryId, + label: label, ); -CreateUserData data = result.data; +createCategoryData data = result.data; final ref = result.ref; ``` @@ -15312,68 +17668,58 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String id = ...; -UserBaseRole role = ...; +String categoryId = ...; +String label = ...; -final ref = ExampleConnector.instance.createUser( - id: id, - role: role, +final ref = ExampleConnector.instance.createCategory( + categoryId: categoryId, + label: label, ).ref(); ref.execute(); ``` -### UpdateUser +### updateCategory #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateUser( +ExampleConnector.instance.updateCategory( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For UpdateUser, we created `UpdateUserBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateCategory, we created `updateCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateUserVariablesBuilder { +class UpdateCategoryVariablesBuilder { ... - UpdateUserVariablesBuilder email(String? t) { - _email.value = t; + UpdateCategoryVariablesBuilder categoryId(String? t) { + _categoryId.value = t; return this; } - UpdateUserVariablesBuilder fullName(String? t) { - _fullName.value = t; + UpdateCategoryVariablesBuilder label(String? t) { + _label.value = t; return this; } - UpdateUserVariablesBuilder role(UserBaseRole? t) { - _role.value = t; - return this; - } - UpdateUserVariablesBuilder userRole(String? t) { - _userRole.value = t; - return this; - } - UpdateUserVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; + UpdateCategoryVariablesBuilder icon(String? t) { + _icon.value = t; return this; } ... } -ExampleConnector.instance.updateUser( +ExampleConnector.instance.updateCategory( id: id, ) -.email(email) -.fullName(fullName) -.role(role) -.userRole(userRole) -.photoUrl(photoUrl) +.categoryId(categoryId) +.label(label) +.icon(icon) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15383,10 +17729,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateUser( +final result = await ExampleConnector.instance.updateCategory( id: id, ); -UpdateUserData data = result.data; +updateCategoryData data = result.data; final ref = result.ref; ``` @@ -15396,18 +17742,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateUser( +final ref = ExampleConnector.instance.updateCategory( id: id, ).ref(); ref.execute(); ``` -### DeleteUser +### deleteCategory #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteUser( +ExampleConnector.instance.deleteCategory( id: id, ).execute(); ``` @@ -15415,7 +17761,7 @@ ExampleConnector.instance.deleteUser( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15425,10 +17771,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteUser( +final result = await ExampleConnector.instance.deleteCategory( id: id, ); -DeleteUserData data = result.data; +deleteCategoryData data = result.data; final ref = result.ref; ``` @@ -15438,62 +17784,47 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteUser( +final ref = ExampleConnector.instance.deleteCategory( id: id, ).ref(); ref.execute(); ``` -### createClientFeedback +### createDocument #### Required Arguments ```dart -String businessId = ...; -String vendorId = ...; -ExampleConnector.instance.createClientFeedback( - businessId: businessId, - vendorId: vendorId, +DocumentType documentType = ...; +String name = ...; +ExampleConnector.instance.createDocument( + documentType: documentType, + name: name, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createClientFeedback, we created `createClientFeedbackBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createDocument, we created `createDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateClientFeedbackVariablesBuilder { +class CreateDocumentVariablesBuilder { ... - CreateClientFeedbackVariablesBuilder rating(int? t) { - _rating.value = t; - return this; - } - CreateClientFeedbackVariablesBuilder comment(String? t) { - _comment.value = t; - return this; - } - CreateClientFeedbackVariablesBuilder date(Timestamp? t) { - _date.value = t; - return this; - } - CreateClientFeedbackVariablesBuilder createdBy(String? t) { - _createdBy.value = t; + CreateDocumentVariablesBuilder description(String? t) { + _description.value = t; return this; } ... } -ExampleConnector.instance.createClientFeedback( - businessId: businessId, - vendorId: vendorId, +ExampleConnector.instance.createDocument( + documentType: documentType, + name: name, ) -.rating(rating) -.comment(comment) -.date(date) -.createdBy(createdBy) +.description(description) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15503,11 +17834,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createClientFeedback( - businessId: businessId, - vendorId: vendorId, +final result = await ExampleConnector.instance.createDocument( + documentType: documentType, + name: name, ); -createClientFeedbackData data = result.data; +createDocumentData data = result.data; final ref = result.ref; ``` @@ -15515,73 +17846,58 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String businessId = ...; -String vendorId = ...; +DocumentType documentType = ...; +String name = ...; -final ref = ExampleConnector.instance.createClientFeedback( - businessId: businessId, - vendorId: vendorId, +final ref = ExampleConnector.instance.createDocument( + documentType: documentType, + name: name, ).ref(); ref.execute(); ``` -### updateClientFeedback +### updateDocument #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateClientFeedback( +ExampleConnector.instance.updateDocument( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateClientFeedback, we created `updateClientFeedbackBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateDocument, we created `updateDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateClientFeedbackVariablesBuilder { +class UpdateDocumentVariablesBuilder { ... - UpdateClientFeedbackVariablesBuilder businessId(String? t) { - _businessId.value = t; + UpdateDocumentVariablesBuilder documentType(DocumentType? t) { + _documentType.value = t; return this; } - UpdateClientFeedbackVariablesBuilder vendorId(String? t) { - _vendorId.value = t; + UpdateDocumentVariablesBuilder name(String? t) { + _name.value = t; return this; } - UpdateClientFeedbackVariablesBuilder rating(int? t) { - _rating.value = t; - return this; - } - UpdateClientFeedbackVariablesBuilder comment(String? t) { - _comment.value = t; - return this; - } - UpdateClientFeedbackVariablesBuilder date(Timestamp? t) { - _date.value = t; - return this; - } - UpdateClientFeedbackVariablesBuilder createdBy(String? t) { - _createdBy.value = t; + UpdateDocumentVariablesBuilder description(String? t) { + _description.value = t; return this; } ... } -ExampleConnector.instance.updateClientFeedback( +ExampleConnector.instance.updateDocument( id: id, ) -.businessId(businessId) -.vendorId(vendorId) -.rating(rating) -.comment(comment) -.date(date) -.createdBy(createdBy) +.documentType(documentType) +.name(name) +.description(description) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15591,10 +17907,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateClientFeedback( +final result = await ExampleConnector.instance.updateDocument( id: id, ); -updateClientFeedbackData data = result.data; +updateDocumentData data = result.data; final ref = result.ref; ``` @@ -15604,18 +17920,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateClientFeedback( +final ref = ExampleConnector.instance.updateDocument( id: id, ).ref(); ref.execute(); ``` -### deleteClientFeedback +### deleteDocument #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteClientFeedback( +ExampleConnector.instance.deleteDocument( id: id, ).execute(); ``` @@ -15623,7 +17939,7 @@ ExampleConnector.instance.deleteClientFeedback( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -15633,10 +17949,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteClientFeedback( +final result = await ExampleConnector.instance.deleteDocument( id: id, ); -deleteClientFeedbackData data = result.data; +deleteDocumentData data = result.data; final ref = result.ref; ``` @@ -15646,219 +17962,13 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteClientFeedback( +final ref = ExampleConnector.instance.deleteDocument( id: id, ).ref(); ref.execute(); ``` -### createStaffAvailability -#### Required Arguments -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; -ExampleConnector.instance.createStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createStaffAvailability, we created `createStaffAvailabilityBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateStaffAvailabilityVariablesBuilder { - ... - CreateStaffAvailabilityVariablesBuilder status(AvailabilityStatus? t) { - _status.value = t; - return this; - } - CreateStaffAvailabilityVariablesBuilder notes(String? t) { - _notes.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -) -.status(status) -.notes(notes) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -); -createStaffAvailabilityData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; - -final ref = ExampleConnector.instance.createStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).ref(); -ref.execute(); -``` - - -### updateStaffAvailability -#### Required Arguments -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; -ExampleConnector.instance.updateStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateStaffAvailability, we created `updateStaffAvailabilityBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateStaffAvailabilityVariablesBuilder { - ... - UpdateStaffAvailabilityVariablesBuilder status(AvailabilityStatus? t) { - _status.value = t; - return this; - } - UpdateStaffAvailabilityVariablesBuilder notes(String? t) { - _notes.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -) -.status(status) -.notes(notes) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -); -updateStaffAvailabilityData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; - -final ref = ExampleConnector.instance.updateStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).ref(); -ref.execute(); -``` - - -### deleteStaffAvailability -#### Required Arguments -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; -ExampleConnector.instance.deleteStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -); -deleteStaffAvailabilityData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -DayOfWeek day = ...; -AvailabilitySlot slot = ...; - -final ref = ExampleConnector.instance.deleteStaffAvailability( - staffId: staffId, - day: day, - slot: slot, -).ref(); -ref.execute(); -``` - - ### createConversation #### Required Arguments ```dart @@ -16137,1017 +18247,6 @@ ref.execute(); ``` -### createTaxForm -#### Required Arguments -```dart -TaxFormType formType = ...; -String title = ...; -String staffId = ...; -ExampleConnector.instance.createTaxForm( - formType: formType, - title: title, - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createTaxForm, we created `createTaxFormBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateTaxFormVariablesBuilder { - ... - CreateTaxFormVariablesBuilder subtitle(String? t) { - _subtitle.value = t; - return this; - } - CreateTaxFormVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - CreateTaxFormVariablesBuilder status(TaxFormStatus? t) { - _status.value = t; - return this; - } - CreateTaxFormVariablesBuilder formData(AnyValue? t) { - _formData.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createTaxForm( - formType: formType, - title: title, - staffId: staffId, -) -.subtitle(subtitle) -.description(description) -.status(status) -.formData(formData) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createTaxForm( - formType: formType, - title: title, - staffId: staffId, -); -createTaxFormData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -TaxFormType formType = ...; -String title = ...; -String staffId = ...; - -final ref = ExampleConnector.instance.createTaxForm( - formType: formType, - title: title, - staffId: staffId, -).ref(); -ref.execute(); -``` - - -### updateTaxForm -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTaxForm( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateTaxForm, we created `updateTaxFormBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateTaxFormVariablesBuilder { - ... - UpdateTaxFormVariablesBuilder status(TaxFormStatus? t) { - _status.value = t; - return this; - } - UpdateTaxFormVariablesBuilder formData(AnyValue? t) { - _formData.value = t; - return this; - } - UpdateTaxFormVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateTaxFormVariablesBuilder subtitle(String? t) { - _subtitle.value = t; - return this; - } - UpdateTaxFormVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateTaxForm( - id: id, -) -.status(status) -.formData(formData) -.title(title) -.subtitle(subtitle) -.description(description) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTaxForm( - id: id, -); -updateTaxFormData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateTaxForm( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteTaxForm -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteTaxForm( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteTaxForm( - id: id, -); -deleteTaxFormData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteTaxForm( - id: id, -).ref(); -ref.execute(); -``` - - -### createTeamHudDepartment -#### Required Arguments -```dart -String name = ...; -String teamHubId = ...; -ExampleConnector.instance.createTeamHudDepartment( - name: name, - teamHubId: teamHubId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createTeamHudDepartment, we created `createTeamHudDepartmentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateTeamHudDepartmentVariablesBuilder { - ... - CreateTeamHudDepartmentVariablesBuilder costCenter(String? t) { - _costCenter.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createTeamHudDepartment( - name: name, - teamHubId: teamHubId, -) -.costCenter(costCenter) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createTeamHudDepartment( - name: name, - teamHubId: teamHubId, -); -createTeamHudDepartmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String name = ...; -String teamHubId = ...; - -final ref = ExampleConnector.instance.createTeamHudDepartment( - name: name, - teamHubId: teamHubId, -).ref(); -ref.execute(); -``` - - -### updateTeamHudDepartment -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTeamHudDepartment( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateTeamHudDepartment, we created `updateTeamHudDepartmentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateTeamHudDepartmentVariablesBuilder { - ... - UpdateTeamHudDepartmentVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - UpdateTeamHudDepartmentVariablesBuilder costCenter(String? t) { - _costCenter.value = t; - return this; - } - UpdateTeamHudDepartmentVariablesBuilder teamHubId(String? t) { - _teamHubId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateTeamHudDepartment( - id: id, -) -.name(name) -.costCenter(costCenter) -.teamHubId(teamHubId) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTeamHudDepartment( - id: id, -); -updateTeamHudDepartmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateTeamHudDepartment( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteTeamHudDepartment -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteTeamHudDepartment( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteTeamHudDepartment( - id: id, -); -deleteTeamHudDepartmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteTeamHudDepartment( - id: id, -).ref(); -ref.execute(); -``` - - -### createBusiness -#### Required Arguments -```dart -String businessName = ...; -String userId = ...; -BusinessRateGroup rateGroup = ...; -BusinessStatus status = ...; -ExampleConnector.instance.createBusiness( - businessName: businessName, - userId: userId, - rateGroup: rateGroup, - status: status, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createBusiness, we created `createBusinessBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateBusinessVariablesBuilder { - ... - CreateBusinessVariablesBuilder contactName(String? t) { - _contactName.value = t; - return this; - } - CreateBusinessVariablesBuilder companyLogoUrl(String? t) { - _companyLogoUrl.value = t; - return this; - } - CreateBusinessVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - CreateBusinessVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - CreateBusinessVariablesBuilder hubBuilding(String? t) { - _hubBuilding.value = t; - return this; - } - CreateBusinessVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - CreateBusinessVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - CreateBusinessVariablesBuilder area(BusinessArea? t) { - _area.value = t; - return this; - } - CreateBusinessVariablesBuilder sector(BusinessSector? t) { - _sector.value = t; - return this; - } - CreateBusinessVariablesBuilder notes(String? t) { - _notes.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createBusiness( - businessName: businessName, - userId: userId, - rateGroup: rateGroup, - status: status, -) -.contactName(contactName) -.companyLogoUrl(companyLogoUrl) -.phone(phone) -.email(email) -.hubBuilding(hubBuilding) -.address(address) -.city(city) -.area(area) -.sector(sector) -.notes(notes) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createBusiness( - businessName: businessName, - userId: userId, - rateGroup: rateGroup, - status: status, -); -createBusinessData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String businessName = ...; -String userId = ...; -BusinessRateGroup rateGroup = ...; -BusinessStatus status = ...; - -final ref = ExampleConnector.instance.createBusiness( - businessName: businessName, - userId: userId, - rateGroup: rateGroup, - status: status, -).ref(); -ref.execute(); -``` - - -### updateBusiness -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateBusiness( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateBusiness, we created `updateBusinessBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateBusinessVariablesBuilder { - ... - UpdateBusinessVariablesBuilder businessName(String? t) { - _businessName.value = t; - return this; - } - UpdateBusinessVariablesBuilder contactName(String? t) { - _contactName.value = t; - return this; - } - UpdateBusinessVariablesBuilder companyLogoUrl(String? t) { - _companyLogoUrl.value = t; - return this; - } - UpdateBusinessVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - UpdateBusinessVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - UpdateBusinessVariablesBuilder hubBuilding(String? t) { - _hubBuilding.value = t; - return this; - } - UpdateBusinessVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - UpdateBusinessVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - UpdateBusinessVariablesBuilder area(BusinessArea? t) { - _area.value = t; - return this; - } - UpdateBusinessVariablesBuilder sector(BusinessSector? t) { - _sector.value = t; - return this; - } - UpdateBusinessVariablesBuilder rateGroup(BusinessRateGroup? t) { - _rateGroup.value = t; - return this; - } - UpdateBusinessVariablesBuilder status(BusinessStatus? t) { - _status.value = t; - return this; - } - UpdateBusinessVariablesBuilder notes(String? t) { - _notes.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateBusiness( - id: id, -) -.businessName(businessName) -.contactName(contactName) -.companyLogoUrl(companyLogoUrl) -.phone(phone) -.email(email) -.hubBuilding(hubBuilding) -.address(address) -.city(city) -.area(area) -.sector(sector) -.rateGroup(rateGroup) -.status(status) -.notes(notes) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateBusiness( - id: id, -); -updateBusinessData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateBusiness( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteBusiness -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteBusiness( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteBusiness( - id: id, -); -deleteBusinessData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteBusiness( - id: id, -).ref(); -ref.execute(); -``` - - -### createRole -#### Required Arguments -```dart -String name = ...; -double costPerHour = ...; -String vendorId = ...; -String roleCategoryId = ...; -ExampleConnector.instance.createRole( - name: name, - costPerHour: costPerHour, - vendorId: vendorId, - roleCategoryId: roleCategoryId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createRole( - name: name, - costPerHour: costPerHour, - vendorId: vendorId, - roleCategoryId: roleCategoryId, -); -createRoleData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String name = ...; -double costPerHour = ...; -String vendorId = ...; -String roleCategoryId = ...; - -final ref = ExampleConnector.instance.createRole( - name: name, - costPerHour: costPerHour, - vendorId: vendorId, - roleCategoryId: roleCategoryId, -).ref(); -ref.execute(); -``` - - -### updateRole -#### Required Arguments -```dart -String id = ...; -String roleCategoryId = ...; -ExampleConnector.instance.updateRole( - id: id, - roleCategoryId: roleCategoryId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateRole, we created `updateRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateRoleVariablesBuilder { - ... - UpdateRoleVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - UpdateRoleVariablesBuilder costPerHour(double? t) { - _costPerHour.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateRole( - id: id, - roleCategoryId: roleCategoryId, -) -.name(name) -.costPerHour(costPerHour) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateRole( - id: id, - roleCategoryId: roleCategoryId, -); -updateRoleData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; -String roleCategoryId = ...; - -final ref = ExampleConnector.instance.updateRole( - id: id, - roleCategoryId: roleCategoryId, -).ref(); -ref.execute(); -``` - - -### deleteRole -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteRole( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteRole( - id: id, -); -deleteRoleData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteRole( - id: id, -).ref(); -ref.execute(); -``` - - -### createEmergencyContact -#### Required Arguments -```dart -String name = ...; -String phone = ...; -RelationshipType relationship = ...; -String staffId = ...; -ExampleConnector.instance.createEmergencyContact( - name: name, - phone: phone, - relationship: relationship, - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createEmergencyContact( - name: name, - phone: phone, - relationship: relationship, - staffId: staffId, -); -createEmergencyContactData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String name = ...; -String phone = ...; -RelationshipType relationship = ...; -String staffId = ...; - -final ref = ExampleConnector.instance.createEmergencyContact( - name: name, - phone: phone, - relationship: relationship, - staffId: staffId, -).ref(); -ref.execute(); -``` - - -### updateEmergencyContact -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateEmergencyContact( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateEmergencyContact, we created `updateEmergencyContactBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateEmergencyContactVariablesBuilder { - ... - UpdateEmergencyContactVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - UpdateEmergencyContactVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - UpdateEmergencyContactVariablesBuilder relationship(RelationshipType? t) { - _relationship.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateEmergencyContact( - id: id, -) -.name(name) -.phone(phone) -.relationship(relationship) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateEmergencyContact( - id: id, -); -updateEmergencyContactData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateEmergencyContact( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteEmergencyContact -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteEmergencyContact( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteEmergencyContact( - id: id, -); -deleteEmergencyContactData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteEmergencyContact( - id: id, -).ref(); -ref.execute(); -``` - - ### createOrder #### Required Arguments ```dart @@ -17497,78 +18596,274 @@ ref.execute(); ``` -### createShiftRole +### createRoleCategory #### Required Arguments ```dart -String shiftId = ...; -String roleId = ...; -int count = ...; -ExampleConnector.instance.createShiftRole( - shiftId: shiftId, - roleId: roleId, - count: count, +String roleName = ...; +RoleCategoryType category = ...; +ExampleConnector.instance.createRoleCategory( + roleName: roleName, + category: category, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createRoleCategory( + roleName: roleName, + category: category, +); +createRoleCategoryData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String roleName = ...; +RoleCategoryType category = ...; + +final ref = ExampleConnector.instance.createRoleCategory( + roleName: roleName, + category: category, +).ref(); +ref.execute(); +``` + + +### updateRoleCategory +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateRoleCategory( + id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createShiftRole, we created `createShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateRoleCategory, we created `updateRoleCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateShiftRoleVariablesBuilder { +class UpdateRoleCategoryVariablesBuilder { ... - CreateShiftRoleVariablesBuilder assigned(int? t) { - _assigned.value = t; + UpdateRoleCategoryVariablesBuilder roleName(String? t) { + _roleName.value = t; return this; } - CreateShiftRoleVariablesBuilder startTime(Timestamp? t) { + UpdateRoleCategoryVariablesBuilder category(RoleCategoryType? t) { + _category.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateRoleCategory( + id: id, +) +.roleName(roleName) +.category(category) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateRoleCategory( + id: id, +); +updateRoleCategoryData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateRoleCategory( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteRoleCategory +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteRoleCategory( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteRoleCategory( + id: id, +); +deleteRoleCategoryData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteRoleCategory( + id: id, +).ref(); +ref.execute(); +``` + + +### createShift +#### Required Arguments +```dart +String title = ...; +String orderId = ...; +ExampleConnector.instance.createShift( + title: title, + orderId: orderId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createShift, we created `createShiftBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateShiftVariablesBuilder { + ... + CreateShiftVariablesBuilder date(Timestamp? t) { + _date.value = t; + return this; + } + CreateShiftVariablesBuilder startTime(Timestamp? t) { _startTime.value = t; return this; } - CreateShiftRoleVariablesBuilder endTime(Timestamp? t) { + CreateShiftVariablesBuilder endTime(Timestamp? t) { _endTime.value = t; return this; } - CreateShiftRoleVariablesBuilder hours(double? t) { + CreateShiftVariablesBuilder hours(double? t) { _hours.value = t; return this; } - CreateShiftRoleVariablesBuilder department(String? t) { - _department.value = t; + CreateShiftVariablesBuilder cost(double? t) { + _cost.value = t; return this; } - CreateShiftRoleVariablesBuilder uniform(String? t) { - _uniform.value = t; + CreateShiftVariablesBuilder location(String? t) { + _location.value = t; return this; } - CreateShiftRoleVariablesBuilder breakType(BreakDuration? t) { - _breakType.value = t; + CreateShiftVariablesBuilder locationAddress(String? t) { + _locationAddress.value = t; return this; } - CreateShiftRoleVariablesBuilder totalValue(double? t) { - _totalValue.value = t; + CreateShiftVariablesBuilder latitude(double? t) { + _latitude.value = t; + return this; + } + CreateShiftVariablesBuilder longitude(double? t) { + _longitude.value = t; + return this; + } + CreateShiftVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateShiftVariablesBuilder status(ShiftStatus? t) { + _status.value = t; + return this; + } + CreateShiftVariablesBuilder workersNeeded(int? t) { + _workersNeeded.value = t; + return this; + } + CreateShiftVariablesBuilder filled(int? t) { + _filled.value = t; + return this; + } + CreateShiftVariablesBuilder filledAt(Timestamp? t) { + _filledAt.value = t; + return this; + } + CreateShiftVariablesBuilder managers(List? t) { + _managers.value = t; + return this; + } + CreateShiftVariablesBuilder durationDays(int? t) { + _durationDays.value = t; + return this; + } + CreateShiftVariablesBuilder createdBy(String? t) { + _createdBy.value = t; return this; } ... } -ExampleConnector.instance.createShiftRole( - shiftId: shiftId, - roleId: roleId, - count: count, +ExampleConnector.instance.createShift( + title: title, + orderId: orderId, ) -.assigned(assigned) +.date(date) .startTime(startTime) .endTime(endTime) .hours(hours) -.department(department) -.uniform(uniform) -.breakType(breakType) -.totalValue(totalValue) +.cost(cost) +.location(location) +.locationAddress(locationAddress) +.latitude(latitude) +.longitude(longitude) +.description(description) +.status(status) +.workersNeeded(workersNeeded) +.filled(filled) +.filledAt(filledAt) +.managers(managers) +.durationDays(durationDays) +.createdBy(createdBy) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -17578,12 +18873,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createShiftRole( - shiftId: shiftId, - roleId: roleId, - count: count, +final result = await ExampleConnector.instance.createShift( + title: title, + orderId: orderId, ); -createShiftRoleData data = result.data; +createShiftData data = result.data; final ref = result.ref; ``` @@ -17591,93 +18885,2530 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String shiftId = ...; -String roleId = ...; -int count = ...; +String title = ...; +String orderId = ...; -final ref = ExampleConnector.instance.createShiftRole( - shiftId: shiftId, - roleId: roleId, - count: count, +final ref = ExampleConnector.instance.createShift( + title: title, + orderId: orderId, ).ref(); ref.execute(); ``` -### updateShiftRole +### updateShift #### Required Arguments ```dart -String shiftId = ...; -String roleId = ...; -ExampleConnector.instance.updateShiftRole( - shiftId: shiftId, - roleId: roleId, +String id = ...; +ExampleConnector.instance.updateShift( + id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateShiftRole, we created `updateShiftRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateShift, we created `updateShiftBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateShiftRoleVariablesBuilder { +class UpdateShiftVariablesBuilder { ... - UpdateShiftRoleVariablesBuilder count(int? t) { - _count.value = t; + UpdateShiftVariablesBuilder title(String? t) { + _title.value = t; return this; } - UpdateShiftRoleVariablesBuilder assigned(int? t) { - _assigned.value = t; + UpdateShiftVariablesBuilder orderId(String? t) { + _orderId.value = t; return this; } - UpdateShiftRoleVariablesBuilder startTime(Timestamp? t) { + UpdateShiftVariablesBuilder date(Timestamp? t) { + _date.value = t; + return this; + } + UpdateShiftVariablesBuilder startTime(Timestamp? t) { _startTime.value = t; return this; } - UpdateShiftRoleVariablesBuilder endTime(Timestamp? t) { + UpdateShiftVariablesBuilder endTime(Timestamp? t) { _endTime.value = t; return this; } - UpdateShiftRoleVariablesBuilder hours(double? t) { + UpdateShiftVariablesBuilder hours(double? t) { _hours.value = t; return this; } - UpdateShiftRoleVariablesBuilder department(String? t) { - _department.value = t; + UpdateShiftVariablesBuilder cost(double? t) { + _cost.value = t; return this; } - UpdateShiftRoleVariablesBuilder uniform(String? t) { - _uniform.value = t; + UpdateShiftVariablesBuilder location(String? t) { + _location.value = t; return this; } - UpdateShiftRoleVariablesBuilder breakType(BreakDuration? t) { - _breakType.value = t; + UpdateShiftVariablesBuilder locationAddress(String? t) { + _locationAddress.value = t; return this; } - UpdateShiftRoleVariablesBuilder totalValue(double? t) { - _totalValue.value = t; + UpdateShiftVariablesBuilder latitude(double? t) { + _latitude.value = t; + return this; + } + UpdateShiftVariablesBuilder longitude(double? t) { + _longitude.value = t; + return this; + } + UpdateShiftVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateShiftVariablesBuilder status(ShiftStatus? t) { + _status.value = t; + return this; + } + UpdateShiftVariablesBuilder workersNeeded(int? t) { + _workersNeeded.value = t; + return this; + } + UpdateShiftVariablesBuilder filled(int? t) { + _filled.value = t; + return this; + } + UpdateShiftVariablesBuilder filledAt(Timestamp? t) { + _filledAt.value = t; + return this; + } + UpdateShiftVariablesBuilder managers(List? t) { + _managers.value = t; + return this; + } + UpdateShiftVariablesBuilder durationDays(int? t) { + _durationDays.value = t; return this; } ... } -ExampleConnector.instance.updateShiftRole( - shiftId: shiftId, - roleId: roleId, +ExampleConnector.instance.updateShift( + id: id, ) -.count(count) -.assigned(assigned) +.title(title) +.orderId(orderId) +.date(date) .startTime(startTime) .endTime(endTime) .hours(hours) +.cost(cost) +.location(location) +.locationAddress(locationAddress) +.latitude(latitude) +.longitude(longitude) +.description(description) +.status(status) +.workersNeeded(workersNeeded) +.filled(filled) +.filledAt(filledAt) +.managers(managers) +.durationDays(durationDays) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateShift( + id: id, +); +updateShiftData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateShift( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteShift +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteShift( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteShift( + id: id, +); +deleteShiftData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteShift( + id: id, +).ref(); +ref.execute(); +``` + + +### createTeam +#### Required Arguments +```dart +String teamName = ...; +String ownerId = ...; +String ownerName = ...; +String ownerRole = ...; +ExampleConnector.instance.createTeam( + teamName: teamName, + ownerId: ownerId, + ownerName: ownerName, + ownerRole: ownerRole, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTeam, we created `createTeamBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTeamVariablesBuilder { + ... + CreateTeamVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + CreateTeamVariablesBuilder companyLogo(String? t) { + _companyLogo.value = t; + return this; + } + CreateTeamVariablesBuilder totalMembers(int? t) { + _totalMembers.value = t; + return this; + } + CreateTeamVariablesBuilder activeMembers(int? t) { + _activeMembers.value = t; + return this; + } + CreateTeamVariablesBuilder totalHubs(int? t) { + _totalHubs.value = t; + return this; + } + CreateTeamVariablesBuilder departments(AnyValue? t) { + _departments.value = t; + return this; + } + CreateTeamVariablesBuilder favoriteStaffCount(int? t) { + _favoriteStaffCount.value = t; + return this; + } + CreateTeamVariablesBuilder blockedStaffCount(int? t) { + _blockedStaffCount.value = t; + return this; + } + CreateTeamVariablesBuilder favoriteStaff(AnyValue? t) { + _favoriteStaff.value = t; + return this; + } + CreateTeamVariablesBuilder blockedStaff(AnyValue? t) { + _blockedStaff.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTeam( + teamName: teamName, + ownerId: ownerId, + ownerName: ownerName, + ownerRole: ownerRole, +) +.email(email) +.companyLogo(companyLogo) +.totalMembers(totalMembers) +.activeMembers(activeMembers) +.totalHubs(totalHubs) +.departments(departments) +.favoriteStaffCount(favoriteStaffCount) +.blockedStaffCount(blockedStaffCount) +.favoriteStaff(favoriteStaff) +.blockedStaff(blockedStaff) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createTeam( + teamName: teamName, + ownerId: ownerId, + ownerName: ownerName, + ownerRole: ownerRole, +); +createTeamData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamName = ...; +String ownerId = ...; +String ownerName = ...; +String ownerRole = ...; + +final ref = ExampleConnector.instance.createTeam( + teamName: teamName, + ownerId: ownerId, + ownerName: ownerName, + ownerRole: ownerRole, +).ref(); +ref.execute(); +``` + + +### updateTeam +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateTeam( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateTeam, we created `updateTeamBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateTeamVariablesBuilder { + ... + UpdateTeamVariablesBuilder teamName(String? t) { + _teamName.value = t; + return this; + } + UpdateTeamVariablesBuilder ownerName(String? t) { + _ownerName.value = t; + return this; + } + UpdateTeamVariablesBuilder ownerRole(String? t) { + _ownerRole.value = t; + return this; + } + UpdateTeamVariablesBuilder companyLogo(String? t) { + _companyLogo.value = t; + return this; + } + UpdateTeamVariablesBuilder totalMembers(int? t) { + _totalMembers.value = t; + return this; + } + UpdateTeamVariablesBuilder activeMembers(int? t) { + _activeMembers.value = t; + return this; + } + UpdateTeamVariablesBuilder totalHubs(int? t) { + _totalHubs.value = t; + return this; + } + UpdateTeamVariablesBuilder departments(AnyValue? t) { + _departments.value = t; + return this; + } + UpdateTeamVariablesBuilder favoriteStaffCount(int? t) { + _favoriteStaffCount.value = t; + return this; + } + UpdateTeamVariablesBuilder blockedStaffCount(int? t) { + _blockedStaffCount.value = t; + return this; + } + UpdateTeamVariablesBuilder favoriteStaff(AnyValue? t) { + _favoriteStaff.value = t; + return this; + } + UpdateTeamVariablesBuilder blockedStaff(AnyValue? t) { + _blockedStaff.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateTeam( + id: id, +) +.teamName(teamName) +.ownerName(ownerName) +.ownerRole(ownerRole) +.companyLogo(companyLogo) +.totalMembers(totalMembers) +.activeMembers(activeMembers) +.totalHubs(totalHubs) +.departments(departments) +.favoriteStaffCount(favoriteStaffCount) +.blockedStaffCount(blockedStaffCount) +.favoriteStaff(favoriteStaff) +.blockedStaff(blockedStaff) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateTeam( + id: id, +); +updateTeamData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateTeam( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteTeam +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTeam( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteTeam( + id: id, +); +deleteTeamData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteTeam( + id: id, +).ref(); +ref.execute(); +``` + + +### createRole +#### Required Arguments +```dart +String name = ...; +double costPerHour = ...; +String vendorId = ...; +String roleCategoryId = ...; +ExampleConnector.instance.createRole( + name: name, + costPerHour: costPerHour, + vendorId: vendorId, + roleCategoryId: roleCategoryId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createRole( + name: name, + costPerHour: costPerHour, + vendorId: vendorId, + roleCategoryId: roleCategoryId, +); +createRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String name = ...; +double costPerHour = ...; +String vendorId = ...; +String roleCategoryId = ...; + +final ref = ExampleConnector.instance.createRole( + name: name, + costPerHour: costPerHour, + vendorId: vendorId, + roleCategoryId: roleCategoryId, +).ref(); +ref.execute(); +``` + + +### updateRole +#### Required Arguments +```dart +String id = ...; +String roleCategoryId = ...; +ExampleConnector.instance.updateRole( + id: id, + roleCategoryId: roleCategoryId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateRole, we created `updateRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateRoleVariablesBuilder { + ... + UpdateRoleVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + UpdateRoleVariablesBuilder costPerHour(double? t) { + _costPerHour.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateRole( + id: id, + roleCategoryId: roleCategoryId, +) +.name(name) +.costPerHour(costPerHour) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateRole( + id: id, + roleCategoryId: roleCategoryId, +); +updateRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; +String roleCategoryId = ...; + +final ref = ExampleConnector.instance.updateRole( + id: id, + roleCategoryId: roleCategoryId, +).ref(); +ref.execute(); +``` + + +### deleteRole +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteRole( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteRole( + id: id, +); +deleteRoleData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteRole( + id: id, +).ref(); +ref.execute(); +``` + + +### createTeamHub +#### Required Arguments +```dart +String teamId = ...; +String hubName = ...; +String address = ...; +ExampleConnector.instance.createTeamHub( + teamId: teamId, + hubName: hubName, + address: address, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTeamHub, we created `createTeamHubBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTeamHubVariablesBuilder { + ... + CreateTeamHubVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + CreateTeamHubVariablesBuilder state(String? t) { + _state.value = t; + return this; + } + CreateTeamHubVariablesBuilder zipCode(String? t) { + _zipCode.value = t; + return this; + } + CreateTeamHubVariablesBuilder managerName(String? t) { + _managerName.value = t; + return this; + } + CreateTeamHubVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + CreateTeamHubVariablesBuilder departments(AnyValue? t) { + _departments.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTeamHub( + teamId: teamId, + hubName: hubName, + address: address, +) +.city(city) +.state(state) +.zipCode(zipCode) +.managerName(managerName) +.isActive(isActive) +.departments(departments) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createTeamHub( + teamId: teamId, + hubName: hubName, + address: address, +); +createTeamHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String teamId = ...; +String hubName = ...; +String address = ...; + +final ref = ExampleConnector.instance.createTeamHub( + teamId: teamId, + hubName: hubName, + address: address, +).ref(); +ref.execute(); +``` + + +### updateTeamHub +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateTeamHub( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateTeamHub, we created `updateTeamHubBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateTeamHubVariablesBuilder { + ... + UpdateTeamHubVariablesBuilder hubName(String? t) { + _hubName.value = t; + return this; + } + UpdateTeamHubVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + UpdateTeamHubVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + UpdateTeamHubVariablesBuilder state(String? t) { + _state.value = t; + return this; + } + UpdateTeamHubVariablesBuilder zipCode(String? t) { + _zipCode.value = t; + return this; + } + UpdateTeamHubVariablesBuilder managerName(String? t) { + _managerName.value = t; + return this; + } + UpdateTeamHubVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + UpdateTeamHubVariablesBuilder departments(AnyValue? t) { + _departments.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateTeamHub( + id: id, +) +.hubName(hubName) +.address(address) +.city(city) +.state(state) +.zipCode(zipCode) +.managerName(managerName) +.isActive(isActive) +.departments(departments) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateTeamHub( + id: id, +); +updateTeamHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateTeamHub( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteTeamHub +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTeamHub( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteTeamHub( + id: id, +); +deleteTeamHubData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteTeamHub( + id: id, +).ref(); +ref.execute(); +``` + + +### CreateAssignment +#### Required Arguments +```dart +String workforceId = ...; +String roleId = ...; +String shiftId = ...; +ExampleConnector.instance.createAssignment( + workforceId: workforceId, + roleId: roleId, + shiftId: shiftId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For CreateAssignment, we created `CreateAssignmentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateAssignmentVariablesBuilder { + ... + CreateAssignmentVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + CreateAssignmentVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateAssignmentVariablesBuilder instructions(String? t) { + _instructions.value = t; + return this; + } + CreateAssignmentVariablesBuilder status(AssignmentStatus? t) { + _status.value = t; + return this; + } + CreateAssignmentVariablesBuilder tipsAvailable(bool? t) { + _tipsAvailable.value = t; + return this; + } + CreateAssignmentVariablesBuilder travelTime(bool? t) { + _travelTime.value = t; + return this; + } + CreateAssignmentVariablesBuilder mealProvided(bool? t) { + _mealProvided.value = t; + return this; + } + CreateAssignmentVariablesBuilder parkingAvailable(bool? t) { + _parkingAvailable.value = t; + return this; + } + CreateAssignmentVariablesBuilder gasCompensation(bool? t) { + _gasCompensation.value = t; + return this; + } + CreateAssignmentVariablesBuilder managers(List? t) { + _managers.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createAssignment( + workforceId: workforceId, + roleId: roleId, + shiftId: shiftId, +) +.title(title) +.description(description) +.instructions(instructions) +.status(status) +.tipsAvailable(tipsAvailable) +.travelTime(travelTime) +.mealProvided(mealProvided) +.parkingAvailable(parkingAvailable) +.gasCompensation(gasCompensation) +.managers(managers) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createAssignment( + workforceId: workforceId, + roleId: roleId, + shiftId: shiftId, +); +CreateAssignmentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String workforceId = ...; +String roleId = ...; +String shiftId = ...; + +final ref = ExampleConnector.instance.createAssignment( + workforceId: workforceId, + roleId: roleId, + shiftId: shiftId, +).ref(); +ref.execute(); +``` + + +### UpdateAssignment +#### Required Arguments +```dart +String id = ...; +String roleId = ...; +String shiftId = ...; +ExampleConnector.instance.updateAssignment( + id: id, + roleId: roleId, + shiftId: shiftId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For UpdateAssignment, we created `UpdateAssignmentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateAssignmentVariablesBuilder { + ... + UpdateAssignmentVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + UpdateAssignmentVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateAssignmentVariablesBuilder instructions(String? t) { + _instructions.value = t; + return this; + } + UpdateAssignmentVariablesBuilder status(AssignmentStatus? t) { + _status.value = t; + return this; + } + UpdateAssignmentVariablesBuilder tipsAvailable(bool? t) { + _tipsAvailable.value = t; + return this; + } + UpdateAssignmentVariablesBuilder travelTime(bool? t) { + _travelTime.value = t; + return this; + } + UpdateAssignmentVariablesBuilder mealProvided(bool? t) { + _mealProvided.value = t; + return this; + } + UpdateAssignmentVariablesBuilder parkingAvailable(bool? t) { + _parkingAvailable.value = t; + return this; + } + UpdateAssignmentVariablesBuilder gasCompensation(bool? t) { + _gasCompensation.value = t; + return this; + } + UpdateAssignmentVariablesBuilder managers(List? t) { + _managers.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateAssignment( + id: id, + roleId: roleId, + shiftId: shiftId, +) +.title(title) +.description(description) +.instructions(instructions) +.status(status) +.tipsAvailable(tipsAvailable) +.travelTime(travelTime) +.mealProvided(mealProvided) +.parkingAvailable(parkingAvailable) +.gasCompensation(gasCompensation) +.managers(managers) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateAssignment( + id: id, + roleId: roleId, + shiftId: shiftId, +); +UpdateAssignmentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; +String roleId = ...; +String shiftId = ...; + +final ref = ExampleConnector.instance.updateAssignment( + id: id, + roleId: roleId, + shiftId: shiftId, +).ref(); +ref.execute(); +``` + + +### DeleteAssignment +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteAssignment( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteAssignment( + id: id, +); +DeleteAssignmentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteAssignment( + id: id, +).ref(); +ref.execute(); +``` + + +### createStaffCourse +#### Required Arguments +```dart +String staffId = ...; +String courseId = ...; +ExampleConnector.instance.createStaffCourse( + staffId: staffId, + courseId: courseId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createStaffCourse, we created `createStaffCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffCourseVariablesBuilder { + ... + CreateStaffCourseVariablesBuilder progressPercent(int? t) { + _progressPercent.value = t; + return this; + } + CreateStaffCourseVariablesBuilder completed(bool? t) { + _completed.value = t; + return this; + } + CreateStaffCourseVariablesBuilder completedAt(Timestamp? t) { + _completedAt.value = t; + return this; + } + CreateStaffCourseVariablesBuilder startedAt(Timestamp? t) { + _startedAt.value = t; + return this; + } + CreateStaffCourseVariablesBuilder lastAccessedAt(Timestamp? t) { + _lastAccessedAt.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaffCourse( + staffId: staffId, + courseId: courseId, +) +.progressPercent(progressPercent) +.completed(completed) +.completedAt(completedAt) +.startedAt(startedAt) +.lastAccessedAt(lastAccessedAt) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaffCourse( + staffId: staffId, + courseId: courseId, +); +createStaffCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String courseId = ...; + +final ref = ExampleConnector.instance.createStaffCourse( + staffId: staffId, + courseId: courseId, +).ref(); +ref.execute(); +``` + + +### updateStaffCourse +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateStaffCourse( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateStaffCourse, we created `updateStaffCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateStaffCourseVariablesBuilder { + ... + UpdateStaffCourseVariablesBuilder progressPercent(int? t) { + _progressPercent.value = t; + return this; + } + UpdateStaffCourseVariablesBuilder completed(bool? t) { + _completed.value = t; + return this; + } + UpdateStaffCourseVariablesBuilder completedAt(Timestamp? t) { + _completedAt.value = t; + return this; + } + UpdateStaffCourseVariablesBuilder startedAt(Timestamp? t) { + _startedAt.value = t; + return this; + } + UpdateStaffCourseVariablesBuilder lastAccessedAt(Timestamp? t) { + _lastAccessedAt.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateStaffCourse( + id: id, +) +.progressPercent(progressPercent) +.completed(completed) +.completedAt(completedAt) +.startedAt(startedAt) +.lastAccessedAt(lastAccessedAt) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateStaffCourse( + id: id, +); +updateStaffCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateStaffCourse( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteStaffCourse +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteStaffCourse( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaffCourse( + id: id, +); +deleteStaffCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteStaffCourse( + id: id, +).ref(); +ref.execute(); +``` + + +### createTask +#### Required Arguments +```dart +String taskName = ...; +TaskPriority priority = ...; +TaskStatus status = ...; +String ownerId = ...; +ExampleConnector.instance.createTask( + taskName: taskName, + priority: priority, + status: status, + ownerId: ownerId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTask, we created `createTaskBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTaskVariablesBuilder { + ... + CreateTaskVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateTaskVariablesBuilder dueDate(Timestamp? t) { + _dueDate.value = t; + return this; + } + CreateTaskVariablesBuilder progress(int? t) { + _progress.value = t; + return this; + } + CreateTaskVariablesBuilder orderIndex(int? t) { + _orderIndex.value = t; + return this; + } + CreateTaskVariablesBuilder commentCount(int? t) { + _commentCount.value = t; + return this; + } + CreateTaskVariablesBuilder attachmentCount(int? t) { + _attachmentCount.value = t; + return this; + } + CreateTaskVariablesBuilder files(AnyValue? t) { + _files.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTask( + taskName: taskName, + priority: priority, + status: status, + ownerId: ownerId, +) +.description(description) +.dueDate(dueDate) +.progress(progress) +.orderIndex(orderIndex) +.commentCount(commentCount) +.attachmentCount(attachmentCount) +.files(files) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createTask( + taskName: taskName, + priority: priority, + status: status, + ownerId: ownerId, +); +createTaskData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String taskName = ...; +TaskPriority priority = ...; +TaskStatus status = ...; +String ownerId = ...; + +final ref = ExampleConnector.instance.createTask( + taskName: taskName, + priority: priority, + status: status, + ownerId: ownerId, +).ref(); +ref.execute(); +``` + + +### updateTask +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateTask( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateTask, we created `updateTaskBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateTaskVariablesBuilder { + ... + UpdateTaskVariablesBuilder taskName(String? t) { + _taskName.value = t; + return this; + } + UpdateTaskVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateTaskVariablesBuilder priority(TaskPriority? t) { + _priority.value = t; + return this; + } + UpdateTaskVariablesBuilder status(TaskStatus? t) { + _status.value = t; + return this; + } + UpdateTaskVariablesBuilder dueDate(Timestamp? t) { + _dueDate.value = t; + return this; + } + UpdateTaskVariablesBuilder progress(int? t) { + _progress.value = t; + return this; + } + UpdateTaskVariablesBuilder assignedMembers(AnyValue? t) { + _assignedMembers.value = t; + return this; + } + UpdateTaskVariablesBuilder orderIndex(int? t) { + _orderIndex.value = t; + return this; + } + UpdateTaskVariablesBuilder commentCount(int? t) { + _commentCount.value = t; + return this; + } + UpdateTaskVariablesBuilder attachmentCount(int? t) { + _attachmentCount.value = t; + return this; + } + UpdateTaskVariablesBuilder files(AnyValue? t) { + _files.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateTask( + id: id, +) +.taskName(taskName) +.description(description) +.priority(priority) +.status(status) +.dueDate(dueDate) +.progress(progress) +.assignedMembers(assignedMembers) +.orderIndex(orderIndex) +.commentCount(commentCount) +.attachmentCount(attachmentCount) +.files(files) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateTask( + id: id, +); +updateTaskData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateTask( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteTask +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTask( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteTask( + id: id, +); +deleteTaskData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteTask( + id: id, +).ref(); +ref.execute(); +``` + + +### createVendorBenefitPlan +#### Required Arguments +```dart +String vendorId = ...; +String title = ...; +ExampleConnector.instance.createVendorBenefitPlan( + vendorId: vendorId, + title: title, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createVendorBenefitPlan, we created `createVendorBenefitPlanBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateVendorBenefitPlanVariablesBuilder { + ... + CreateVendorBenefitPlanVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateVendorBenefitPlanVariablesBuilder requestLabel(String? t) { + _requestLabel.value = t; + return this; + } + CreateVendorBenefitPlanVariablesBuilder total(int? t) { + _total.value = t; + return this; + } + CreateVendorBenefitPlanVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + CreateVendorBenefitPlanVariablesBuilder createdBy(String? t) { + _createdBy.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createVendorBenefitPlan( + vendorId: vendorId, + title: title, +) +.description(description) +.requestLabel(requestLabel) +.total(total) +.isActive(isActive) +.createdBy(createdBy) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createVendorBenefitPlan( + vendorId: vendorId, + title: title, +); +createVendorBenefitPlanData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; +String title = ...; + +final ref = ExampleConnector.instance.createVendorBenefitPlan( + vendorId: vendorId, + title: title, +).ref(); +ref.execute(); +``` + + +### updateVendorBenefitPlan +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateVendorBenefitPlan( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateVendorBenefitPlan, we created `updateVendorBenefitPlanBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateVendorBenefitPlanVariablesBuilder { + ... + UpdateVendorBenefitPlanVariablesBuilder vendorId(String? t) { + _vendorId.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder requestLabel(String? t) { + _requestLabel.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder total(int? t) { + _total.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + UpdateVendorBenefitPlanVariablesBuilder createdBy(String? t) { + _createdBy.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateVendorBenefitPlan( + id: id, +) +.vendorId(vendorId) +.title(title) +.description(description) +.requestLabel(requestLabel) +.total(total) +.isActive(isActive) +.createdBy(createdBy) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateVendorBenefitPlan( + id: id, +); +updateVendorBenefitPlanData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateVendorBenefitPlan( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteVendorBenefitPlan +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteVendorBenefitPlan( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteVendorBenefitPlan( + id: id, +); +deleteVendorBenefitPlanData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteVendorBenefitPlan( + id: id, +).ref(); +ref.execute(); +``` + + +### createCourse +#### Required Arguments +```dart +String categoryId = ...; +ExampleConnector.instance.createCourse( + categoryId: categoryId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createCourse, we created `createCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateCourseVariablesBuilder { + ... + + CreateCourseVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + CreateCourseVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + CreateCourseVariablesBuilder thumbnailUrl(String? t) { + _thumbnailUrl.value = t; + return this; + } + CreateCourseVariablesBuilder durationMinutes(int? t) { + _durationMinutes.value = t; + return this; + } + CreateCourseVariablesBuilder xpReward(int? t) { + _xpReward.value = t; + return this; + } + CreateCourseVariablesBuilder levelRequired(String? t) { + _levelRequired.value = t; + return this; + } + CreateCourseVariablesBuilder isCertification(bool? t) { + _isCertification.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createCourse( + categoryId: categoryId, +) +.title(title) +.description(description) +.thumbnailUrl(thumbnailUrl) +.durationMinutes(durationMinutes) +.xpReward(xpReward) +.levelRequired(levelRequired) +.isCertification(isCertification) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createCourse( + categoryId: categoryId, +); +createCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String categoryId = ...; + +final ref = ExampleConnector.instance.createCourse( + categoryId: categoryId, +).ref(); +ref.execute(); +``` + + +### updateCourse +#### Required Arguments +```dart +String id = ...; +String categoryId = ...; +ExampleConnector.instance.updateCourse( + id: id, + categoryId: categoryId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateCourse, we created `updateCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateCourseVariablesBuilder { + ... + UpdateCourseVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + UpdateCourseVariablesBuilder description(String? t) { + _description.value = t; + return this; + } + UpdateCourseVariablesBuilder thumbnailUrl(String? t) { + _thumbnailUrl.value = t; + return this; + } + UpdateCourseVariablesBuilder durationMinutes(int? t) { + _durationMinutes.value = t; + return this; + } + UpdateCourseVariablesBuilder xpReward(int? t) { + _xpReward.value = t; + return this; + } + UpdateCourseVariablesBuilder levelRequired(String? t) { + _levelRequired.value = t; + return this; + } + UpdateCourseVariablesBuilder isCertification(bool? t) { + _isCertification.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateCourse( + id: id, + categoryId: categoryId, +) +.title(title) +.description(description) +.thumbnailUrl(thumbnailUrl) +.durationMinutes(durationMinutes) +.xpReward(xpReward) +.levelRequired(levelRequired) +.isCertification(isCertification) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateCourse( + id: id, + categoryId: categoryId, +); +updateCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; +String categoryId = ...; + +final ref = ExampleConnector.instance.updateCourse( + id: id, + categoryId: categoryId, +).ref(); +ref.execute(); +``` + + +### deleteCourse +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteCourse( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteCourse( + id: id, +); +deleteCourseData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteCourse( + id: id, +).ref(); +ref.execute(); +``` + + +### createLevel +#### Required Arguments +```dart +String name = ...; +int xpRequired = ...; +ExampleConnector.instance.createLevel( + name: name, + xpRequired: xpRequired, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createLevel, we created `createLevelBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateLevelVariablesBuilder { + ... + CreateLevelVariablesBuilder icon(String? t) { + _icon.value = t; + return this; + } + CreateLevelVariablesBuilder colors(AnyValue? t) { + _colors.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createLevel( + name: name, + xpRequired: xpRequired, +) +.icon(icon) +.colors(colors) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createLevel( + name: name, + xpRequired: xpRequired, +); +createLevelData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String name = ...; +int xpRequired = ...; + +final ref = ExampleConnector.instance.createLevel( + name: name, + xpRequired: xpRequired, +).ref(); +ref.execute(); +``` + + +### updateLevel +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateLevel( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateLevel, we created `updateLevelBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateLevelVariablesBuilder { + ... + UpdateLevelVariablesBuilder name(String? t) { + _name.value = t; + return this; + } + UpdateLevelVariablesBuilder xpRequired(int? t) { + _xpRequired.value = t; + return this; + } + UpdateLevelVariablesBuilder icon(String? t) { + _icon.value = t; + return this; + } + UpdateLevelVariablesBuilder colors(AnyValue? t) { + _colors.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateLevel( + id: id, +) +.name(name) +.xpRequired(xpRequired) +.icon(icon) +.colors(colors) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateLevel( + id: id, +); +updateLevelData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateLevel( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteLevel +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteLevel( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteLevel( + id: id, +); +deleteLevelData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteLevel( + id: id, +).ref(); +ref.execute(); +``` + + +### createStaffDocument +#### Required Arguments +```dart +String staffId = ...; +String staffName = ...; +String documentId = ...; +DocumentStatus status = ...; +ExampleConnector.instance.createStaffDocument( + staffId: staffId, + staffName: staffName, + documentId: documentId, + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createStaffDocument, we created `createStaffDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateStaffDocumentVariablesBuilder { + ... + CreateStaffDocumentVariablesBuilder documentUrl(String? t) { + _documentUrl.value = t; + return this; + } + CreateStaffDocumentVariablesBuilder expiryDate(Timestamp? t) { + _expiryDate.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createStaffDocument( + staffId: staffId, + staffName: staffName, + documentId: documentId, + status: status, +) +.documentUrl(documentUrl) +.expiryDate(expiryDate) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createStaffDocument( + staffId: staffId, + staffName: staffName, + documentId: documentId, + status: status, +); +createStaffDocumentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String staffName = ...; +String documentId = ...; +DocumentStatus status = ...; + +final ref = ExampleConnector.instance.createStaffDocument( + staffId: staffId, + staffName: staffName, + documentId: documentId, + status: status, +).ref(); +ref.execute(); +``` + + +### updateStaffDocument +#### Required Arguments +```dart +String staffId = ...; +String documentId = ...; +ExampleConnector.instance.updateStaffDocument( + staffId: staffId, + documentId: documentId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateStaffDocument, we created `updateStaffDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateStaffDocumentVariablesBuilder { + ... + UpdateStaffDocumentVariablesBuilder status(DocumentStatus? t) { + _status.value = t; + return this; + } + UpdateStaffDocumentVariablesBuilder documentUrl(String? t) { + _documentUrl.value = t; + return this; + } + UpdateStaffDocumentVariablesBuilder expiryDate(Timestamp? t) { + _expiryDate.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateStaffDocument( + staffId: staffId, + documentId: documentId, +) +.status(status) +.documentUrl(documentUrl) +.expiryDate(expiryDate) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateStaffDocument( + staffId: staffId, + documentId: documentId, +); +updateStaffDocumentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String documentId = ...; + +final ref = ExampleConnector.instance.updateStaffDocument( + staffId: staffId, + documentId: documentId, +).ref(); +ref.execute(); +``` + + +### deleteStaffDocument +#### Required Arguments +```dart +String staffId = ...; +String documentId = ...; +ExampleConnector.instance.deleteStaffDocument( + staffId: staffId, + documentId: documentId, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteStaffDocument( + staffId: staffId, + documentId: documentId, +); +deleteStaffDocumentData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String staffId = ...; +String documentId = ...; + +final ref = ExampleConnector.instance.deleteStaffDocument( + staffId: staffId, + documentId: documentId, +).ref(); +ref.execute(); +``` + + +### createTeamMember +#### Required Arguments +```dart +String teamId = ...; +TeamMemberRole role = ...; +String userId = ...; +ExampleConnector.instance.createTeamMember( + teamId: teamId, + role: role, + userId: userId, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createTeamMember, we created `createTeamMemberBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateTeamMemberVariablesBuilder { + ... + CreateTeamMemberVariablesBuilder title(String? t) { + _title.value = t; + return this; + } + CreateTeamMemberVariablesBuilder department(String? t) { + _department.value = t; + return this; + } + CreateTeamMemberVariablesBuilder teamHubId(String? t) { + _teamHubId.value = t; + return this; + } + CreateTeamMemberVariablesBuilder isActive(bool? t) { + _isActive.value = t; + return this; + } + CreateTeamMemberVariablesBuilder inviteStatus(TeamMemberInviteStatus? t) { + _inviteStatus.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createTeamMember( + teamId: teamId, + role: role, + userId: userId, +) +.title(title) .department(department) -.uniform(uniform) -.breakType(breakType) -.totalValue(totalValue) +.teamHubId(teamHubId) +.isActive(isActive) +.inviteStatus(inviteStatus) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -17687,11 +21418,12 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateShiftRole( - shiftId: shiftId, - roleId: roleId, +final result = await ExampleConnector.instance.createTeamMember( + teamId: teamId, + role: role, + userId: userId, ); -updateShiftRoleData data = result.data; +createTeamMemberData data = result.data; final ref = result.ref; ``` @@ -17699,201 +21431,75 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String shiftId = ...; -String roleId = ...; +String teamId = ...; +TeamMemberRole role = ...; +String userId = ...; -final ref = ExampleConnector.instance.updateShiftRole( - shiftId: shiftId, - roleId: roleId, +final ref = ExampleConnector.instance.createTeamMember( + teamId: teamId, + role: role, + userId: userId, ).ref(); ref.execute(); ``` -### deleteShiftRole -#### Required Arguments -```dart -String shiftId = ...; -String roleId = ...; -ExampleConnector.instance.deleteShiftRole( - shiftId: shiftId, - roleId: roleId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteShiftRole( - shiftId: shiftId, - roleId: roleId, -); -deleteShiftRoleData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String shiftId = ...; -String roleId = ...; - -final ref = ExampleConnector.instance.deleteShiftRole( - shiftId: shiftId, - roleId: roleId, -).ref(); -ref.execute(); -``` - - -### createAttireOption -#### Required Arguments -```dart -String itemId = ...; -String label = ...; -ExampleConnector.instance.createAttireOption( - itemId: itemId, - label: label, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createAttireOption, we created `createAttireOptionBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateAttireOptionVariablesBuilder { - ... - CreateAttireOptionVariablesBuilder icon(String? t) { - _icon.value = t; - return this; - } - CreateAttireOptionVariablesBuilder imageUrl(String? t) { - _imageUrl.value = t; - return this; - } - CreateAttireOptionVariablesBuilder isMandatory(bool? t) { - _isMandatory.value = t; - return this; - } - CreateAttireOptionVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createAttireOption( - itemId: itemId, - label: label, -) -.icon(icon) -.imageUrl(imageUrl) -.isMandatory(isMandatory) -.vendorId(vendorId) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createAttireOption( - itemId: itemId, - label: label, -); -createAttireOptionData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String itemId = ...; -String label = ...; - -final ref = ExampleConnector.instance.createAttireOption( - itemId: itemId, - label: label, -).ref(); -ref.execute(); -``` - - -### updateAttireOption +### updateTeamMember #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateAttireOption( +ExampleConnector.instance.updateTeamMember( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateAttireOption, we created `updateAttireOptionBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateTeamMember, we created `updateTeamMemberBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateAttireOptionVariablesBuilder { +class UpdateTeamMemberVariablesBuilder { ... - UpdateAttireOptionVariablesBuilder itemId(String? t) { - _itemId.value = t; + UpdateTeamMemberVariablesBuilder role(TeamMemberRole? t) { + _role.value = t; return this; } - UpdateAttireOptionVariablesBuilder label(String? t) { - _label.value = t; + UpdateTeamMemberVariablesBuilder title(String? t) { + _title.value = t; return this; } - UpdateAttireOptionVariablesBuilder icon(String? t) { - _icon.value = t; + UpdateTeamMemberVariablesBuilder department(String? t) { + _department.value = t; return this; } - UpdateAttireOptionVariablesBuilder imageUrl(String? t) { - _imageUrl.value = t; + UpdateTeamMemberVariablesBuilder teamHubId(String? t) { + _teamHubId.value = t; return this; } - UpdateAttireOptionVariablesBuilder isMandatory(bool? t) { - _isMandatory.value = t; + UpdateTeamMemberVariablesBuilder isActive(bool? t) { + _isActive.value = t; return this; } - UpdateAttireOptionVariablesBuilder vendorId(String? t) { - _vendorId.value = t; + UpdateTeamMemberVariablesBuilder inviteStatus(TeamMemberInviteStatus? t) { + _inviteStatus.value = t; return this; } ... } -ExampleConnector.instance.updateAttireOption( +ExampleConnector.instance.updateTeamMember( id: id, ) -.itemId(itemId) -.label(label) -.icon(icon) -.imageUrl(imageUrl) -.isMandatory(isMandatory) -.vendorId(vendorId) +.role(role) +.title(title) +.department(department) +.teamHubId(teamHubId) +.isActive(isActive) +.inviteStatus(inviteStatus) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -17903,10 +21509,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateAttireOption( +final result = await ExampleConnector.instance.updateTeamMember( id: id, ); -updateAttireOptionData data = result.data; +updateTeamMemberData data = result.data; final ref = result.ref; ``` @@ -17916,18 +21522,149 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateAttireOption( +final ref = ExampleConnector.instance.updateTeamMember( id: id, ).ref(); ref.execute(); ``` -### deleteAttireOption +### updateTeamMemberInviteStatus #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteAttireOption( +TeamMemberInviteStatus inviteStatus = ...; +ExampleConnector.instance.updateTeamMemberInviteStatus( + id: id, + inviteStatus: inviteStatus, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateTeamMemberInviteStatus( + id: id, + inviteStatus: inviteStatus, +); +updateTeamMemberInviteStatusData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; +TeamMemberInviteStatus inviteStatus = ...; + +final ref = ExampleConnector.instance.updateTeamMemberInviteStatus( + id: id, + inviteStatus: inviteStatus, +).ref(); +ref.execute(); +``` + + +### acceptInviteByCode +#### Required Arguments +```dart +String inviteCode = ...; +ExampleConnector.instance.acceptInviteByCode( + inviteCode: inviteCode, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.acceptInviteByCode( + inviteCode: inviteCode, +); +acceptInviteByCodeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String inviteCode = ...; + +final ref = ExampleConnector.instance.acceptInviteByCode( + inviteCode: inviteCode, +).ref(); +ref.execute(); +``` + + +### cancelInviteByCode +#### Required Arguments +```dart +String inviteCode = ...; +ExampleConnector.instance.cancelInviteByCode( + inviteCode: inviteCode, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.cancelInviteByCode( + inviteCode: inviteCode, +); +cancelInviteByCodeData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String inviteCode = ...; + +final ref = ExampleConnector.instance.cancelInviteByCode( + inviteCode: inviteCode, +).ref(); +ref.execute(); +``` + + +### deleteTeamMember +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteTeamMember( id: id, ).execute(); ``` @@ -17935,7 +21672,7 @@ ExampleConnector.instance.deleteAttireOption( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -17945,10 +21682,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteAttireOption( +final result = await ExampleConnector.instance.deleteTeamMember( id: id, ); -deleteAttireOptionData data = result.data; +deleteTeamMemberData data = result.data; final ref = result.ref; ``` @@ -17958,7 +21695,292 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteAttireOption( +final ref = ExampleConnector.instance.deleteTeamMember( + id: id, +).ref(); +ref.execute(); +``` + + +### createBusiness +#### Required Arguments +```dart +String businessName = ...; +String userId = ...; +BusinessRateGroup rateGroup = ...; +BusinessStatus status = ...; +ExampleConnector.instance.createBusiness( + businessName: businessName, + userId: userId, + rateGroup: rateGroup, + status: status, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createBusiness, we created `createBusinessBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateBusinessVariablesBuilder { + ... + CreateBusinessVariablesBuilder contactName(String? t) { + _contactName.value = t; + return this; + } + CreateBusinessVariablesBuilder companyLogoUrl(String? t) { + _companyLogoUrl.value = t; + return this; + } + CreateBusinessVariablesBuilder phone(String? t) { + _phone.value = t; + return this; + } + CreateBusinessVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + CreateBusinessVariablesBuilder hubBuilding(String? t) { + _hubBuilding.value = t; + return this; + } + CreateBusinessVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + CreateBusinessVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + CreateBusinessVariablesBuilder area(BusinessArea? t) { + _area.value = t; + return this; + } + CreateBusinessVariablesBuilder sector(BusinessSector? t) { + _sector.value = t; + return this; + } + CreateBusinessVariablesBuilder notes(String? t) { + _notes.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createBusiness( + businessName: businessName, + userId: userId, + rateGroup: rateGroup, + status: status, +) +.contactName(contactName) +.companyLogoUrl(companyLogoUrl) +.phone(phone) +.email(email) +.hubBuilding(hubBuilding) +.address(address) +.city(city) +.area(area) +.sector(sector) +.notes(notes) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createBusiness( + businessName: businessName, + userId: userId, + rateGroup: rateGroup, + status: status, +); +createBusinessData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String businessName = ...; +String userId = ...; +BusinessRateGroup rateGroup = ...; +BusinessStatus status = ...; + +final ref = ExampleConnector.instance.createBusiness( + businessName: businessName, + userId: userId, + rateGroup: rateGroup, + status: status, +).ref(); +ref.execute(); +``` + + +### updateBusiness +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateBusiness( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateBusiness, we created `updateBusinessBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateBusinessVariablesBuilder { + ... + UpdateBusinessVariablesBuilder businessName(String? t) { + _businessName.value = t; + return this; + } + UpdateBusinessVariablesBuilder contactName(String? t) { + _contactName.value = t; + return this; + } + UpdateBusinessVariablesBuilder companyLogoUrl(String? t) { + _companyLogoUrl.value = t; + return this; + } + UpdateBusinessVariablesBuilder phone(String? t) { + _phone.value = t; + return this; + } + UpdateBusinessVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + UpdateBusinessVariablesBuilder hubBuilding(String? t) { + _hubBuilding.value = t; + return this; + } + UpdateBusinessVariablesBuilder address(String? t) { + _address.value = t; + return this; + } + UpdateBusinessVariablesBuilder city(String? t) { + _city.value = t; + return this; + } + UpdateBusinessVariablesBuilder area(BusinessArea? t) { + _area.value = t; + return this; + } + UpdateBusinessVariablesBuilder sector(BusinessSector? t) { + _sector.value = t; + return this; + } + UpdateBusinessVariablesBuilder rateGroup(BusinessRateGroup? t) { + _rateGroup.value = t; + return this; + } + UpdateBusinessVariablesBuilder status(BusinessStatus? t) { + _status.value = t; + return this; + } + UpdateBusinessVariablesBuilder notes(String? t) { + _notes.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateBusiness( + id: id, +) +.businessName(businessName) +.contactName(contactName) +.companyLogoUrl(companyLogoUrl) +.phone(phone) +.email(email) +.hubBuilding(hubBuilding) +.address(address) +.city(city) +.area(area) +.sector(sector) +.rateGroup(rateGroup) +.status(status) +.notes(notes) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateBusiness( + id: id, +); +updateBusinessData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateBusiness( + id: id, +).ref(); +ref.execute(); +``` + + +### deleteBusiness +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteBusiness( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteBusiness( + id: id, +); +deleteBusinessData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteBusiness( id: id, ).ref(); ref.execute(); @@ -18324,76 +22346,40 @@ ref.execute(); ``` -### createTask +### createTeamHudDepartment #### Required Arguments ```dart -String taskName = ...; -TaskPriority priority = ...; -TaskStatus status = ...; -String ownerId = ...; -ExampleConnector.instance.createTask( - taskName: taskName, - priority: priority, - status: status, - ownerId: ownerId, +String name = ...; +String teamHubId = ...; +ExampleConnector.instance.createTeamHudDepartment( + name: name, + teamHubId: teamHubId, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createTask, we created `createTaskBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createTeamHudDepartment, we created `createTeamHudDepartmentBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateTaskVariablesBuilder { +class CreateTeamHudDepartmentVariablesBuilder { ... - CreateTaskVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - CreateTaskVariablesBuilder dueDate(Timestamp? t) { - _dueDate.value = t; - return this; - } - CreateTaskVariablesBuilder progress(int? t) { - _progress.value = t; - return this; - } - CreateTaskVariablesBuilder orderIndex(int? t) { - _orderIndex.value = t; - return this; - } - CreateTaskVariablesBuilder commentCount(int? t) { - _commentCount.value = t; - return this; - } - CreateTaskVariablesBuilder attachmentCount(int? t) { - _attachmentCount.value = t; - return this; - } - CreateTaskVariablesBuilder files(AnyValue? t) { - _files.value = t; + CreateTeamHudDepartmentVariablesBuilder costCenter(String? t) { + _costCenter.value = t; return this; } ... } -ExampleConnector.instance.createTask( - taskName: taskName, - priority: priority, - status: status, - ownerId: ownerId, +ExampleConnector.instance.createTeamHudDepartment( + name: name, + teamHubId: teamHubId, ) -.description(description) -.dueDate(dueDate) -.progress(progress) -.orderIndex(orderIndex) -.commentCount(commentCount) -.attachmentCount(attachmentCount) -.files(files) +.costCenter(costCenter) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -18403,13 +22389,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createTask( - taskName: taskName, - priority: priority, - status: status, - ownerId: ownerId, +final result = await ExampleConnector.instance.createTeamHudDepartment( + name: name, + teamHubId: teamHubId, ); -createTaskData data = result.data; +createTeamHudDepartmentData data = result.data; final ref = result.ref; ``` @@ -18417,102 +22401,58 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String taskName = ...; -TaskPriority priority = ...; -TaskStatus status = ...; -String ownerId = ...; +String name = ...; +String teamHubId = ...; -final ref = ExampleConnector.instance.createTask( - taskName: taskName, - priority: priority, - status: status, - ownerId: ownerId, +final ref = ExampleConnector.instance.createTeamHudDepartment( + name: name, + teamHubId: teamHubId, ).ref(); ref.execute(); ``` -### updateTask +### updateTeamHudDepartment #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateTask( +ExampleConnector.instance.updateTeamHudDepartment( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateTask, we created `updateTaskBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateTeamHudDepartment, we created `updateTeamHudDepartmentBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateTaskVariablesBuilder { +class UpdateTeamHudDepartmentVariablesBuilder { ... - UpdateTaskVariablesBuilder taskName(String? t) { - _taskName.value = t; + UpdateTeamHudDepartmentVariablesBuilder name(String? t) { + _name.value = t; return this; } - UpdateTaskVariablesBuilder description(String? t) { - _description.value = t; + UpdateTeamHudDepartmentVariablesBuilder costCenter(String? t) { + _costCenter.value = t; return this; } - UpdateTaskVariablesBuilder priority(TaskPriority? t) { - _priority.value = t; - return this; - } - UpdateTaskVariablesBuilder status(TaskStatus? t) { - _status.value = t; - return this; - } - UpdateTaskVariablesBuilder dueDate(Timestamp? t) { - _dueDate.value = t; - return this; - } - UpdateTaskVariablesBuilder progress(int? t) { - _progress.value = t; - return this; - } - UpdateTaskVariablesBuilder assignedMembers(AnyValue? t) { - _assignedMembers.value = t; - return this; - } - UpdateTaskVariablesBuilder orderIndex(int? t) { - _orderIndex.value = t; - return this; - } - UpdateTaskVariablesBuilder commentCount(int? t) { - _commentCount.value = t; - return this; - } - UpdateTaskVariablesBuilder attachmentCount(int? t) { - _attachmentCount.value = t; - return this; - } - UpdateTaskVariablesBuilder files(AnyValue? t) { - _files.value = t; + UpdateTeamHudDepartmentVariablesBuilder teamHubId(String? t) { + _teamHubId.value = t; return this; } ... } -ExampleConnector.instance.updateTask( +ExampleConnector.instance.updateTeamHudDepartment( id: id, ) -.taskName(taskName) -.description(description) -.priority(priority) -.status(status) -.dueDate(dueDate) -.progress(progress) -.assignedMembers(assignedMembers) -.orderIndex(orderIndex) -.commentCount(commentCount) -.attachmentCount(attachmentCount) -.files(files) +.name(name) +.costCenter(costCenter) +.teamHubId(teamHubId) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -18522,10 +22462,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateTask( +final result = await ExampleConnector.instance.updateTeamHudDepartment( id: id, ); -updateTaskData data = result.data; +updateTeamHudDepartmentData data = result.data; final ref = result.ref; ``` @@ -18535,18 +22475,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateTask( +final ref = ExampleConnector.instance.updateTeamHudDepartment( id: id, ).ref(); ref.execute(); ``` -### deleteTask +### deleteTeamHudDepartment #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteTask( +ExampleConnector.instance.deleteTeamHudDepartment( id: id, ).execute(); ``` @@ -18554,7 +22494,7 @@ ExampleConnector.instance.deleteTask( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -18564,10 +22504,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteTask( +final result = await ExampleConnector.instance.deleteTeamHudDepartment( id: id, ); -deleteTaskData data = result.data; +deleteTeamHudDepartmentData data = result.data; final ref = result.ref; ``` @@ -18577,725 +22517,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteTask( - id: id, -).ref(); -ref.execute(); -``` - - -### createWorkforce -#### Required Arguments -```dart -String vendorId = ...; -String staffId = ...; -String workforceNumber = ...; -ExampleConnector.instance.createWorkforce( - vendorId: vendorId, - staffId: staffId, - workforceNumber: workforceNumber, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createWorkforce, we created `createWorkforceBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateWorkforceVariablesBuilder { - ... - CreateWorkforceVariablesBuilder employmentType(WorkforceEmploymentType? t) { - _employmentType.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createWorkforce( - vendorId: vendorId, - staffId: staffId, - workforceNumber: workforceNumber, -) -.employmentType(employmentType) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createWorkforce( - vendorId: vendorId, - staffId: staffId, - workforceNumber: workforceNumber, -); -createWorkforceData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; -String staffId = ...; -String workforceNumber = ...; - -final ref = ExampleConnector.instance.createWorkforce( - vendorId: vendorId, - staffId: staffId, - workforceNumber: workforceNumber, -).ref(); -ref.execute(); -``` - - -### updateWorkforce -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateWorkforce( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateWorkforce, we created `updateWorkforceBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateWorkforceVariablesBuilder { - ... - UpdateWorkforceVariablesBuilder workforceNumber(String? t) { - _workforceNumber.value = t; - return this; - } - UpdateWorkforceVariablesBuilder employmentType(WorkforceEmploymentType? t) { - _employmentType.value = t; - return this; - } - UpdateWorkforceVariablesBuilder status(WorkforceStatus? t) { - _status.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateWorkforce( - id: id, -) -.workforceNumber(workforceNumber) -.employmentType(employmentType) -.status(status) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateWorkforce( - id: id, -); -updateWorkforceData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateWorkforce( - id: id, -).ref(); -ref.execute(); -``` - - -### deactivateWorkforce -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deactivateWorkforce( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deactivateWorkforce( - id: id, -); -deactivateWorkforceData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deactivateWorkforce( - id: id, -).ref(); -ref.execute(); -``` - - -### createMemberTask -#### Required Arguments -```dart -String teamMemberId = ...; -String taskId = ...; -ExampleConnector.instance.createMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -); -createMemberTaskData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamMemberId = ...; -String taskId = ...; - -final ref = ExampleConnector.instance.createMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -).ref(); -ref.execute(); -``` - - -### deleteMemberTask -#### Required Arguments -```dart -String teamMemberId = ...; -String taskId = ...; -ExampleConnector.instance.deleteMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -); -deleteMemberTaskData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String teamMemberId = ...; -String taskId = ...; - -final ref = ExampleConnector.instance.deleteMemberTask( - teamMemberId: teamMemberId, - taskId: taskId, -).ref(); -ref.execute(); -``` - - -### createStaffAvailabilityStats -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.createStaffAvailabilityStats( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createStaffAvailabilityStats, we created `createStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateStaffAvailabilityStatsVariablesBuilder { - ... - CreateStaffAvailabilityStatsVariablesBuilder needWorkIndex(int? t) { - _needWorkIndex.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder utilizationPercentage(int? t) { - _utilizationPercentage.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder predictedAvailabilityScore(int? t) { - _predictedAvailabilityScore.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder scheduledHoursThisPeriod(int? t) { - _scheduledHoursThisPeriod.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder desiredHoursThisPeriod(int? t) { - _desiredHoursThisPeriod.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder lastShiftDate(Timestamp? t) { - _lastShiftDate.value = t; - return this; - } - CreateStaffAvailabilityStatsVariablesBuilder acceptanceRate(int? t) { - _acceptanceRate.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createStaffAvailabilityStats( - staffId: staffId, -) -.needWorkIndex(needWorkIndex) -.utilizationPercentage(utilizationPercentage) -.predictedAvailabilityScore(predictedAvailabilityScore) -.scheduledHoursThisPeriod(scheduledHoursThisPeriod) -.desiredHoursThisPeriod(desiredHoursThisPeriod) -.lastShiftDate(lastShiftDate) -.acceptanceRate(acceptanceRate) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createStaffAvailabilityStats( - staffId: staffId, -); -createStaffAvailabilityStatsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.createStaffAvailabilityStats( - staffId: staffId, -).ref(); -ref.execute(); -``` - - -### updateStaffAvailabilityStats -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.updateStaffAvailabilityStats( - staffId: staffId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateStaffAvailabilityStats, we created `updateStaffAvailabilityStatsBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateStaffAvailabilityStatsVariablesBuilder { - ... - UpdateStaffAvailabilityStatsVariablesBuilder needWorkIndex(int? t) { - _needWorkIndex.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder utilizationPercentage(int? t) { - _utilizationPercentage.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder predictedAvailabilityScore(int? t) { - _predictedAvailabilityScore.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder scheduledHoursThisPeriod(int? t) { - _scheduledHoursThisPeriod.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder desiredHoursThisPeriod(int? t) { - _desiredHoursThisPeriod.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder lastShiftDate(Timestamp? t) { - _lastShiftDate.value = t; - return this; - } - UpdateStaffAvailabilityStatsVariablesBuilder acceptanceRate(int? t) { - _acceptanceRate.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateStaffAvailabilityStats( - staffId: staffId, -) -.needWorkIndex(needWorkIndex) -.utilizationPercentage(utilizationPercentage) -.predictedAvailabilityScore(predictedAvailabilityScore) -.scheduledHoursThisPeriod(scheduledHoursThisPeriod) -.desiredHoursThisPeriod(desiredHoursThisPeriod) -.lastShiftDate(lastShiftDate) -.acceptanceRate(acceptanceRate) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateStaffAvailabilityStats( - staffId: staffId, -); -updateStaffAvailabilityStatsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.updateStaffAvailabilityStats( - staffId: staffId, -).ref(); -ref.execute(); -``` - - -### deleteStaffAvailabilityStats -#### Required Arguments -```dart -String staffId = ...; -ExampleConnector.instance.deleteStaffAvailabilityStats( - staffId: staffId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteStaffAvailabilityStats( - staffId: staffId, -); -deleteStaffAvailabilityStatsData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; - -final ref = ExampleConnector.instance.deleteStaffAvailabilityStats( - staffId: staffId, -).ref(); -ref.execute(); -``` - - -### createVendorBenefitPlan -#### Required Arguments -```dart -String vendorId = ...; -String title = ...; -ExampleConnector.instance.createVendorBenefitPlan( - vendorId: vendorId, - title: title, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createVendorBenefitPlan, we created `createVendorBenefitPlanBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateVendorBenefitPlanVariablesBuilder { - ... - CreateVendorBenefitPlanVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - CreateVendorBenefitPlanVariablesBuilder requestLabel(String? t) { - _requestLabel.value = t; - return this; - } - CreateVendorBenefitPlanVariablesBuilder total(int? t) { - _total.value = t; - return this; - } - CreateVendorBenefitPlanVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - CreateVendorBenefitPlanVariablesBuilder createdBy(String? t) { - _createdBy.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createVendorBenefitPlan( - vendorId: vendorId, - title: title, -) -.description(description) -.requestLabel(requestLabel) -.total(total) -.isActive(isActive) -.createdBy(createdBy) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createVendorBenefitPlan( - vendorId: vendorId, - title: title, -); -createVendorBenefitPlanData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String vendorId = ...; -String title = ...; - -final ref = ExampleConnector.instance.createVendorBenefitPlan( - vendorId: vendorId, - title: title, -).ref(); -ref.execute(); -``` - - -### updateVendorBenefitPlan -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateVendorBenefitPlan( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateVendorBenefitPlan, we created `updateVendorBenefitPlanBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateVendorBenefitPlanVariablesBuilder { - ... - UpdateVendorBenefitPlanVariablesBuilder vendorId(String? t) { - _vendorId.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder requestLabel(String? t) { - _requestLabel.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder total(int? t) { - _total.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - UpdateVendorBenefitPlanVariablesBuilder createdBy(String? t) { - _createdBy.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateVendorBenefitPlan( - id: id, -) -.vendorId(vendorId) -.title(title) -.description(description) -.requestLabel(requestLabel) -.total(total) -.isActive(isActive) -.createdBy(createdBy) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateVendorBenefitPlan( - id: id, -); -updateVendorBenefitPlanData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateVendorBenefitPlan( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteVendorBenefitPlan -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteVendorBenefitPlan( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteVendorBenefitPlan( - id: id, -); -deleteVendorBenefitPlanData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteVendorBenefitPlan( +final ref = ExampleConnector.instance.deleteTeamHudDepartment( id: id, ).ref(); ref.execute(); @@ -19539,78 +22761,55 @@ ref.execute(); ``` -### CreateCertificate +### createAttireOption #### Required Arguments ```dart -String name = ...; -CertificateStatus status = ...; -String staffId = ...; -ExampleConnector.instance.createCertificate( - name: name, - status: status, - staffId: staffId, +String itemId = ...; +String label = ...; +ExampleConnector.instance.createAttireOption( + itemId: itemId, + label: label, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For CreateCertificate, we created `CreateCertificateBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createAttireOption, we created `createAttireOptionBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateCertificateVariablesBuilder { +class CreateAttireOptionVariablesBuilder { ... - CreateCertificateVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - CreateCertificateVariablesBuilder expiry(Timestamp? t) { - _expiry.value = t; - return this; - } - CreateCertificateVariablesBuilder fileUrl(String? t) { - _fileUrl.value = t; - return this; - } - CreateCertificateVariablesBuilder icon(String? t) { + CreateAttireOptionVariablesBuilder icon(String? t) { _icon.value = t; return this; } - CreateCertificateVariablesBuilder certificationType(ComplianceType? t) { - _certificationType.value = t; + CreateAttireOptionVariablesBuilder imageUrl(String? t) { + _imageUrl.value = t; return this; } - CreateCertificateVariablesBuilder issuer(String? t) { - _issuer.value = t; + CreateAttireOptionVariablesBuilder isMandatory(bool? t) { + _isMandatory.value = t; return this; } - CreateCertificateVariablesBuilder validationStatus(ValidationStatus? t) { - _validationStatus.value = t; - return this; - } - CreateCertificateVariablesBuilder certificateNumber(String? t) { - _certificateNumber.value = t; + CreateAttireOptionVariablesBuilder vendorId(String? t) { + _vendorId.value = t; return this; } ... } -ExampleConnector.instance.createCertificate( - name: name, - status: status, - staffId: staffId, +ExampleConnector.instance.createAttireOption( + itemId: itemId, + label: label, ) -.description(description) -.expiry(expiry) -.fileUrl(fileUrl) .icon(icon) -.certificationType(certificationType) -.issuer(issuer) -.validationStatus(validationStatus) -.certificateNumber(certificateNumber) +.imageUrl(imageUrl) +.isMandatory(isMandatory) +.vendorId(vendorId) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -19620,12 +22819,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createCertificate( - name: name, - status: status, - staffId: staffId, +final result = await ExampleConnector.instance.createAttireOption( + itemId: itemId, + label: label, ); -CreateCertificateData data = result.data; +createAttireOptionData data = result.data; final ref = result.ref; ``` @@ -19633,100 +22831,73 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String name = ...; -CertificateStatus status = ...; -String staffId = ...; +String itemId = ...; +String label = ...; -final ref = ExampleConnector.instance.createCertificate( - name: name, - status: status, - staffId: staffId, +final ref = ExampleConnector.instance.createAttireOption( + itemId: itemId, + label: label, ).ref(); ref.execute(); ``` -### UpdateCertificate +### updateAttireOption #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateCertificate( +ExampleConnector.instance.updateAttireOption( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For UpdateCertificate, we created `UpdateCertificateBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateAttireOption, we created `updateAttireOptionBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateCertificateVariablesBuilder { +class UpdateAttireOptionVariablesBuilder { ... - UpdateCertificateVariablesBuilder name(String? t) { - _name.value = t; + UpdateAttireOptionVariablesBuilder itemId(String? t) { + _itemId.value = t; return this; } - UpdateCertificateVariablesBuilder description(String? t) { - _description.value = t; + UpdateAttireOptionVariablesBuilder label(String? t) { + _label.value = t; return this; } - UpdateCertificateVariablesBuilder expiry(Timestamp? t) { - _expiry.value = t; - return this; - } - UpdateCertificateVariablesBuilder status(CertificateStatus? t) { - _status.value = t; - return this; - } - UpdateCertificateVariablesBuilder fileUrl(String? t) { - _fileUrl.value = t; - return this; - } - UpdateCertificateVariablesBuilder icon(String? t) { + UpdateAttireOptionVariablesBuilder icon(String? t) { _icon.value = t; return this; } - UpdateCertificateVariablesBuilder staffId(String? t) { - _staffId.value = t; + UpdateAttireOptionVariablesBuilder imageUrl(String? t) { + _imageUrl.value = t; return this; } - UpdateCertificateVariablesBuilder certificationType(ComplianceType? t) { - _certificationType.value = t; + UpdateAttireOptionVariablesBuilder isMandatory(bool? t) { + _isMandatory.value = t; return this; } - UpdateCertificateVariablesBuilder issuer(String? t) { - _issuer.value = t; - return this; - } - UpdateCertificateVariablesBuilder validationStatus(ValidationStatus? t) { - _validationStatus.value = t; - return this; - } - UpdateCertificateVariablesBuilder certificateNumber(String? t) { - _certificateNumber.value = t; + UpdateAttireOptionVariablesBuilder vendorId(String? t) { + _vendorId.value = t; return this; } ... } -ExampleConnector.instance.updateCertificate( +ExampleConnector.instance.updateAttireOption( id: id, ) -.name(name) -.description(description) -.expiry(expiry) -.status(status) -.fileUrl(fileUrl) +.itemId(itemId) +.label(label) .icon(icon) -.staffId(staffId) -.certificationType(certificationType) -.issuer(issuer) -.validationStatus(validationStatus) -.certificateNumber(certificateNumber) +.imageUrl(imageUrl) +.isMandatory(isMandatory) +.vendorId(vendorId) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -19736,10 +22907,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateCertificate( +final result = await ExampleConnector.instance.updateAttireOption( id: id, ); -UpdateCertificateData data = result.data; +updateAttireOptionData data = result.data; final ref = result.ref; ``` @@ -19749,18 +22920,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateCertificate( +final ref = ExampleConnector.instance.updateAttireOption( id: id, ).ref(); ref.execute(); ``` -### DeleteCertificate +### deleteAttireOption #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteCertificate( +ExampleConnector.instance.deleteAttireOption( id: id, ).execute(); ``` @@ -19768,7 +22939,7 @@ ExampleConnector.instance.deleteCertificate( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -19778,10 +22949,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteCertificate( +final result = await ExampleConnector.instance.deleteAttireOption( id: id, ); -DeleteCertificateData data = result.data; +deleteAttireOptionData data = result.data; final ref = result.ref; ``` @@ -19791,1259 +22962,62 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteCertificate( +final ref = ExampleConnector.instance.deleteAttireOption( id: id, ).ref(); ref.execute(); ``` -### createCourse +### createClientFeedback #### Required Arguments ```dart -String categoryId = ...; -ExampleConnector.instance.createCourse( - categoryId: categoryId, +String businessId = ...; +String vendorId = ...; +ExampleConnector.instance.createClientFeedback( + businessId: businessId, + vendorId: vendorId, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createCourse, we created `createCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For createClientFeedback, we created `createClientFeedbackBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateCourseVariablesBuilder { +class CreateClientFeedbackVariablesBuilder { ... - - CreateCourseVariablesBuilder title(String? t) { - _title.value = t; + CreateClientFeedbackVariablesBuilder rating(int? t) { + _rating.value = t; return this; } - CreateCourseVariablesBuilder description(String? t) { - _description.value = t; + CreateClientFeedbackVariablesBuilder comment(String? t) { + _comment.value = t; return this; } - CreateCourseVariablesBuilder thumbnailUrl(String? t) { - _thumbnailUrl.value = t; - return this; - } - CreateCourseVariablesBuilder durationMinutes(int? t) { - _durationMinutes.value = t; - return this; - } - CreateCourseVariablesBuilder xpReward(int? t) { - _xpReward.value = t; - return this; - } - CreateCourseVariablesBuilder levelRequired(String? t) { - _levelRequired.value = t; - return this; - } - CreateCourseVariablesBuilder isCertification(bool? t) { - _isCertification.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createCourse( - categoryId: categoryId, -) -.title(title) -.description(description) -.thumbnailUrl(thumbnailUrl) -.durationMinutes(durationMinutes) -.xpReward(xpReward) -.levelRequired(levelRequired) -.isCertification(isCertification) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createCourse( - categoryId: categoryId, -); -createCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String categoryId = ...; - -final ref = ExampleConnector.instance.createCourse( - categoryId: categoryId, -).ref(); -ref.execute(); -``` - - -### updateCourse -#### Required Arguments -```dart -String id = ...; -String categoryId = ...; -ExampleConnector.instance.updateCourse( - id: id, - categoryId: categoryId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateCourse, we created `updateCourseBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateCourseVariablesBuilder { - ... - UpdateCourseVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateCourseVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - UpdateCourseVariablesBuilder thumbnailUrl(String? t) { - _thumbnailUrl.value = t; - return this; - } - UpdateCourseVariablesBuilder durationMinutes(int? t) { - _durationMinutes.value = t; - return this; - } - UpdateCourseVariablesBuilder xpReward(int? t) { - _xpReward.value = t; - return this; - } - UpdateCourseVariablesBuilder levelRequired(String? t) { - _levelRequired.value = t; - return this; - } - UpdateCourseVariablesBuilder isCertification(bool? t) { - _isCertification.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateCourse( - id: id, - categoryId: categoryId, -) -.title(title) -.description(description) -.thumbnailUrl(thumbnailUrl) -.durationMinutes(durationMinutes) -.xpReward(xpReward) -.levelRequired(levelRequired) -.isCertification(isCertification) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateCourse( - id: id, - categoryId: categoryId, -); -updateCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; -String categoryId = ...; - -final ref = ExampleConnector.instance.updateCourse( - id: id, - categoryId: categoryId, -).ref(); -ref.execute(); -``` - - -### deleteCourse -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteCourse( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteCourse( - id: id, -); -deleteCourseData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteCourse( - id: id, -).ref(); -ref.execute(); -``` - - -### createRoleCategory -#### Required Arguments -```dart -String roleName = ...; -RoleCategoryType category = ...; -ExampleConnector.instance.createRoleCategory( - roleName: roleName, - category: category, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createRoleCategory( - roleName: roleName, - category: category, -); -createRoleCategoryData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String roleName = ...; -RoleCategoryType category = ...; - -final ref = ExampleConnector.instance.createRoleCategory( - roleName: roleName, - category: category, -).ref(); -ref.execute(); -``` - - -### updateRoleCategory -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateRoleCategory( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateRoleCategory, we created `updateRoleCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateRoleCategoryVariablesBuilder { - ... - UpdateRoleCategoryVariablesBuilder roleName(String? t) { - _roleName.value = t; - return this; - } - UpdateRoleCategoryVariablesBuilder category(RoleCategoryType? t) { - _category.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateRoleCategory( - id: id, -) -.roleName(roleName) -.category(category) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateRoleCategory( - id: id, -); -updateRoleCategoryData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateRoleCategory( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteRoleCategory -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteRoleCategory( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteRoleCategory( - id: id, -); -deleteRoleCategoryData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteRoleCategory( - id: id, -).ref(); -ref.execute(); -``` - - -### CreateStaff -#### Required Arguments -```dart -String userId = ...; -String fullName = ...; -ExampleConnector.instance.createStaff( - userId: userId, - fullName: fullName, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For CreateStaff, we created `CreateStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateStaffVariablesBuilder { - ... - CreateStaffVariablesBuilder level(String? t) { - _level.value = t; - return this; - } - CreateStaffVariablesBuilder role(String? t) { - _role.value = t; - return this; - } - CreateStaffVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - CreateStaffVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - CreateStaffVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; - return this; - } - CreateStaffVariablesBuilder totalShifts(int? t) { - _totalShifts.value = t; - return this; - } - CreateStaffVariablesBuilder averageRating(double? t) { - _averageRating.value = t; - return this; - } - CreateStaffVariablesBuilder onTimeRate(int? t) { - _onTimeRate.value = t; - return this; - } - CreateStaffVariablesBuilder noShowCount(int? t) { - _noShowCount.value = t; - return this; - } - CreateStaffVariablesBuilder cancellationCount(int? t) { - _cancellationCount.value = t; - return this; - } - CreateStaffVariablesBuilder reliabilityScore(int? t) { - _reliabilityScore.value = t; - return this; - } - CreateStaffVariablesBuilder bio(String? t) { - _bio.value = t; - return this; - } - CreateStaffVariablesBuilder industries(AnyValue? t) { - _industries.value = t; - return this; - } - CreateStaffVariablesBuilder preferredLocations(AnyValue? t) { - _preferredLocations.value = t; - return this; - } - CreateStaffVariablesBuilder maxDistanceMiles(int? t) { - _maxDistanceMiles.value = t; - return this; - } - CreateStaffVariablesBuilder languages(AnyValue? t) { - _languages.value = t; - return this; - } - CreateStaffVariablesBuilder itemsAttire(AnyValue? t) { - _itemsAttire.value = t; - return this; - } - CreateStaffVariablesBuilder xp(int? t) { - _xp.value = t; - return this; - } - CreateStaffVariablesBuilder badges(AnyValue? t) { - _badges.value = t; - return this; - } - CreateStaffVariablesBuilder isRecommended(bool? t) { - _isRecommended.value = t; - return this; - } - CreateStaffVariablesBuilder ownerId(String? t) { - _ownerId.value = t; - return this; - } - CreateStaffVariablesBuilder department(DepartmentType? t) { - _department.value = t; - return this; - } - CreateStaffVariablesBuilder hubId(String? t) { - _hubId.value = t; - return this; - } - CreateStaffVariablesBuilder manager(String? t) { - _manager.value = t; - return this; - } - CreateStaffVariablesBuilder english(EnglishProficiency? t) { - _english.value = t; - return this; - } - CreateStaffVariablesBuilder backgroundCheckStatus(BackgroundCheckStatus? t) { - _backgroundCheckStatus.value = t; - return this; - } - CreateStaffVariablesBuilder employmentType(EmploymentType? t) { - _employmentType.value = t; - return this; - } - CreateStaffVariablesBuilder initial(String? t) { - _initial.value = t; - return this; - } - CreateStaffVariablesBuilder englishRequired(bool? t) { - _englishRequired.value = t; - return this; - } - CreateStaffVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - CreateStaffVariablesBuilder addres(String? t) { - _addres.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createStaff( - userId: userId, - fullName: fullName, -) -.level(level) -.role(role) -.phone(phone) -.email(email) -.photoUrl(photoUrl) -.totalShifts(totalShifts) -.averageRating(averageRating) -.onTimeRate(onTimeRate) -.noShowCount(noShowCount) -.cancellationCount(cancellationCount) -.reliabilityScore(reliabilityScore) -.bio(bio) -.industries(industries) -.preferredLocations(preferredLocations) -.maxDistanceMiles(maxDistanceMiles) -.languages(languages) -.itemsAttire(itemsAttire) -.xp(xp) -.badges(badges) -.isRecommended(isRecommended) -.ownerId(ownerId) -.department(department) -.hubId(hubId) -.manager(manager) -.english(english) -.backgroundCheckStatus(backgroundCheckStatus) -.employmentType(employmentType) -.initial(initial) -.englishRequired(englishRequired) -.city(city) -.addres(addres) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createStaff( - userId: userId, - fullName: fullName, -); -CreateStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; -String fullName = ...; - -final ref = ExampleConnector.instance.createStaff( - userId: userId, - fullName: fullName, -).ref(); -ref.execute(); -``` - - -### UpdateStaff -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateStaff( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For UpdateStaff, we created `UpdateStaffBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateStaffVariablesBuilder { - ... - UpdateStaffVariablesBuilder userId(String? t) { - _userId.value = t; - return this; - } - UpdateStaffVariablesBuilder fullName(String? t) { - _fullName.value = t; - return this; - } - UpdateStaffVariablesBuilder level(String? t) { - _level.value = t; - return this; - } - UpdateStaffVariablesBuilder role(String? t) { - _role.value = t; - return this; - } - UpdateStaffVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - UpdateStaffVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - UpdateStaffVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; - return this; - } - UpdateStaffVariablesBuilder totalShifts(int? t) { - _totalShifts.value = t; - return this; - } - UpdateStaffVariablesBuilder averageRating(double? t) { - _averageRating.value = t; - return this; - } - UpdateStaffVariablesBuilder onTimeRate(int? t) { - _onTimeRate.value = t; - return this; - } - UpdateStaffVariablesBuilder noShowCount(int? t) { - _noShowCount.value = t; - return this; - } - UpdateStaffVariablesBuilder cancellationCount(int? t) { - _cancellationCount.value = t; - return this; - } - UpdateStaffVariablesBuilder reliabilityScore(int? t) { - _reliabilityScore.value = t; - return this; - } - UpdateStaffVariablesBuilder bio(String? t) { - _bio.value = t; - return this; - } - UpdateStaffVariablesBuilder industries(AnyValue? t) { - _industries.value = t; - return this; - } - UpdateStaffVariablesBuilder preferredLocations(AnyValue? t) { - _preferredLocations.value = t; - return this; - } - UpdateStaffVariablesBuilder maxDistanceMiles(int? t) { - _maxDistanceMiles.value = t; - return this; - } - UpdateStaffVariablesBuilder languages(AnyValue? t) { - _languages.value = t; - return this; - } - UpdateStaffVariablesBuilder itemsAttire(AnyValue? t) { - _itemsAttire.value = t; - return this; - } - UpdateStaffVariablesBuilder xp(int? t) { - _xp.value = t; - return this; - } - UpdateStaffVariablesBuilder badges(AnyValue? t) { - _badges.value = t; - return this; - } - UpdateStaffVariablesBuilder isRecommended(bool? t) { - _isRecommended.value = t; - return this; - } - UpdateStaffVariablesBuilder ownerId(String? t) { - _ownerId.value = t; - return this; - } - UpdateStaffVariablesBuilder department(DepartmentType? t) { - _department.value = t; - return this; - } - UpdateStaffVariablesBuilder hubId(String? t) { - _hubId.value = t; - return this; - } - UpdateStaffVariablesBuilder manager(String? t) { - _manager.value = t; - return this; - } - UpdateStaffVariablesBuilder english(EnglishProficiency? t) { - _english.value = t; - return this; - } - UpdateStaffVariablesBuilder backgroundCheckStatus(BackgroundCheckStatus? t) { - _backgroundCheckStatus.value = t; - return this; - } - UpdateStaffVariablesBuilder employmentType(EmploymentType? t) { - _employmentType.value = t; - return this; - } - UpdateStaffVariablesBuilder initial(String? t) { - _initial.value = t; - return this; - } - UpdateStaffVariablesBuilder englishRequired(bool? t) { - _englishRequired.value = t; - return this; - } - UpdateStaffVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - UpdateStaffVariablesBuilder addres(String? t) { - _addres.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateStaff( - id: id, -) -.userId(userId) -.fullName(fullName) -.level(level) -.role(role) -.phone(phone) -.email(email) -.photoUrl(photoUrl) -.totalShifts(totalShifts) -.averageRating(averageRating) -.onTimeRate(onTimeRate) -.noShowCount(noShowCount) -.cancellationCount(cancellationCount) -.reliabilityScore(reliabilityScore) -.bio(bio) -.industries(industries) -.preferredLocations(preferredLocations) -.maxDistanceMiles(maxDistanceMiles) -.languages(languages) -.itemsAttire(itemsAttire) -.xp(xp) -.badges(badges) -.isRecommended(isRecommended) -.ownerId(ownerId) -.department(department) -.hubId(hubId) -.manager(manager) -.english(english) -.backgroundCheckStatus(backgroundCheckStatus) -.employmentType(employmentType) -.initial(initial) -.englishRequired(englishRequired) -.city(city) -.addres(addres) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateStaff( - id: id, -); -UpdateStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateStaff( - id: id, -).ref(); -ref.execute(); -``` - - -### DeleteStaff -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteStaff( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteStaff( - id: id, -); -DeleteStaffData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteStaff( - id: id, -).ref(); -ref.execute(); -``` - - -### createAccount -#### Required Arguments -```dart -String bank = ...; -AccountType type = ...; -String last4 = ...; -String ownerId = ...; -ExampleConnector.instance.createAccount( - bank: bank, - type: type, - last4: last4, - ownerId: ownerId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createAccount, we created `createAccountBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateAccountVariablesBuilder { - ... - CreateAccountVariablesBuilder isPrimary(bool? t) { - _isPrimary.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createAccount( - bank: bank, - type: type, - last4: last4, - ownerId: ownerId, -) -.isPrimary(isPrimary) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createAccount( - bank: bank, - type: type, - last4: last4, - ownerId: ownerId, -); -createAccountData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String bank = ...; -AccountType type = ...; -String last4 = ...; -String ownerId = ...; - -final ref = ExampleConnector.instance.createAccount( - bank: bank, - type: type, - last4: last4, - ownerId: ownerId, -).ref(); -ref.execute(); -``` - - -### updateAccount -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateAccount( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateAccount, we created `updateAccountBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateAccountVariablesBuilder { - ... - UpdateAccountVariablesBuilder bank(String? t) { - _bank.value = t; - return this; - } - UpdateAccountVariablesBuilder type(AccountType? t) { - _type.value = t; - return this; - } - UpdateAccountVariablesBuilder last4(String? t) { - _last4.value = t; - return this; - } - UpdateAccountVariablesBuilder isPrimary(bool? t) { - _isPrimary.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateAccount( - id: id, -) -.bank(bank) -.type(type) -.last4(last4) -.isPrimary(isPrimary) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateAccount( - id: id, -); -updateAccountData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateAccount( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteAccount -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteAccount( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteAccount( - id: id, -); -deleteAccountData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteAccount( - id: id, -).ref(); -ref.execute(); -``` - - -### createActivityLog -#### Required Arguments -```dart -String userId = ...; -Timestamp date = ...; -String title = ...; -String description = ...; -ActivityType activityType = ...; -ExampleConnector.instance.createActivityLog( - userId: userId, - date: date, - title: title, - description: description, - activityType: activityType, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createActivityLog, we created `createActivityLogBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateActivityLogVariablesBuilder { - ... - CreateActivityLogVariablesBuilder hourStart(String? t) { - _hourStart.value = t; - return this; - } - CreateActivityLogVariablesBuilder hourEnd(String? t) { - _hourEnd.value = t; - return this; - } - CreateActivityLogVariablesBuilder totalhours(String? t) { - _totalhours.value = t; - return this; - } - CreateActivityLogVariablesBuilder iconType(ActivityIconType? t) { - _iconType.value = t; - return this; - } - CreateActivityLogVariablesBuilder iconColor(String? t) { - _iconColor.value = t; - return this; - } - CreateActivityLogVariablesBuilder isRead(bool? t) { - _isRead.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createActivityLog( - userId: userId, - date: date, - title: title, - description: description, - activityType: activityType, -) -.hourStart(hourStart) -.hourEnd(hourEnd) -.totalhours(totalhours) -.iconType(iconType) -.iconColor(iconColor) -.isRead(isRead) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createActivityLog( - userId: userId, - date: date, - title: title, - description: description, - activityType: activityType, -); -createActivityLogData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; -Timestamp date = ...; -String title = ...; -String description = ...; -ActivityType activityType = ...; - -final ref = ExampleConnector.instance.createActivityLog( - userId: userId, - date: date, - title: title, - description: description, - activityType: activityType, -).ref(); -ref.execute(); -``` - - -### updateActivityLog -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateActivityLog( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateActivityLog, we created `updateActivityLogBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateActivityLogVariablesBuilder { - ... - UpdateActivityLogVariablesBuilder userId(String? t) { - _userId.value = t; - return this; - } - UpdateActivityLogVariablesBuilder date(Timestamp? t) { + CreateClientFeedbackVariablesBuilder date(Timestamp? t) { _date.value = t; return this; } - UpdateActivityLogVariablesBuilder hourStart(String? t) { - _hourStart.value = t; - return this; - } - UpdateActivityLogVariablesBuilder hourEnd(String? t) { - _hourEnd.value = t; - return this; - } - UpdateActivityLogVariablesBuilder totalhours(String? t) { - _totalhours.value = t; - return this; - } - UpdateActivityLogVariablesBuilder iconType(ActivityIconType? t) { - _iconType.value = t; - return this; - } - UpdateActivityLogVariablesBuilder iconColor(String? t) { - _iconColor.value = t; - return this; - } - UpdateActivityLogVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateActivityLogVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - UpdateActivityLogVariablesBuilder isRead(bool? t) { - _isRead.value = t; - return this; - } - UpdateActivityLogVariablesBuilder activityType(ActivityType? t) { - _activityType.value = t; + CreateClientFeedbackVariablesBuilder createdBy(String? t) { + _createdBy.value = t; return this; } ... } -ExampleConnector.instance.updateActivityLog( - id: id, +ExampleConnector.instance.createClientFeedback( + businessId: businessId, + vendorId: vendorId, ) -.userId(userId) +.rating(rating) +.comment(comment) .date(date) -.hourStart(hourStart) -.hourEnd(hourEnd) -.totalhours(totalhours) -.iconType(iconType) -.iconColor(iconColor) -.title(title) -.description(description) -.isRead(isRead) -.activityType(activityType) +.createdBy(createdBy) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -21053,10 +23027,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateActivityLog( - id: id, +final result = await ExampleConnector.instance.createClientFeedback( + businessId: businessId, + vendorId: vendorId, ); -updateActivityLogData data = result.data; +createClientFeedbackData data = result.data; final ref = result.ref; ``` @@ -21064,258 +23039,73 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String id = ...; +String businessId = ...; +String vendorId = ...; -final ref = ExampleConnector.instance.updateActivityLog( - id: id, +final ref = ExampleConnector.instance.createClientFeedback( + businessId: businessId, + vendorId: vendorId, ).ref(); ref.execute(); ``` -### markActivityLogAsRead +### updateClientFeedback #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.markActivityLogAsRead( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.markActivityLogAsRead( - id: id, -); -markActivityLogAsReadData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.markActivityLogAsRead( - id: id, -).ref(); -ref.execute(); -``` - - -### markActivityLogsAsRead -#### Required Arguments -```dart -String ids = ...; -ExampleConnector.instance.markActivityLogsAsRead( - ids: ids, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.markActivityLogsAsRead( - ids: ids, -); -markActivityLogsAsReadData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String ids = ...; - -final ref = ExampleConnector.instance.markActivityLogsAsRead( - ids: ids, -).ref(); -ref.execute(); -``` - - -### deleteActivityLog -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteActivityLog( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteActivityLog( - id: id, -); -deleteActivityLogData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteActivityLog( - id: id, -).ref(); -ref.execute(); -``` - - -### createLevel -#### Required Arguments -```dart -String name = ...; -int xpRequired = ...; -ExampleConnector.instance.createLevel( - name: name, - xpRequired: xpRequired, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createLevel, we created `createLevelBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateLevelVariablesBuilder { - ... - CreateLevelVariablesBuilder icon(String? t) { - _icon.value = t; - return this; - } - CreateLevelVariablesBuilder colors(AnyValue? t) { - _colors.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createLevel( - name: name, - xpRequired: xpRequired, -) -.icon(icon) -.colors(colors) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createLevel( - name: name, - xpRequired: xpRequired, -); -createLevelData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String name = ...; -int xpRequired = ...; - -final ref = ExampleConnector.instance.createLevel( - name: name, - xpRequired: xpRequired, -).ref(); -ref.execute(); -``` - - -### updateLevel -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateLevel( +ExampleConnector.instance.updateClientFeedback( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateLevel, we created `updateLevelBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateClientFeedback, we created `updateClientFeedbackBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateLevelVariablesBuilder { +class UpdateClientFeedbackVariablesBuilder { ... - UpdateLevelVariablesBuilder name(String? t) { - _name.value = t; + UpdateClientFeedbackVariablesBuilder businessId(String? t) { + _businessId.value = t; return this; } - UpdateLevelVariablesBuilder xpRequired(int? t) { - _xpRequired.value = t; + UpdateClientFeedbackVariablesBuilder vendorId(String? t) { + _vendorId.value = t; return this; } - UpdateLevelVariablesBuilder icon(String? t) { - _icon.value = t; + UpdateClientFeedbackVariablesBuilder rating(int? t) { + _rating.value = t; return this; } - UpdateLevelVariablesBuilder colors(AnyValue? t) { - _colors.value = t; + UpdateClientFeedbackVariablesBuilder comment(String? t) { + _comment.value = t; + return this; + } + UpdateClientFeedbackVariablesBuilder date(Timestamp? t) { + _date.value = t; + return this; + } + UpdateClientFeedbackVariablesBuilder createdBy(String? t) { + _createdBy.value = t; return this; } ... } -ExampleConnector.instance.updateLevel( +ExampleConnector.instance.updateClientFeedback( id: id, ) -.name(name) -.xpRequired(xpRequired) -.icon(icon) -.colors(colors) +.businessId(businessId) +.vendorId(vendorId) +.rating(rating) +.comment(comment) +.date(date) +.createdBy(createdBy) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -21325,10 +23115,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateLevel( +final result = await ExampleConnector.instance.updateClientFeedback( id: id, ); -updateLevelData data = result.data; +updateClientFeedbackData data = result.data; final ref = result.ref; ``` @@ -21338,18 +23128,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateLevel( +final ref = ExampleConnector.instance.updateClientFeedback( id: id, ).ref(); ref.execute(); ``` -### deleteLevel +### deleteClientFeedback #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteLevel( +ExampleConnector.instance.deleteClientFeedback( id: id, ).execute(); ``` @@ -21357,7 +23147,7 @@ ExampleConnector.instance.deleteLevel( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -21367,10 +23157,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteLevel( +final result = await ExampleConnector.instance.deleteClientFeedback( id: id, ); -deleteLevelData data = result.data; +deleteClientFeedbackData data = result.data; final ref = result.ref; ``` @@ -21380,196 +23170,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteLevel( - id: id, -).ref(); -ref.execute(); -``` - - -### createMessage -#### Required Arguments -```dart -String conversationId = ...; -String senderId = ...; -String content = ...; -ExampleConnector.instance.createMessage( - conversationId: conversationId, - senderId: senderId, - content: content, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createMessage, we created `createMessageBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateMessageVariablesBuilder { - ... - CreateMessageVariablesBuilder isSystem(bool? t) { - _isSystem.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createMessage( - conversationId: conversationId, - senderId: senderId, - content: content, -) -.isSystem(isSystem) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createMessage( - conversationId: conversationId, - senderId: senderId, - content: content, -); -createMessageData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String conversationId = ...; -String senderId = ...; -String content = ...; - -final ref = ExampleConnector.instance.createMessage( - conversationId: conversationId, - senderId: senderId, - content: content, -).ref(); -ref.execute(); -``` - - -### updateMessage -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateMessage( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateMessage, we created `updateMessageBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateMessageVariablesBuilder { - ... - UpdateMessageVariablesBuilder conversationId(String? t) { - _conversationId.value = t; - return this; - } - UpdateMessageVariablesBuilder senderId(String? t) { - _senderId.value = t; - return this; - } - UpdateMessageVariablesBuilder content(String? t) { - _content.value = t; - return this; - } - UpdateMessageVariablesBuilder isSystem(bool? t) { - _isSystem.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateMessage( - id: id, -) -.conversationId(conversationId) -.senderId(senderId) -.content(content) -.isSystem(isSystem) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateMessage( - id: id, -); -updateMessageData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateMessage( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteMessage -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteMessage( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteMessage( - id: id, -); -deleteMessageData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteMessage( +final ref = ExampleConnector.instance.deleteClientFeedback( id: id, ).ref(); ref.execute(); @@ -21776,40 +23377,92 @@ ref.execute(); ``` -### createStaffRole +### createBenefitsData +#### Required Arguments +```dart +String vendorBenefitPlanId = ...; +String staffId = ...; +int current = ...; +ExampleConnector.instance.createBenefitsData( + vendorBenefitPlanId: vendorBenefitPlanId, + staffId: staffId, + current: current, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createBenefitsData( + vendorBenefitPlanId: vendorBenefitPlanId, + staffId: staffId, + current: current, +); +createBenefitsDataData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorBenefitPlanId = ...; +String staffId = ...; +int current = ...; + +final ref = ExampleConnector.instance.createBenefitsData( + vendorBenefitPlanId: vendorBenefitPlanId, + staffId: staffId, + current: current, +).ref(); +ref.execute(); +``` + + +### updateBenefitsData #### Required Arguments ```dart String staffId = ...; -String roleId = ...; -ExampleConnector.instance.createStaffRole( +String vendorBenefitPlanId = ...; +ExampleConnector.instance.updateBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createStaffRole, we created `createStaffRoleBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateBenefitsData, we created `updateBenefitsDataBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateStaffRoleVariablesBuilder { +class UpdateBenefitsDataVariablesBuilder { ... - CreateStaffRoleVariablesBuilder roleType(RoleType? t) { - _roleType.value = t; + UpdateBenefitsDataVariablesBuilder current(int? t) { + _current.value = t; return this; } ... } -ExampleConnector.instance.createStaffRole( +ExampleConnector.instance.updateBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ) -.roleType(roleType) +.current(current) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -21819,11 +23472,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createStaffRole( +final result = await ExampleConnector.instance.updateBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ); -createStaffRoleData data = result.data; +updateBenefitsDataData data = result.data; final ref = result.ref; ``` @@ -21832,31 +23485,31 @@ Each builder returns an `execute` function, which is a helper function that crea An example of how to use the `Ref` object is shown below: ```dart String staffId = ...; -String roleId = ...; +String vendorBenefitPlanId = ...; -final ref = ExampleConnector.instance.createStaffRole( +final ref = ExampleConnector.instance.updateBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ).ref(); ref.execute(); ``` -### deleteStaffRole +### deleteBenefitsData #### Required Arguments ```dart String staffId = ...; -String roleId = ...; -ExampleConnector.instance.deleteStaffRole( +String vendorBenefitPlanId = ...; +ExampleConnector.instance.deleteBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ).execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -21866,11 +23519,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteStaffRole( +final result = await ExampleConnector.instance.deleteBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ); -deleteStaffRoleData data = result.data; +deleteBenefitsDataData data = result.data; final ref = result.ref; ``` @@ -21879,333 +23532,35 @@ Each builder returns an `execute` function, which is a helper function that crea An example of how to use the `Ref` object is shown below: ```dart String staffId = ...; -String roleId = ...; +String vendorBenefitPlanId = ...; -final ref = ExampleConnector.instance.deleteStaffRole( +final ref = ExampleConnector.instance.deleteBenefitsData( staffId: staffId, - roleId: roleId, + vendorBenefitPlanId: vendorBenefitPlanId, ).ref(); ref.execute(); ``` -### CreateAssignment -#### Required Arguments -```dart -String workforceId = ...; -String roleId = ...; -String shiftId = ...; -ExampleConnector.instance.createAssignment( - workforceId: workforceId, - roleId: roleId, - shiftId: shiftId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For CreateAssignment, we created `CreateAssignmentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateAssignmentVariablesBuilder { - ... - CreateAssignmentVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - CreateAssignmentVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - CreateAssignmentVariablesBuilder instructions(String? t) { - _instructions.value = t; - return this; - } - CreateAssignmentVariablesBuilder status(AssignmentStatus? t) { - _status.value = t; - return this; - } - CreateAssignmentVariablesBuilder tipsAvailable(bool? t) { - _tipsAvailable.value = t; - return this; - } - CreateAssignmentVariablesBuilder travelTime(bool? t) { - _travelTime.value = t; - return this; - } - CreateAssignmentVariablesBuilder mealProvided(bool? t) { - _mealProvided.value = t; - return this; - } - CreateAssignmentVariablesBuilder parkingAvailable(bool? t) { - _parkingAvailable.value = t; - return this; - } - CreateAssignmentVariablesBuilder gasCompensation(bool? t) { - _gasCompensation.value = t; - return this; - } - CreateAssignmentVariablesBuilder managers(List? t) { - _managers.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createAssignment( - workforceId: workforceId, - roleId: roleId, - shiftId: shiftId, -) -.title(title) -.description(description) -.instructions(instructions) -.status(status) -.tipsAvailable(tipsAvailable) -.travelTime(travelTime) -.mealProvided(mealProvided) -.parkingAvailable(parkingAvailable) -.gasCompensation(gasCompensation) -.managers(managers) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createAssignment( - workforceId: workforceId, - roleId: roleId, - shiftId: shiftId, -); -CreateAssignmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String workforceId = ...; -String roleId = ...; -String shiftId = ...; - -final ref = ExampleConnector.instance.createAssignment( - workforceId: workforceId, - roleId: roleId, - shiftId: shiftId, -).ref(); -ref.execute(); -``` - - -### UpdateAssignment -#### Required Arguments -```dart -String id = ...; -String roleId = ...; -String shiftId = ...; -ExampleConnector.instance.updateAssignment( - id: id, - roleId: roleId, - shiftId: shiftId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For UpdateAssignment, we created `UpdateAssignmentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateAssignmentVariablesBuilder { - ... - UpdateAssignmentVariablesBuilder title(String? t) { - _title.value = t; - return this; - } - UpdateAssignmentVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - UpdateAssignmentVariablesBuilder instructions(String? t) { - _instructions.value = t; - return this; - } - UpdateAssignmentVariablesBuilder status(AssignmentStatus? t) { - _status.value = t; - return this; - } - UpdateAssignmentVariablesBuilder tipsAvailable(bool? t) { - _tipsAvailable.value = t; - return this; - } - UpdateAssignmentVariablesBuilder travelTime(bool? t) { - _travelTime.value = t; - return this; - } - UpdateAssignmentVariablesBuilder mealProvided(bool? t) { - _mealProvided.value = t; - return this; - } - UpdateAssignmentVariablesBuilder parkingAvailable(bool? t) { - _parkingAvailable.value = t; - return this; - } - UpdateAssignmentVariablesBuilder gasCompensation(bool? t) { - _gasCompensation.value = t; - return this; - } - UpdateAssignmentVariablesBuilder managers(List? t) { - _managers.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateAssignment( - id: id, - roleId: roleId, - shiftId: shiftId, -) -.title(title) -.description(description) -.instructions(instructions) -.status(status) -.tipsAvailable(tipsAvailable) -.travelTime(travelTime) -.mealProvided(mealProvided) -.parkingAvailable(parkingAvailable) -.gasCompensation(gasCompensation) -.managers(managers) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateAssignment( - id: id, - roleId: roleId, - shiftId: shiftId, -); -UpdateAssignmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; -String roleId = ...; -String shiftId = ...; - -final ref = ExampleConnector.instance.updateAssignment( - id: id, - roleId: roleId, - shiftId: shiftId, -).ref(); -ref.execute(); -``` - - -### DeleteAssignment -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteAssignment( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteAssignment( - id: id, -); -DeleteAssignmentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteAssignment( - id: id, -).ref(); -ref.execute(); -``` - - -### createCustomRateCard +### createEmergencyContact #### Required Arguments ```dart String name = ...; -ExampleConnector.instance.createCustomRateCard( +String phone = ...; +RelationshipType relationship = ...; +String staffId = ...; +ExampleConnector.instance.createEmergencyContact( name: name, + phone: phone, + relationship: relationship, + staffId: staffId, ).execute(); ``` -#### Optional Arguments -We return a builder for each query. For createCustomRateCard, we created `createCustomRateCardBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateCustomRateCardVariablesBuilder { - ... - CreateCustomRateCardVariablesBuilder baseBook(String? t) { - _baseBook.value = t; - return this; - } - CreateCustomRateCardVariablesBuilder discount(double? t) { - _discount.value = t; - return this; - } - CreateCustomRateCardVariablesBuilder isDefault(bool? t) { - _isDefault.value = t; - return this; - } - ... -} -ExampleConnector.instance.createCustomRateCard( - name: name, -) -.baseBook(baseBook) -.discount(discount) -.isDefault(isDefault) -.execute(); -``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -22215,10 +23570,13 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createCustomRateCard( +final result = await ExampleConnector.instance.createEmergencyContact( name: name, + phone: phone, + relationship: relationship, + staffId: staffId, ); -createCustomRateCardData data = result.data; +createEmergencyContactData data = result.data; final ref = result.ref; ``` @@ -22227,60 +23585,61 @@ Each builder returns an `execute` function, which is a helper function that crea An example of how to use the `Ref` object is shown below: ```dart String name = ...; +String phone = ...; +RelationshipType relationship = ...; +String staffId = ...; -final ref = ExampleConnector.instance.createCustomRateCard( +final ref = ExampleConnector.instance.createEmergencyContact( name: name, + phone: phone, + relationship: relationship, + staffId: staffId, ).ref(); ref.execute(); ``` -### updateCustomRateCard +### updateEmergencyContact #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.updateCustomRateCard( +ExampleConnector.instance.updateEmergencyContact( id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateCustomRateCard, we created `updateCustomRateCardBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For updateEmergencyContact, we created `updateEmergencyContactBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateCustomRateCardVariablesBuilder { +class UpdateEmergencyContactVariablesBuilder { ... - UpdateCustomRateCardVariablesBuilder name(String? t) { + UpdateEmergencyContactVariablesBuilder name(String? t) { _name.value = t; return this; } - UpdateCustomRateCardVariablesBuilder baseBook(String? t) { - _baseBook.value = t; + UpdateEmergencyContactVariablesBuilder phone(String? t) { + _phone.value = t; return this; } - UpdateCustomRateCardVariablesBuilder discount(double? t) { - _discount.value = t; - return this; - } - UpdateCustomRateCardVariablesBuilder isDefault(bool? t) { - _isDefault.value = t; + UpdateEmergencyContactVariablesBuilder relationship(RelationshipType? t) { + _relationship.value = t; return this; } ... } -ExampleConnector.instance.updateCustomRateCard( +ExampleConnector.instance.updateEmergencyContact( id: id, ) .name(name) -.baseBook(baseBook) -.discount(discount) -.isDefault(isDefault) +.phone(phone) +.relationship(relationship) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -22290,10 +23649,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateCustomRateCard( +final result = await ExampleConnector.instance.updateEmergencyContact( id: id, ); -updateCustomRateCardData data = result.data; +updateEmergencyContactData data = result.data; final ref = result.ref; ``` @@ -22303,18 +23662,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateCustomRateCard( +final ref = ExampleConnector.instance.updateEmergencyContact( id: id, ).ref(); ref.execute(); ``` -### deleteCustomRateCard +### deleteEmergencyContact #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteCustomRateCard( +ExampleConnector.instance.deleteEmergencyContact( id: id, ).execute(); ``` @@ -22322,7 +23681,7 @@ ExampleConnector.instance.deleteCustomRateCard( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -22332,10 +23691,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteCustomRateCard( +final result = await ExampleConnector.instance.deleteEmergencyContact( id: id, ); -deleteCustomRateCardData data = result.data; +deleteEmergencyContactData data = result.data; final ref = result.ref; ``` @@ -22345,7 +23704,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteCustomRateCard( +final ref = ExampleConnector.instance.deleteEmergencyContact( id: id, ).ref(); ref.execute(); @@ -22700,51 +24059,55 @@ ref.execute(); ``` -### createStaffDocument +### CreateUser #### Required Arguments ```dart -String staffId = ...; -String staffName = ...; -String documentId = ...; -DocumentStatus status = ...; -ExampleConnector.instance.createStaffDocument( - staffId: staffId, - staffName: staffName, - documentId: documentId, - status: status, +String id = ...; +UserBaseRole role = ...; +ExampleConnector.instance.createUser( + id: id, + role: role, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For createStaffDocument, we created `createStaffDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For CreateUser, we created `CreateUserBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class CreateStaffDocumentVariablesBuilder { +class CreateUserVariablesBuilder { ... - CreateStaffDocumentVariablesBuilder documentUrl(String? t) { - _documentUrl.value = t; + CreateUserVariablesBuilder email(String? t) { + _email.value = t; return this; } - CreateStaffDocumentVariablesBuilder expiryDate(Timestamp? t) { - _expiryDate.value = t; + CreateUserVariablesBuilder fullName(String? t) { + _fullName.value = t; + return this; + } + CreateUserVariablesBuilder userRole(String? t) { + _userRole.value = t; + return this; + } + CreateUserVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; return this; } ... } -ExampleConnector.instance.createStaffDocument( - staffId: staffId, - staffName: staffName, - documentId: documentId, - status: status, +ExampleConnector.instance.createUser( + id: id, + role: role, ) -.documentUrl(documentUrl) -.expiryDate(expiryDate) +.email(email) +.fullName(fullName) +.userRole(userRole) +.photoUrl(photoUrl) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -22754,13 +24117,11 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.createStaffDocument( - staffId: staffId, - staffName: staffName, - documentId: documentId, - status: status, +final result = await ExampleConnector.instance.createUser( + id: id, + role: role, ); -createStaffDocumentData data = result.data; +CreateUserData data = result.data; final ref = result.ref; ``` @@ -22768,65 +24129,252 @@ final ref = result.ref; Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. An example of how to use the `Ref` object is shown below: ```dart -String staffId = ...; -String staffName = ...; -String documentId = ...; -DocumentStatus status = ...; +String id = ...; +UserBaseRole role = ...; -final ref = ExampleConnector.instance.createStaffDocument( - staffId: staffId, - staffName: staffName, - documentId: documentId, - status: status, +final ref = ExampleConnector.instance.createUser( + id: id, + role: role, ).ref(); ref.execute(); ``` -### updateStaffDocument +### UpdateUser #### Required Arguments ```dart -String staffId = ...; -String documentId = ...; -ExampleConnector.instance.updateStaffDocument( - staffId: staffId, - documentId: documentId, +String id = ...; +ExampleConnector.instance.updateUser( + id: id, ).execute(); ``` #### Optional Arguments -We return a builder for each query. For updateStaffDocument, we created `updateStaffDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. +We return a builder for each query. For UpdateUser, we created `UpdateUserBuilder`. For queries and mutations with optional parameters, we return a builder class. The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: ```dart -class UpdateStaffDocumentVariablesBuilder { +class UpdateUserVariablesBuilder { ... - UpdateStaffDocumentVariablesBuilder status(DocumentStatus? t) { + UpdateUserVariablesBuilder email(String? t) { + _email.value = t; + return this; + } + UpdateUserVariablesBuilder fullName(String? t) { + _fullName.value = t; + return this; + } + UpdateUserVariablesBuilder role(UserBaseRole? t) { + _role.value = t; + return this; + } + UpdateUserVariablesBuilder userRole(String? t) { + _userRole.value = t; + return this; + } + UpdateUserVariablesBuilder photoUrl(String? t) { + _photoUrl.value = t; + return this; + } + + ... +} +ExampleConnector.instance.updateUser( + id: id, +) +.email(email) +.fullName(fullName) +.role(role) +.userRole(userRole) +.photoUrl(photoUrl) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.updateUser( + id: id, +); +UpdateUserData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.updateUser( + id: id, +).ref(); +ref.execute(); +``` + + +### DeleteUser +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.deleteUser( + id: id, +).execute(); +``` + + + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.deleteUser( + id: id, +); +DeleteUserData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String id = ...; + +final ref = ExampleConnector.instance.deleteUser( + id: id, +).ref(); +ref.execute(); +``` + + +### createWorkforce +#### Required Arguments +```dart +String vendorId = ...; +String staffId = ...; +String workforceNumber = ...; +ExampleConnector.instance.createWorkforce( + vendorId: vendorId, + staffId: staffId, + workforceNumber: workforceNumber, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For createWorkforce, we created `createWorkforceBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class CreateWorkforceVariablesBuilder { + ... + CreateWorkforceVariablesBuilder employmentType(WorkforceEmploymentType? t) { + _employmentType.value = t; + return this; + } + + ... +} +ExampleConnector.instance.createWorkforce( + vendorId: vendorId, + staffId: staffId, + workforceNumber: workforceNumber, +) +.employmentType(employmentType) +.execute(); +``` + +#### Return Type +`execute()` returns a `OperationResult` +```dart +/// Result of an Operation Request (query/mutation). +class OperationResult { + OperationResult(this.dataConnect, this.data, this.ref); + Data data; + OperationRef ref; + FirebaseDataConnect dataConnect; +} + +final result = await ExampleConnector.instance.createWorkforce( + vendorId: vendorId, + staffId: staffId, + workforceNumber: workforceNumber, +); +createWorkforceData data = result.data; +final ref = result.ref; +``` + +#### Getting the Ref +Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. +An example of how to use the `Ref` object is shown below: +```dart +String vendorId = ...; +String staffId = ...; +String workforceNumber = ...; + +final ref = ExampleConnector.instance.createWorkforce( + vendorId: vendorId, + staffId: staffId, + workforceNumber: workforceNumber, +).ref(); +ref.execute(); +``` + + +### updateWorkforce +#### Required Arguments +```dart +String id = ...; +ExampleConnector.instance.updateWorkforce( + id: id, +).execute(); +``` + +#### Optional Arguments +We return a builder for each query. For updateWorkforce, we created `updateWorkforceBuilder`. For queries and mutations with optional parameters, we return a builder class. +The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: +```dart +class UpdateWorkforceVariablesBuilder { + ... + UpdateWorkforceVariablesBuilder workforceNumber(String? t) { + _workforceNumber.value = t; + return this; + } + UpdateWorkforceVariablesBuilder employmentType(WorkforceEmploymentType? t) { + _employmentType.value = t; + return this; + } + UpdateWorkforceVariablesBuilder status(WorkforceStatus? t) { _status.value = t; return this; } - UpdateStaffDocumentVariablesBuilder documentUrl(String? t) { - _documentUrl.value = t; - return this; - } - UpdateStaffDocumentVariablesBuilder expiryDate(Timestamp? t) { - _expiryDate.value = t; - return this; - } ... } -ExampleConnector.instance.updateStaffDocument( - staffId: staffId, - documentId: documentId, +ExampleConnector.instance.updateWorkforce( + id: id, ) +.workforceNumber(workforceNumber) +.employmentType(employmentType) .status(status) -.documentUrl(documentUrl) -.expiryDate(expiryDate) .execute(); ``` #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -22836,196 +24384,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.updateStaffDocument( - staffId: staffId, - documentId: documentId, -); -updateStaffDocumentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String documentId = ...; - -final ref = ExampleConnector.instance.updateStaffDocument( - staffId: staffId, - documentId: documentId, -).ref(); -ref.execute(); -``` - - -### deleteStaffDocument -#### Required Arguments -```dart -String staffId = ...; -String documentId = ...; -ExampleConnector.instance.deleteStaffDocument( - staffId: staffId, - documentId: documentId, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteStaffDocument( - staffId: staffId, - documentId: documentId, -); -deleteStaffDocumentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String staffId = ...; -String documentId = ...; - -final ref = ExampleConnector.instance.deleteStaffDocument( - staffId: staffId, - documentId: documentId, -).ref(); -ref.execute(); -``` - - -### createCategory -#### Required Arguments -```dart -String categoryId = ...; -String label = ...; -ExampleConnector.instance.createCategory( - categoryId: categoryId, - label: label, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createCategory, we created `createCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateCategoryVariablesBuilder { - ... - CreateCategoryVariablesBuilder icon(String? t) { - _icon.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createCategory( - categoryId: categoryId, - label: label, -) -.icon(icon) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createCategory( - categoryId: categoryId, - label: label, -); -createCategoryData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String categoryId = ...; -String label = ...; - -final ref = ExampleConnector.instance.createCategory( - categoryId: categoryId, - label: label, -).ref(); -ref.execute(); -``` - - -### updateCategory -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateCategory( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateCategory, we created `updateCategoryBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateCategoryVariablesBuilder { - ... - UpdateCategoryVariablesBuilder categoryId(String? t) { - _categoryId.value = t; - return this; - } - UpdateCategoryVariablesBuilder label(String? t) { - _label.value = t; - return this; - } - UpdateCategoryVariablesBuilder icon(String? t) { - _icon.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateCategory( - id: id, -) -.categoryId(categoryId) -.label(label) -.icon(icon) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateCategory( +final result = await ExampleConnector.instance.updateWorkforce( id: id, ); -updateCategoryData data = result.data; +updateWorkforceData data = result.data; final ref = result.ref; ``` @@ -23035,18 +24397,18 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.updateCategory( +final ref = ExampleConnector.instance.updateWorkforce( id: id, ).ref(); ref.execute(); ``` -### deleteCategory +### deactivateWorkforce #### Required Arguments ```dart String id = ...; -ExampleConnector.instance.deleteCategory( +ExampleConnector.instance.deactivateWorkforce( id: id, ).execute(); ``` @@ -23054,7 +24416,7 @@ ExampleConnector.instance.deleteCategory( #### Return Type -`execute()` returns a `OperationResult` +`execute()` returns a `OperationResult` ```dart /// Result of an Operation Request (query/mutation). class OperationResult { @@ -23064,10 +24426,10 @@ class OperationResult { FirebaseDataConnect dataConnect; } -final result = await ExampleConnector.instance.deleteCategory( +final result = await ExampleConnector.instance.deactivateWorkforce( id: id, ); -deleteCategoryData data = result.data; +deactivateWorkforceData data = result.data; final ref = result.ref; ``` @@ -23077,1072 +24439,7 @@ An example of how to use the `Ref` object is shown below: ```dart String id = ...; -final ref = ExampleConnector.instance.deleteCategory( - id: id, -).ref(); -ref.execute(); -``` - - -### createHub -#### Required Arguments -```dart -String name = ...; -String ownerId = ...; -ExampleConnector.instance.createHub( - name: name, - ownerId: ownerId, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createHub, we created `createHubBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateHubVariablesBuilder { - ... - CreateHubVariablesBuilder locationName(String? t) { - _locationName.value = t; - return this; - } - CreateHubVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - CreateHubVariablesBuilder nfcTagId(String? t) { - _nfcTagId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createHub( - name: name, - ownerId: ownerId, -) -.locationName(locationName) -.address(address) -.nfcTagId(nfcTagId) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createHub( - name: name, - ownerId: ownerId, -); -createHubData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String name = ...; -String ownerId = ...; - -final ref = ExampleConnector.instance.createHub( - name: name, - ownerId: ownerId, -).ref(); -ref.execute(); -``` - - -### updateHub -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateHub( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateHub, we created `updateHubBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateHubVariablesBuilder { - ... - UpdateHubVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - UpdateHubVariablesBuilder locationName(String? t) { - _locationName.value = t; - return this; - } - UpdateHubVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - UpdateHubVariablesBuilder nfcTagId(String? t) { - _nfcTagId.value = t; - return this; - } - UpdateHubVariablesBuilder ownerId(String? t) { - _ownerId.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateHub( - id: id, -) -.name(name) -.locationName(locationName) -.address(address) -.nfcTagId(nfcTagId) -.ownerId(ownerId) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateHub( - id: id, -); -updateHubData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateHub( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteHub -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteHub( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteHub( - id: id, -); -deleteHubData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteHub( - id: id, -).ref(); -ref.execute(); -``` - - -### createTaskComment -#### Required Arguments -```dart -String taskId = ...; -String teamMemberId = ...; -String comment = ...; -ExampleConnector.instance.createTaskComment( - taskId: taskId, - teamMemberId: teamMemberId, - comment: comment, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createTaskComment, we created `createTaskCommentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateTaskCommentVariablesBuilder { - ... - CreateTaskCommentVariablesBuilder isSystem(bool? t) { - _isSystem.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createTaskComment( - taskId: taskId, - teamMemberId: teamMemberId, - comment: comment, -) -.isSystem(isSystem) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createTaskComment( - taskId: taskId, - teamMemberId: teamMemberId, - comment: comment, -); -createTaskCommentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String taskId = ...; -String teamMemberId = ...; -String comment = ...; - -final ref = ExampleConnector.instance.createTaskComment( - taskId: taskId, - teamMemberId: teamMemberId, - comment: comment, -).ref(); -ref.execute(); -``` - - -### updateTaskComment -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateTaskComment( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateTaskComment, we created `updateTaskCommentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateTaskCommentVariablesBuilder { - ... - UpdateTaskCommentVariablesBuilder comment(String? t) { - _comment.value = t; - return this; - } - UpdateTaskCommentVariablesBuilder isSystem(bool? t) { - _isSystem.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateTaskComment( - id: id, -) -.comment(comment) -.isSystem(isSystem) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateTaskComment( - id: id, -); -updateTaskCommentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateTaskComment( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteTaskComment -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteTaskComment( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteTaskComment( - id: id, -); -deleteTaskCommentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteTaskComment( - id: id, -).ref(); -ref.execute(); -``` - - -### createDocument -#### Required Arguments -```dart -DocumentType documentType = ...; -String name = ...; -ExampleConnector.instance.createDocument( - documentType: documentType, - name: name, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createDocument, we created `createDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateDocumentVariablesBuilder { - ... - CreateDocumentVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createDocument( - documentType: documentType, - name: name, -) -.description(description) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createDocument( - documentType: documentType, - name: name, -); -createDocumentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -DocumentType documentType = ...; -String name = ...; - -final ref = ExampleConnector.instance.createDocument( - documentType: documentType, - name: name, -).ref(); -ref.execute(); -``` - - -### updateDocument -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateDocument( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateDocument, we created `updateDocumentBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateDocumentVariablesBuilder { - ... - UpdateDocumentVariablesBuilder documentType(DocumentType? t) { - _documentType.value = t; - return this; - } - UpdateDocumentVariablesBuilder name(String? t) { - _name.value = t; - return this; - } - UpdateDocumentVariablesBuilder description(String? t) { - _description.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateDocument( - id: id, -) -.documentType(documentType) -.name(name) -.description(description) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateDocument( - id: id, -); -updateDocumentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateDocument( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteDocument -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteDocument( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteDocument( - id: id, -); -deleteDocumentData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteDocument( - id: id, -).ref(); -ref.execute(); -``` - - -### createVendor -#### Required Arguments -```dart -String userId = ...; -String companyName = ...; -ExampleConnector.instance.createVendor( - userId: userId, - companyName: companyName, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createVendor, we created `createVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateVendorVariablesBuilder { - ... - CreateVendorVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - CreateVendorVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - CreateVendorVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; - return this; - } - CreateVendorVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - CreateVendorVariablesBuilder billingAddress(String? t) { - _billingAddress.value = t; - return this; - } - CreateVendorVariablesBuilder timezone(String? t) { - _timezone.value = t; - return this; - } - CreateVendorVariablesBuilder legalName(String? t) { - _legalName.value = t; - return this; - } - CreateVendorVariablesBuilder doingBusinessAs(String? t) { - _doingBusinessAs.value = t; - return this; - } - CreateVendorVariablesBuilder region(String? t) { - _region.value = t; - return this; - } - CreateVendorVariablesBuilder state(String? t) { - _state.value = t; - return this; - } - CreateVendorVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - CreateVendorVariablesBuilder serviceSpecialty(String? t) { - _serviceSpecialty.value = t; - return this; - } - CreateVendorVariablesBuilder approvalStatus(ApprovalStatus? t) { - _approvalStatus.value = t; - return this; - } - CreateVendorVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - CreateVendorVariablesBuilder markup(double? t) { - _markup.value = t; - return this; - } - CreateVendorVariablesBuilder fee(double? t) { - _fee.value = t; - return this; - } - CreateVendorVariablesBuilder csat(double? t) { - _csat.value = t; - return this; - } - CreateVendorVariablesBuilder tier(VendorTier? t) { - _tier.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createVendor( - userId: userId, - companyName: companyName, -) -.email(email) -.phone(phone) -.photoUrl(photoUrl) -.address(address) -.billingAddress(billingAddress) -.timezone(timezone) -.legalName(legalName) -.doingBusinessAs(doingBusinessAs) -.region(region) -.state(state) -.city(city) -.serviceSpecialty(serviceSpecialty) -.approvalStatus(approvalStatus) -.isActive(isActive) -.markup(markup) -.fee(fee) -.csat(csat) -.tier(tier) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createVendor( - userId: userId, - companyName: companyName, -); -createVendorData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String userId = ...; -String companyName = ...; - -final ref = ExampleConnector.instance.createVendor( - userId: userId, - companyName: companyName, -).ref(); -ref.execute(); -``` - - -### updateVendor -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateVendor( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateVendor, we created `updateVendorBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateVendorVariablesBuilder { - ... - UpdateVendorVariablesBuilder companyName(String? t) { - _companyName.value = t; - return this; - } - UpdateVendorVariablesBuilder email(String? t) { - _email.value = t; - return this; - } - UpdateVendorVariablesBuilder phone(String? t) { - _phone.value = t; - return this; - } - UpdateVendorVariablesBuilder photoUrl(String? t) { - _photoUrl.value = t; - return this; - } - UpdateVendorVariablesBuilder address(String? t) { - _address.value = t; - return this; - } - UpdateVendorVariablesBuilder billingAddress(String? t) { - _billingAddress.value = t; - return this; - } - UpdateVendorVariablesBuilder timezone(String? t) { - _timezone.value = t; - return this; - } - UpdateVendorVariablesBuilder legalName(String? t) { - _legalName.value = t; - return this; - } - UpdateVendorVariablesBuilder doingBusinessAs(String? t) { - _doingBusinessAs.value = t; - return this; - } - UpdateVendorVariablesBuilder region(String? t) { - _region.value = t; - return this; - } - UpdateVendorVariablesBuilder state(String? t) { - _state.value = t; - return this; - } - UpdateVendorVariablesBuilder city(String? t) { - _city.value = t; - return this; - } - UpdateVendorVariablesBuilder serviceSpecialty(String? t) { - _serviceSpecialty.value = t; - return this; - } - UpdateVendorVariablesBuilder approvalStatus(ApprovalStatus? t) { - _approvalStatus.value = t; - return this; - } - UpdateVendorVariablesBuilder isActive(bool? t) { - _isActive.value = t; - return this; - } - UpdateVendorVariablesBuilder markup(double? t) { - _markup.value = t; - return this; - } - UpdateVendorVariablesBuilder fee(double? t) { - _fee.value = t; - return this; - } - UpdateVendorVariablesBuilder csat(double? t) { - _csat.value = t; - return this; - } - UpdateVendorVariablesBuilder tier(VendorTier? t) { - _tier.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateVendor( - id: id, -) -.companyName(companyName) -.email(email) -.phone(phone) -.photoUrl(photoUrl) -.address(address) -.billingAddress(billingAddress) -.timezone(timezone) -.legalName(legalName) -.doingBusinessAs(doingBusinessAs) -.region(region) -.state(state) -.city(city) -.serviceSpecialty(serviceSpecialty) -.approvalStatus(approvalStatus) -.isActive(isActive) -.markup(markup) -.fee(fee) -.csat(csat) -.tier(tier) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateVendor( - id: id, -); -updateVendorData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateVendor( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteVendor -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteVendor( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteVendor( - id: id, -); -deleteVendorData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteVendor( - id: id, -).ref(); -ref.execute(); -``` - - -### createFaqData -#### Required Arguments -```dart -String category = ...; -ExampleConnector.instance.createFaqData( - category: category, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For createFaqData, we created `createFaqDataBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class CreateFaqDataVariablesBuilder { - ... - CreateFaqDataVariablesBuilder questions(List? t) { - _questions.value = t; - return this; - } - - ... -} -ExampleConnector.instance.createFaqData( - category: category, -) -.questions(questions) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.createFaqData( - category: category, -); -createFaqDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String category = ...; - -final ref = ExampleConnector.instance.createFaqData( - category: category, -).ref(); -ref.execute(); -``` - - -### updateFaqData -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.updateFaqData( - id: id, -).execute(); -``` - -#### Optional Arguments -We return a builder for each query. For updateFaqData, we created `updateFaqDataBuilder`. For queries and mutations with optional parameters, we return a builder class. -The builder pattern allows Data Connect to distinguish between fields that haven't been set and fields that have been set to null. A field can be set by calling its respective setter method like below: -```dart -class UpdateFaqDataVariablesBuilder { - ... - UpdateFaqDataVariablesBuilder category(String? t) { - _category.value = t; - return this; - } - UpdateFaqDataVariablesBuilder questions(List? t) { - _questions.value = t; - return this; - } - - ... -} -ExampleConnector.instance.updateFaqData( - id: id, -) -.category(category) -.questions(questions) -.execute(); -``` - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.updateFaqData( - id: id, -); -updateFaqDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.updateFaqData( - id: id, -).ref(); -ref.execute(); -``` - - -### deleteFaqData -#### Required Arguments -```dart -String id = ...; -ExampleConnector.instance.deleteFaqData( - id: id, -).execute(); -``` - - - -#### Return Type -`execute()` returns a `OperationResult` -```dart -/// Result of an Operation Request (query/mutation). -class OperationResult { - OperationResult(this.dataConnect, this.data, this.ref); - Data data; - OperationRef ref; - FirebaseDataConnect dataConnect; -} - -final result = await ExampleConnector.instance.deleteFaqData( - id: id, -); -deleteFaqDataData data = result.data; -final ref = result.ref; -``` - -#### Getting the Ref -Each builder returns an `execute` function, which is a helper function that creates a `Ref` object, and executes the underlying operation. -An example of how to use the `Ref` object is shown below: -```dart -String id = ...; - -final ref = ExampleConnector.instance.deleteFaqData( +final ref = ExampleConnector.instance.deactivateWorkforce( id: id, ).ref(); ref.execute(); diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_account.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_account.dart index c1bc9a4d..e0548c54 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_account.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_account.dart @@ -6,11 +6,26 @@ class CreateAccountVariablesBuilder { String last4; Optional _isPrimary = Optional.optional(nativeFromJson, nativeToJson); String ownerId; + Optional _accountNumber = Optional.optional(nativeFromJson, nativeToJson); + Optional _routeNumber = Optional.optional(nativeFromJson, nativeToJson); + Optional _expiryTime = Optional.optional((json) => json['expiryTime'] = Timestamp.fromJson(json['expiryTime']), defaultSerializer); final FirebaseDataConnect _dataConnect; CreateAccountVariablesBuilder isPrimary(bool? t) { _isPrimary.value = t; return this; } + CreateAccountVariablesBuilder accountNumber(String? t) { + _accountNumber.value = t; + return this; + } + CreateAccountVariablesBuilder routeNumber(String? t) { + _routeNumber.value = t; + return this; + } + CreateAccountVariablesBuilder expiryTime(Timestamp? t) { + _expiryTime.value = t; + return this; + } CreateAccountVariablesBuilder(this._dataConnect, {required this.bank,required this.type,required this.last4,required this.ownerId,}); Deserializer dataDeserializer = (dynamic json) => CreateAccountData.fromJson(jsonDecode(json)); @@ -20,7 +35,7 @@ class CreateAccountVariablesBuilder { } MutationRef ref() { - CreateAccountVariables vars= CreateAccountVariables(bank: bank,type: type,last4: last4,isPrimary: _isPrimary,ownerId: ownerId,); + CreateAccountVariables vars= CreateAccountVariables(bank: bank,type: type,last4: last4,isPrimary: _isPrimary,ownerId: ownerId,accountNumber: _accountNumber,routeNumber: _routeNumber,expiryTime: _expiryTime,); return _dataConnect.mutation("createAccount", dataDeserializer, varsSerializer, vars); } } @@ -100,6 +115,9 @@ class CreateAccountVariables { final String last4; late final OptionalisPrimary; final String ownerId; + late final OptionalaccountNumber; + late final OptionalrouteNumber; + late final OptionalexpiryTime; @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') CreateAccountVariables.fromJson(Map json): @@ -116,6 +134,18 @@ class CreateAccountVariables { isPrimary.value = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']); + + accountNumber = Optional.optional(nativeFromJson, nativeToJson); + accountNumber.value = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']); + + + routeNumber = Optional.optional(nativeFromJson, nativeToJson); + routeNumber.value = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']); + + + expiryTime = Optional.optional((json) => json['expiryTime'] = Timestamp.fromJson(json['expiryTime']), defaultSerializer); + expiryTime.value = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']); + } @override bool operator ==(Object other) { @@ -131,11 +161,14 @@ class CreateAccountVariables { type == otherTyped.type && last4 == otherTyped.last4 && isPrimary == otherTyped.isPrimary && - ownerId == otherTyped.ownerId; + ownerId == otherTyped.ownerId && + accountNumber == otherTyped.accountNumber && + routeNumber == otherTyped.routeNumber && + expiryTime == otherTyped.expiryTime; } @override - int get hashCode => Object.hashAll([bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode]); + int get hashCode => Object.hashAll([bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, accountNumber.hashCode, routeNumber.hashCode, expiryTime.hashCode]); Map toJson() { @@ -149,6 +182,15 @@ class CreateAccountVariables { json['isPrimary'] = isPrimary.toJson(); } json['ownerId'] = nativeToJson(ownerId); + if(accountNumber.state == OptionalState.set) { + json['accountNumber'] = accountNumber.toJson(); + } + if(routeNumber.state == OptionalState.set) { + json['routeNumber'] = routeNumber.toJson(); + } + if(expiryTime.state == OptionalState.set) { + json['expiryTime'] = expiryTime.toJson(); + } return json; } @@ -158,6 +200,9 @@ class CreateAccountVariables { required this.last4, required this.isPrimary, required this.ownerId, + required this.accountNumber, + required this.routeNumber, + required this.expiryTime, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_staff.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_staff.dart index 67fa5264..a7a43e93 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_staff.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/create_staff.dart @@ -15,8 +15,9 @@ class CreateStaffVariablesBuilder { Optional _cancellationCount = Optional.optional(nativeFromJson, nativeToJson); Optional _reliabilityScore = Optional.optional(nativeFromJson, nativeToJson); Optional _bio = Optional.optional(nativeFromJson, nativeToJson); - Optional _industries = Optional.optional(AnyValue.fromJson, defaultSerializer); - Optional _preferredLocations = Optional.optional(AnyValue.fromJson, defaultSerializer); + Optional> _skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + Optional> _industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + Optional> _preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); Optional _maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson); Optional _languages = Optional.optional(AnyValue.fromJson, defaultSerializer); Optional _itemsAttire = Optional.optional(AnyValue.fromJson, defaultSerializer); @@ -83,11 +84,15 @@ class CreateStaffVariablesBuilder { _bio.value = t; return this; } - CreateStaffVariablesBuilder industries(AnyValue? t) { + CreateStaffVariablesBuilder skills(List? t) { + _skills.value = t; + return this; + } + CreateStaffVariablesBuilder industries(List? t) { _industries.value = t; return this; } - CreateStaffVariablesBuilder preferredLocations(AnyValue? t) { + CreateStaffVariablesBuilder preferredLocations(List? t) { _preferredLocations.value = t; return this; } @@ -168,7 +173,7 @@ class CreateStaffVariablesBuilder { } MutationRef ref() { - CreateStaffVariables vars= CreateStaffVariables(userId: userId,fullName: fullName,level: _level,role: _role,phone: _phone,email: _email,photoUrl: _photoUrl,totalShifts: _totalShifts,averageRating: _averageRating,onTimeRate: _onTimeRate,noShowCount: _noShowCount,cancellationCount: _cancellationCount,reliabilityScore: _reliabilityScore,bio: _bio,industries: _industries,preferredLocations: _preferredLocations,maxDistanceMiles: _maxDistanceMiles,languages: _languages,itemsAttire: _itemsAttire,xp: _xp,badges: _badges,isRecommended: _isRecommended,ownerId: _ownerId,department: _department,hubId: _hubId,manager: _manager,english: _english,backgroundCheckStatus: _backgroundCheckStatus,employmentType: _employmentType,initial: _initial,englishRequired: _englishRequired,city: _city,addres: _addres,); + CreateStaffVariables vars= CreateStaffVariables(userId: userId,fullName: fullName,level: _level,role: _role,phone: _phone,email: _email,photoUrl: _photoUrl,totalShifts: _totalShifts,averageRating: _averageRating,onTimeRate: _onTimeRate,noShowCount: _noShowCount,cancellationCount: _cancellationCount,reliabilityScore: _reliabilityScore,bio: _bio,skills: _skills,industries: _industries,preferredLocations: _preferredLocations,maxDistanceMiles: _maxDistanceMiles,languages: _languages,itemsAttire: _itemsAttire,xp: _xp,badges: _badges,isRecommended: _isRecommended,ownerId: _ownerId,department: _department,hubId: _hubId,manager: _manager,english: _english,backgroundCheckStatus: _backgroundCheckStatus,employmentType: _employmentType,initial: _initial,englishRequired: _englishRequired,city: _city,addres: _addres,); return _dataConnect.mutation("CreateStaff", dataDeserializer, varsSerializer, vars); } } @@ -257,8 +262,9 @@ class CreateStaffVariables { late final OptionalcancellationCount; late final OptionalreliabilityScore; late final Optionalbio; - late final Optionalindustries; - late final OptionalpreferredLocations; + late final Optional>skills; + late final Optional>industries; + late final Optional>preferredLocations; late final OptionalmaxDistanceMiles; late final Optionallanguages; late final OptionalitemsAttire; @@ -333,12 +339,22 @@ class CreateStaffVariables { bio.value = json['bio'] == null ? null : nativeFromJson(json['bio']); - industries = Optional.optional(AnyValue.fromJson, defaultSerializer); - industries.value = json['industries'] == null ? null : AnyValue.fromJson(json['industries']); + skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + skills.value = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(); - preferredLocations = Optional.optional(AnyValue.fromJson, defaultSerializer); - preferredLocations.value = json['preferredLocations'] == null ? null : AnyValue.fromJson(json['preferredLocations']); + industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + industries.value = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(); + + + preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + preferredLocations.value = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List) + .map((e) => nativeFromJson(e)) + .toList(); maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson); @@ -433,6 +449,7 @@ class CreateStaffVariables { cancellationCount == otherTyped.cancellationCount && reliabilityScore == otherTyped.reliabilityScore && bio == otherTyped.bio && + skills == otherTyped.skills && industries == otherTyped.industries && preferredLocations == otherTyped.preferredLocations && maxDistanceMiles == otherTyped.maxDistanceMiles && @@ -455,7 +472,7 @@ class CreateStaffVariables { } @override - int get hashCode => Object.hashAll([userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, bio.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, ownerId.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, bio.hashCode, skills.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, ownerId.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -498,6 +515,9 @@ class CreateStaffVariables { if(bio.state == OptionalState.set) { json['bio'] = bio.toJson(); } + if(skills.state == OptionalState.set) { + json['skills'] = skills.toJson(); + } if(industries.state == OptionalState.set) { json['industries'] = industries.toJson(); } @@ -573,6 +593,7 @@ class CreateStaffVariables { required this.cancellationCount, required this.reliabilityScore, required this.bio, + required this.skills, required this.industries, required this.preferredLocations, required this.maxDistanceMiles, diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_accounts.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_accounts.dart index 6c190c86..36d67464 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_accounts.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_accounts.dart @@ -45,6 +45,9 @@ class FilterAccountsAccounts { final String last4; final bool? isPrimary; final String ownerId; + final String? accountNumber; + final Timestamp? expiryTime; + final String? routeNumber; FilterAccountsAccounts.fromJson(dynamic json): id = nativeFromJson(json['id']), @@ -52,7 +55,10 @@ class FilterAccountsAccounts { type = accountTypeDeserializer(json['type']), last4 = nativeFromJson(json['last4']), isPrimary = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']), - ownerId = nativeFromJson(json['ownerId']); + ownerId = nativeFromJson(json['ownerId']), + accountNumber = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']), + expiryTime = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']), + routeNumber = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']); @override bool operator ==(Object other) { if(identical(this, other)) { @@ -68,11 +74,14 @@ class FilterAccountsAccounts { type == otherTyped.type && last4 == otherTyped.last4 && isPrimary == otherTyped.isPrimary && - ownerId == otherTyped.ownerId; + ownerId == otherTyped.ownerId && + accountNumber == otherTyped.accountNumber && + expiryTime == otherTyped.expiryTime && + routeNumber == otherTyped.routeNumber; } @override - int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, accountNumber.hashCode, expiryTime.hashCode, routeNumber.hashCode]); Map toJson() { @@ -87,6 +96,15 @@ class FilterAccountsAccounts { json['isPrimary'] = nativeToJson(isPrimary); } json['ownerId'] = nativeToJson(ownerId); + if (accountNumber != null) { + json['accountNumber'] = nativeToJson(accountNumber); + } + if (expiryTime != null) { + json['expiryTime'] = expiryTime!.toJson(); + } + if (routeNumber != null) { + json['routeNumber'] = nativeToJson(routeNumber); + } return json; } @@ -97,6 +115,9 @@ class FilterAccountsAccounts { required this.last4, this.isPrimary, required this.ownerId, + this.accountNumber, + this.expiryTime, + this.routeNumber, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_staff.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_staff.dart index a3df674f..d5b7c2aa 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_staff.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/filter_staff.dart @@ -51,6 +51,8 @@ class FilterStaffStaffs { final int? totalShifts; final String? ownerId; final bool? isRecommended; + final List? skills; + final List? industries; final EnumValue? backgroundCheckStatus; final EnumValue? employmentType; final String? initial; @@ -71,6 +73,12 @@ class FilterStaffStaffs { totalShifts = json['totalShifts'] == null ? null : nativeFromJson(json['totalShifts']), ownerId = json['ownerId'] == null ? null : nativeFromJson(json['ownerId']), isRecommended = json['isRecommended'] == null ? null : nativeFromJson(json['isRecommended']), + skills = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + industries = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(), backgroundCheckStatus = json['backgroundCheckStatus'] == null ? null : backgroundCheckStatusDeserializer(json['backgroundCheckStatus']), employmentType = json['employmentType'] == null ? null : employmentTypeDeserializer(json['employmentType']), initial = json['initial'] == null ? null : nativeFromJson(json['initial']), @@ -99,6 +107,8 @@ class FilterStaffStaffs { totalShifts == otherTyped.totalShifts && ownerId == otherTyped.ownerId && isRecommended == otherTyped.isRecommended && + skills == otherTyped.skills && + industries == otherTyped.industries && backgroundCheckStatus == otherTyped.backgroundCheckStatus && employmentType == otherTyped.employmentType && initial == otherTyped.initial && @@ -108,7 +118,7 @@ class FilterStaffStaffs { } @override - int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, averageRating.hashCode, reliabilityScore.hashCode, totalShifts.hashCode, ownerId.hashCode, isRecommended.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, averageRating.hashCode, reliabilityScore.hashCode, totalShifts.hashCode, ownerId.hashCode, isRecommended.hashCode, skills.hashCode, industries.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -143,6 +153,12 @@ class FilterStaffStaffs { if (isRecommended != null) { json['isRecommended'] = nativeToJson(isRecommended); } + if (skills != null) { + json['skills'] = skills?.map((e) => nativeToJson(e)).toList(); + } + if (industries != null) { + json['industries'] = industries?.map((e) => nativeToJson(e)).toList(); + } if (backgroundCheckStatus != null) { json['backgroundCheckStatus'] = backgroundCheckStatusSerializer(backgroundCheckStatus!) @@ -181,6 +197,8 @@ class FilterStaffStaffs { this.totalShifts, this.ownerId, this.isRecommended, + this.skills, + this.industries, this.backgroundCheckStatus, this.employmentType, this.initial, diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/generated.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/generated.dart index 63a2646d..326b1641 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/generated.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/generated.dart @@ -4,6 +4,532 @@ import 'package:flutter/foundation.dart'; import 'dart:convert'; import 'package:flutter/foundation.dart'; +part 'create_faq_data.dart'; + +part 'update_faq_data.dart'; + +part 'delete_faq_data.dart'; + +part 'create_staff_availability.dart'; + +part 'update_staff_availability.dart'; + +part 'delete_staff_availability.dart'; + +part 'list_staff_availability_stats.dart'; + +part 'get_staff_availability_stats_by_staff_id.dart'; + +part 'filter_staff_availability_stats.dart'; + +part 'create_tax_form.dart'; + +part 'update_tax_form.dart'; + +part 'delete_tax_form.dart'; + +part 'list_hubs.dart'; + +part 'get_hub_by_id.dart'; + +part 'get_hubs_by_owner_id.dart'; + +part 'filter_hubs.dart'; + +part 'create_message.dart'; + +part 'update_message.dart'; + +part 'delete_message.dart'; + +part 'create_vendor.dart'; + +part 'update_vendor.dart'; + +part 'delete_vendor.dart'; + +part 'create_account.dart'; + +part 'update_account.dart'; + +part 'delete_account.dart'; + +part 'create_shift_role.dart'; + +part 'update_shift_role.dart'; + +part 'delete_shift_role.dart'; + +part 'create_staff_availability_stats.dart'; + +part 'update_staff_availability_stats.dart'; + +part 'delete_staff_availability_stats.dart'; + +part 'create_task_comment.dart'; + +part 'update_task_comment.dart'; + +part 'delete_task_comment.dart'; + +part 'list_assignments.dart'; + +part 'get_assignment_by_id.dart'; + +part 'list_assignments_by_workforce_id.dart'; + +part 'list_assignments_by_workforce_ids.dart'; + +part 'list_assignments_by_shift_role.dart'; + +part 'filter_assignments.dart'; + +part 'create_custom_rate_card.dart'; + +part 'update_custom_rate_card.dart'; + +part 'delete_custom_rate_card.dart'; + +part 'list_documents.dart'; + +part 'get_document_by_id.dart'; + +part 'filter_documents.dart'; + +part 'get_shift_role_by_id.dart'; + +part 'list_shift_roles_by_shift_id.dart'; + +part 'list_shift_roles_by_role_id.dart'; + +part 'list_shift_roles_by_shift_id_and_time_range.dart'; + +part 'list_shift_roles_by_vendor_id.dart'; + +part 'list_shift_roles_by_business_and_date_range.dart'; + +part 'list_shift_roles_by_business_and_order.dart'; + +part 'list_shift_roles_by_business_date_range_completed_orders.dart'; + +part 'list_shift_roles_by_business_and_dates_summary.dart'; + +part 'get_completed_shifts_by_business_id.dart'; + +part 'create_activity_log.dart'; + +part 'update_activity_log.dart'; + +part 'mark_activity_log_as_read.dart'; + +part 'mark_activity_logs_as_read.dart'; + +part 'delete_activity_log.dart'; + +part 'list_role_categories.dart'; + +part 'get_role_category_by_id.dart'; + +part 'get_role_categories_by_category.dart'; + +part 'get_vendor_by_id.dart'; + +part 'get_vendor_by_user_id.dart'; + +part 'list_vendors.dart'; + +part 'get_workforce_by_id.dart'; + +part 'get_workforce_by_vendor_and_staff.dart'; + +part 'list_workforce_by_vendor_id.dart'; + +part 'list_workforce_by_staff_id.dart'; + +part 'get_workforce_by_vendor_and_number.dart'; + +part 'create_member_task.dart'; + +part 'delete_member_task.dart'; + +part 'create_staff.dart'; + +part 'update_staff.dart'; + +part 'delete_staff.dart'; + +part 'list_tasks.dart'; + +part 'get_task_by_id.dart'; + +part 'get_tasks_by_owner_id.dart'; + +part 'filter_tasks.dart'; + +part 'list_users.dart'; + +part 'get_user_by_id.dart'; + +part 'filter_users.dart'; + +part 'list_client_feedbacks.dart'; + +part 'get_client_feedback_by_id.dart'; + +part 'list_client_feedbacks_by_business_id.dart'; + +part 'list_client_feedbacks_by_vendor_id.dart'; + +part 'list_client_feedbacks_by_business_and_vendor.dart'; + +part 'filter_client_feedbacks.dart'; + +part 'list_client_feedback_ratings_by_vendor_id.dart'; + +part 'list_custom_rate_cards.dart'; + +part 'get_custom_rate_card_by_id.dart'; + +part 'create_application.dart'; + +part 'update_application_status.dart'; + +part 'delete_application.dart'; + +part 'create_certificate.dart'; + +part 'update_certificate.dart'; + +part 'delete_certificate.dart'; + +part 'create_hub.dart'; + +part 'update_hub.dart'; + +part 'delete_hub.dart'; + +part 'list_staff.dart'; + +part 'get_staff_by_id.dart'; + +part 'get_staff_by_user_id.dart'; + +part 'filter_staff.dart'; + +part 'create_staff_role.dart'; + +part 'delete_staff_role.dart'; + +part 'create_user_conversation.dart'; + +part 'update_user_conversation.dart'; + +part 'mark_conversation_as_read.dart'; + +part 'increment_unread_for_user.dart'; + +part 'delete_user_conversation.dart'; + +part 'create_category.dart'; + +part 'update_category.dart'; + +part 'delete_category.dart'; + +part 'list_categories.dart'; + +part 'get_category_by_id.dart'; + +part 'filter_categories.dart'; + +part 'create_document.dart'; + +part 'update_document.dart'; + +part 'delete_document.dart'; + +part 'list_messages.dart'; + +part 'get_message_by_id.dart'; + +part 'get_messages_by_conversation_id.dart'; + +part 'list_orders.dart'; + +part 'get_order_by_id.dart'; + +part 'get_orders_by_business_id.dart'; + +part 'get_orders_by_vendor_id.dart'; + +part 'get_orders_by_status.dart'; + +part 'get_orders_by_date_range.dart'; + +part 'get_rapid_orders.dart'; + +part 'get_staff_course_by_id.dart'; + +part 'list_staff_courses_by_staff_id.dart'; + +part 'list_staff_courses_by_course_id.dart'; + +part 'get_staff_course_by_staff_and_course.dart'; + +part 'list_tax_forms.dart'; + +part 'get_tax_form_by_id.dart'; + +part 'get_tax_forms_bystaff_id.dart'; + +part 'filter_tax_forms.dart'; + +part 'list_team_members.dart'; + +part 'get_team_member_by_id.dart'; + +part 'get_team_members_by_team_id.dart'; + +part 'list_certificates.dart'; + +part 'get_certificate_by_id.dart'; + +part 'list_certificates_by_staff_id.dart'; + +part 'create_conversation.dart'; + +part 'update_conversation.dart'; + +part 'update_conversation_last_message.dart'; + +part 'delete_conversation.dart'; + +part 'create_order.dart'; + +part 'update_order.dart'; + +part 'delete_order.dart'; + +part 'list_roles.dart'; + +part 'get_role_by_id.dart'; + +part 'list_roles_by_vendor_id.dart'; + +part 'list_roles_byrole_category_id.dart'; + +part 'create_role_category.dart'; + +part 'update_role_category.dart'; + +part 'delete_role_category.dart'; + +part 'create_shift.dart'; + +part 'update_shift.dart'; + +part 'delete_shift.dart'; + +part 'list_staff_availabilities.dart'; + +part 'list_staff_availabilities_by_staff_id.dart'; + +part 'get_staff_availability_by_key.dart'; + +part 'list_staff_availabilities_by_day.dart'; + +part 'create_team.dart'; + +part 'update_team.dart'; + +part 'delete_team.dart'; + +part 'list_conversations.dart'; + +part 'get_conversation_by_id.dart'; + +part 'list_conversations_by_type.dart'; + +part 'list_conversations_by_status.dart'; + +part 'filter_conversations.dart'; + +part 'list_courses.dart'; + +part 'get_course_by_id.dart'; + +part 'filter_courses.dart'; + +part 'get_my_tasks.dart'; + +part 'get_member_task_by_id_key.dart'; + +part 'get_member_tasks_by_task_id.dart'; + +part 'list_shifts.dart'; + +part 'get_shift_by_id.dart'; + +part 'filter_shifts.dart'; + +part 'get_shifts_by_business_id.dart'; + +part 'get_shifts_by_vendor_id.dart'; + +part 'list_staff_roles.dart'; + +part 'get_staff_role_by_key.dart'; + +part 'list_staff_roles_by_staff_id.dart'; + +part 'list_staff_roles_by_role_id.dart'; + +part 'filter_staff_roles.dart'; + +part 'list_applications.dart'; + +part 'get_application_by_id.dart'; + +part 'get_applications_by_shift_id.dart'; + +part 'get_applications_by_shift_id_and_status.dart'; + +part 'get_applications_by_staff_id.dart'; + +part 'list_accepted_applications_by_shift_role_key.dart'; + +part 'list_accepted_applications_by_business_for_day.dart'; + +part 'list_staffs_applications_by_business_for_day.dart'; + +part 'list_businesses.dart'; + +part 'get_businesses_by_user_id.dart'; + +part 'get_business_by_id.dart'; + +part 'list_invoice_templates.dart'; + +part 'get_invoice_template_by_id.dart'; + +part 'list_invoice_templates_by_owner_id.dart'; + +part 'list_invoice_templates_by_vendor_id.dart'; + +part 'list_invoice_templates_by_business_id.dart'; + +part 'list_invoice_templates_by_order_id.dart'; + +part 'search_invoice_templates_by_owner_and_name.dart'; + +part 'list_levels.dart'; + +part 'get_level_by_id.dart'; + +part 'filter_levels.dart'; + +part 'create_role.dart'; + +part 'update_role.dart'; + +part 'delete_role.dart'; + +part 'create_team_hub.dart'; + +part 'update_team_hub.dart'; + +part 'delete_team_hub.dart'; + +part 'list_team_hud_departments.dart'; + +part 'get_team_hud_department_by_id.dart'; + +part 'list_team_hud_departments_by_team_hub_id.dart'; + +part 'list_vendor_benefit_plans.dart'; + +part 'get_vendor_benefit_plan_by_id.dart'; + +part 'list_vendor_benefit_plans_by_vendor_id.dart'; + +part 'list_active_vendor_benefit_plans_by_vendor_id.dart'; + +part 'filter_vendor_benefit_plans.dart'; + +part 'create_assignment.dart'; + +part 'update_assignment.dart'; + +part 'delete_assignment.dart'; + +part 'list_attire_options.dart'; + +part 'get_attire_option_by_id.dart'; + +part 'filter_attire_options.dart'; + +part 'list_benefits_data.dart'; + +part 'get_benefits_data_by_key.dart'; + +part 'list_benefits_data_by_staff_id.dart'; + +part 'list_benefits_data_by_vendor_benefit_plan_id.dart'; + +part 'list_benefits_data_by_vendor_benefit_plan_ids.dart'; + +part 'create_staff_course.dart'; + +part 'update_staff_course.dart'; + +part 'delete_staff_course.dart'; + +part 'create_task.dart'; + +part 'update_task.dart'; + +part 'delete_task.dart'; + +part 'create_vendor_benefit_plan.dart'; + +part 'update_vendor_benefit_plan.dart'; + +part 'delete_vendor_benefit_plan.dart'; + +part 'create_course.dart'; + +part 'update_course.dart'; + +part 'delete_course.dart'; + +part 'create_level.dart'; + +part 'update_level.dart'; + +part 'delete_level.dart'; + +part 'list_recent_payments.dart'; + +part 'get_recent_payment_by_id.dart'; + +part 'list_recent_payments_by_staff_id.dart'; + +part 'list_recent_payments_by_application_id.dart'; + +part 'list_recent_payments_by_invoice_id.dart'; + +part 'list_recent_payments_by_status.dart'; + +part 'list_recent_payments_by_invoice_ids.dart'; + +part 'list_recent_payments_by_business_id.dart'; + +part 'create_staff_document.dart'; + +part 'update_staff_document.dart'; + +part 'delete_staff_document.dart'; + part 'create_team_member.dart'; part 'update_team_member.dart'; @@ -16,27 +542,49 @@ part 'cancel_invite_by_code.dart'; part 'delete_team_member.dart'; -part 'list_activity_logs.dart'; +part 'list_user_conversations.dart'; -part 'get_activity_log_by_id.dart'; +part 'get_user_conversation_by_key.dart'; -part 'list_activity_logs_by_user_id.dart'; +part 'list_user_conversations_by_user_id.dart'; -part 'list_unread_activity_logs_by_user_id.dart'; +part 'list_unread_user_conversations_by_user_id.dart'; -part 'filter_activity_logs.dart'; +part 'list_user_conversations_by_conversation_id.dart'; -part 'create_benefits_data.dart'; +part 'filter_user_conversations.dart'; -part 'update_benefits_data.dart'; +part 'list_vendor_rates.dart'; -part 'delete_benefits_data.dart'; +part 'get_vendor_rate_by_id.dart'; -part 'list_businesses.dart'; +part 'create_business.dart'; -part 'get_businesses_by_user_id.dart'; +part 'update_business.dart'; -part 'get_business_by_id.dart'; +part 'delete_business.dart'; + +part 'create_invoice.dart'; + +part 'update_invoice.dart'; + +part 'delete_invoice.dart'; + +part 'list_invoices.dart'; + +part 'get_invoice_by_id.dart'; + +part 'list_invoices_by_vendor_id.dart'; + +part 'list_invoices_by_business_id.dart'; + +part 'list_invoices_by_order_id.dart'; + +part 'list_invoices_by_status.dart'; + +part 'filter_invoices.dart'; + +part 'list_overdue_invoices.dart'; part 'list_shifts_for_coverage.dart'; @@ -76,155 +624,13 @@ part 'list_applications_for_performance.dart'; part 'list_staff_for_performance.dart'; -part 'list_staff_availabilities.dart'; +part 'list_team_hubs.dart'; -part 'list_staff_availabilities_by_staff_id.dart'; +part 'get_team_hub_by_id.dart'; -part 'get_staff_availability_by_key.dart'; +part 'get_team_hubs_by_team_id.dart'; -part 'list_staff_availabilities_by_day.dart'; - -part 'create_staff_course.dart'; - -part 'update_staff_course.dart'; - -part 'delete_staff_course.dart'; - -part 'create_team.dart'; - -part 'update_team.dart'; - -part 'delete_team.dart'; - -part 'create_team_hub.dart'; - -part 'update_team_hub.dart'; - -part 'delete_team_hub.dart'; - -part 'create_application.dart'; - -part 'update_application_status.dart'; - -part 'delete_application.dart'; - -part 'list_conversations.dart'; - -part 'get_conversation_by_id.dart'; - -part 'list_conversations_by_type.dart'; - -part 'list_conversations_by_status.dart'; - -part 'filter_conversations.dart'; - -part 'create_shift.dart'; - -part 'update_shift.dart'; - -part 'delete_shift.dart'; - -part 'list_teams.dart'; - -part 'get_team_by_id.dart'; - -part 'get_teams_by_owner_id.dart'; - -part 'list_categories.dart'; - -part 'get_category_by_id.dart'; - -part 'filter_categories.dart'; - -part 'create_user_conversation.dart'; - -part 'update_user_conversation.dart'; - -part 'mark_conversation_as_read.dart'; - -part 'increment_unread_for_user.dart'; - -part 'delete_user_conversation.dart'; - -part 'list_vendor_benefit_plans.dart'; - -part 'get_vendor_benefit_plan_by_id.dart'; - -part 'list_vendor_benefit_plans_by_vendor_id.dart'; - -part 'list_active_vendor_benefit_plans_by_vendor_id.dart'; - -part 'filter_vendor_benefit_plans.dart'; - -part 'list_courses.dart'; - -part 'get_course_by_id.dart'; - -part 'filter_courses.dart'; - -part 'list_roles.dart'; - -part 'get_role_by_id.dart'; - -part 'list_roles_by_vendor_id.dart'; - -part 'list_roles_byrole_category_id.dart'; - -part 'get_staff_course_by_id.dart'; - -part 'list_staff_courses_by_staff_id.dart'; - -part 'list_staff_courses_by_course_id.dart'; - -part 'get_staff_course_by_staff_and_course.dart'; - -part 'create_user.dart'; - -part 'update_user.dart'; - -part 'delete_user.dart'; - -part 'create_client_feedback.dart'; - -part 'update_client_feedback.dart'; - -part 'delete_client_feedback.dart'; - -part 'get_shift_role_by_id.dart'; - -part 'list_shift_roles_by_shift_id.dart'; - -part 'list_shift_roles_by_role_id.dart'; - -part 'list_shift_roles_by_shift_id_and_time_range.dart'; - -part 'list_shift_roles_by_vendor_id.dart'; - -part 'list_shift_roles_by_business_and_date_range.dart'; - -part 'list_shift_roles_by_business_and_order.dart'; - -part 'list_shift_roles_by_business_date_range_completed_orders.dart'; - -part 'create_staff_availability.dart'; - -part 'update_staff_availability.dart'; - -part 'delete_staff_availability.dart'; - -part 'create_conversation.dart'; - -part 'update_conversation.dart'; - -part 'update_conversation_last_message.dart'; - -part 'delete_conversation.dart'; - -part 'create_tax_form.dart'; - -part 'update_tax_form.dart'; - -part 'delete_tax_form.dart'; +part 'list_team_hubs_by_owner_id.dart'; part 'create_team_hud_department.dart'; @@ -232,15 +638,11 @@ part 'update_team_hud_department.dart'; part 'delete_team_hud_department.dart'; -part 'get_vendor_by_id.dart'; +part 'create_vendor_rate.dart'; -part 'get_vendor_by_user_id.dart'; +part 'update_vendor_rate.dart'; -part 'list_vendors.dart'; - -part 'list_vendor_rates.dart'; - -part 'get_vendor_rate_by_id.dart'; +part 'delete_vendor_rate.dart'; part 'list_accounts.dart'; @@ -250,41 +652,57 @@ part 'get_accounts_by_owner_id.dart'; part 'filter_accounts.dart'; -part 'create_business.dart'; +part 'list_activity_logs.dart'; -part 'update_business.dart'; +part 'get_activity_log_by_id.dart'; -part 'delete_business.dart'; +part 'list_activity_logs_by_user_id.dart'; -part 'list_hubs.dart'; +part 'list_unread_activity_logs_by_user_id.dart'; -part 'get_hub_by_id.dart'; +part 'filter_activity_logs.dart'; -part 'get_hubs_by_owner_id.dart'; +part 'create_attire_option.dart'; -part 'filter_hubs.dart'; +part 'update_attire_option.dart'; -part 'list_recent_payments.dart'; +part 'delete_attire_option.dart'; -part 'get_recent_payment_by_id.dart'; +part 'create_client_feedback.dart'; -part 'list_recent_payments_by_staff_id.dart'; +part 'update_client_feedback.dart'; -part 'list_recent_payments_by_application_id.dart'; +part 'delete_client_feedback.dart'; -part 'list_recent_payments_by_invoice_id.dart'; +part 'list_faq_datas.dart'; -part 'list_recent_payments_by_status.dart'; +part 'get_faq_data_by_id.dart'; -part 'list_recent_payments_by_invoice_ids.dart'; +part 'filter_faq_datas.dart'; -part 'list_recent_payments_by_business_id.dart'; +part 'create_recent_payment.dart'; -part 'create_role.dart'; +part 'update_recent_payment.dart'; -part 'update_role.dart'; +part 'delete_recent_payment.dart'; -part 'delete_role.dart'; +part 'create_benefits_data.dart'; + +part 'update_benefits_data.dart'; + +part 'delete_benefits_data.dart'; + +part 'create_emergency_contact.dart'; + +part 'update_emergency_contact.dart'; + +part 'delete_emergency_contact.dart'; + +part 'create_invoice_template.dart'; + +part 'update_invoice_template.dart'; + +part 'delete_invoice_template.dart'; part 'get_staff_document_by_key.dart'; @@ -294,117 +712,23 @@ part 'list_staff_documents_by_document_type.dart'; part 'list_staff_documents_by_status.dart'; -part 'list_tasks.dart'; - -part 'get_task_by_id.dart'; - -part 'get_tasks_by_owner_id.dart'; - -part 'filter_tasks.dart'; - part 'list_task_comments.dart'; part 'get_task_comment_by_id.dart'; part 'get_task_comments_by_task_id.dart'; -part 'create_emergency_contact.dart'; +part 'list_teams.dart'; -part 'update_emergency_contact.dart'; +part 'get_team_by_id.dart'; -part 'delete_emergency_contact.dart'; +part 'get_teams_by_owner_id.dart'; -part 'list_faq_datas.dart'; +part 'create_user.dart'; -part 'get_faq_data_by_id.dart'; +part 'update_user.dart'; -part 'filter_faq_datas.dart'; - -part 'list_invoice_templates.dart'; - -part 'get_invoice_template_by_id.dart'; - -part 'list_invoice_templates_by_owner_id.dart'; - -part 'list_invoice_templates_by_vendor_id.dart'; - -part 'list_invoice_templates_by_business_id.dart'; - -part 'list_invoice_templates_by_order_id.dart'; - -part 'search_invoice_templates_by_owner_and_name.dart'; - -part 'list_messages.dart'; - -part 'get_message_by_id.dart'; - -part 'get_messages_by_conversation_id.dart'; - -part 'create_order.dart'; - -part 'update_order.dart'; - -part 'delete_order.dart'; - -part 'create_shift_role.dart'; - -part 'update_shift_role.dart'; - -part 'delete_shift_role.dart'; - -part 'list_staff.dart'; - -part 'get_staff_by_id.dart'; - -part 'get_staff_by_user_id.dart'; - -part 'filter_staff.dart'; - -part 'list_user_conversations.dart'; - -part 'get_user_conversation_by_key.dart'; - -part 'list_user_conversations_by_user_id.dart'; - -part 'list_unread_user_conversations_by_user_id.dart'; - -part 'list_user_conversations_by_conversation_id.dart'; - -part 'filter_user_conversations.dart'; - -part 'create_attire_option.dart'; - -part 'update_attire_option.dart'; - -part 'delete_attire_option.dart'; - -part 'create_invoice.dart'; - -part 'update_invoice.dart'; - -part 'delete_invoice.dart'; - -part 'get_my_tasks.dart'; - -part 'get_member_task_by_id_key.dart'; - -part 'get_member_tasks_by_task_id.dart'; - -part 'list_shifts.dart'; - -part 'get_shift_by_id.dart'; - -part 'filter_shifts.dart'; - -part 'get_shifts_by_business_id.dart'; - -part 'get_shifts_by_vendor_id.dart'; - -part 'create_task.dart'; - -part 'update_task.dart'; - -part 'delete_task.dart'; +part 'delete_user.dart'; part 'create_workforce.dart'; @@ -412,330 +736,12 @@ part 'update_workforce.dart'; part 'deactivate_workforce.dart'; -part 'create_member_task.dart'; - -part 'delete_member_task.dart'; - -part 'create_staff_availability_stats.dart'; - -part 'update_staff_availability_stats.dart'; - -part 'delete_staff_availability_stats.dart'; - -part 'create_vendor_benefit_plan.dart'; - -part 'update_vendor_benefit_plan.dart'; - -part 'delete_vendor_benefit_plan.dart'; - -part 'create_vendor_rate.dart'; - -part 'update_vendor_rate.dart'; - -part 'delete_vendor_rate.dart'; - -part 'get_workforce_by_id.dart'; - -part 'get_workforce_by_vendor_and_staff.dart'; - -part 'list_workforce_by_vendor_id.dart'; - -part 'list_workforce_by_staff_id.dart'; - -part 'get_workforce_by_vendor_and_number.dart'; - -part 'create_certificate.dart'; - -part 'update_certificate.dart'; - -part 'delete_certificate.dart'; - -part 'create_course.dart'; - -part 'update_course.dart'; - -part 'delete_course.dart'; - -part 'list_documents.dart'; - -part 'get_document_by_id.dart'; - -part 'filter_documents.dart'; - part 'list_emergency_contacts.dart'; part 'get_emergency_contact_by_id.dart'; part 'get_emergency_contacts_by_staff_id.dart'; -part 'list_levels.dart'; - -part 'get_level_by_id.dart'; - -part 'filter_levels.dart'; - -part 'create_role_category.dart'; - -part 'update_role_category.dart'; - -part 'delete_role_category.dart'; - -part 'create_staff.dart'; - -part 'update_staff.dart'; - -part 'delete_staff.dart'; - -part 'list_staff_availability_stats.dart'; - -part 'get_staff_availability_stats_by_staff_id.dart'; - -part 'filter_staff_availability_stats.dart'; - -part 'create_account.dart'; - -part 'update_account.dart'; - -part 'delete_account.dart'; - -part 'create_activity_log.dart'; - -part 'update_activity_log.dart'; - -part 'mark_activity_log_as_read.dart'; - -part 'mark_activity_logs_as_read.dart'; - -part 'delete_activity_log.dart'; - -part 'list_assignments.dart'; - -part 'get_assignment_by_id.dart'; - -part 'list_assignments_by_workforce_id.dart'; - -part 'list_assignments_by_workforce_ids.dart'; - -part 'list_assignments_by_shift_role.dart'; - -part 'filter_assignments.dart'; - -part 'list_certificates.dart'; - -part 'get_certificate_by_id.dart'; - -part 'list_certificates_by_staff_id.dart'; - -part 'create_level.dart'; - -part 'update_level.dart'; - -part 'delete_level.dart'; - -part 'create_message.dart'; - -part 'update_message.dart'; - -part 'delete_message.dart'; - -part 'create_recent_payment.dart'; - -part 'update_recent_payment.dart'; - -part 'delete_recent_payment.dart'; - -part 'create_staff_role.dart'; - -part 'delete_staff_role.dart'; - -part 'list_applications.dart'; - -part 'get_application_by_id.dart'; - -part 'get_applications_by_shift_id.dart'; - -part 'get_applications_by_shift_id_and_status.dart'; - -part 'get_applications_by_staff_id.dart'; - -part 'list_accepted_applications_by_shift_role_key.dart'; - -part 'list_accepted_applications_by_business_for_day.dart'; - -part 'create_assignment.dart'; - -part 'update_assignment.dart'; - -part 'delete_assignment.dart'; - -part 'list_attire_options.dart'; - -part 'get_attire_option_by_id.dart'; - -part 'filter_attire_options.dart'; - -part 'create_custom_rate_card.dart'; - -part 'update_custom_rate_card.dart'; - -part 'delete_custom_rate_card.dart'; - -part 'list_invoices.dart'; - -part 'get_invoice_by_id.dart'; - -part 'list_invoices_by_vendor_id.dart'; - -part 'list_invoices_by_business_id.dart'; - -part 'list_invoices_by_order_id.dart'; - -part 'list_invoices_by_status.dart'; - -part 'filter_invoices.dart'; - -part 'list_overdue_invoices.dart'; - -part 'create_invoice_template.dart'; - -part 'update_invoice_template.dart'; - -part 'delete_invoice_template.dart'; - -part 'create_staff_document.dart'; - -part 'update_staff_document.dart'; - -part 'delete_staff_document.dart'; - -part 'list_users.dart'; - -part 'get_user_by_id.dart'; - -part 'filter_users.dart'; - -part 'create_category.dart'; - -part 'update_category.dart'; - -part 'delete_category.dart'; - -part 'create_hub.dart'; - -part 'update_hub.dart'; - -part 'delete_hub.dart'; - -part 'list_staff_roles.dart'; - -part 'get_staff_role_by_key.dart'; - -part 'list_staff_roles_by_staff_id.dart'; - -part 'list_staff_roles_by_role_id.dart'; - -part 'filter_staff_roles.dart'; - -part 'create_task_comment.dart'; - -part 'update_task_comment.dart'; - -part 'delete_task_comment.dart'; - -part 'list_team_hubs.dart'; - -part 'get_team_hub_by_id.dart'; - -part 'get_team_hubs_by_team_id.dart'; - -part 'list_team_hubs_by_owner_id.dart'; - -part 'list_team_hud_departments.dart'; - -part 'get_team_hud_department_by_id.dart'; - -part 'list_team_hud_departments_by_team_hub_id.dart'; - -part 'list_team_members.dart'; - -part 'get_team_member_by_id.dart'; - -part 'get_team_members_by_team_id.dart'; - -part 'list_client_feedbacks.dart'; - -part 'get_client_feedback_by_id.dart'; - -part 'list_client_feedbacks_by_business_id.dart'; - -part 'list_client_feedbacks_by_vendor_id.dart'; - -part 'list_client_feedbacks_by_business_and_vendor.dart'; - -part 'filter_client_feedbacks.dart'; - -part 'list_client_feedback_ratings_by_vendor_id.dart'; - -part 'list_custom_rate_cards.dart'; - -part 'get_custom_rate_card_by_id.dart'; - -part 'create_document.dart'; - -part 'update_document.dart'; - -part 'delete_document.dart'; - -part 'list_role_categories.dart'; - -part 'get_role_category_by_id.dart'; - -part 'get_role_categories_by_category.dart'; - -part 'list_tax_forms.dart'; - -part 'get_tax_form_by_id.dart'; - -part 'get_tax_forms_bystaff_id.dart'; - -part 'filter_tax_forms.dart'; - -part 'create_vendor.dart'; - -part 'update_vendor.dart'; - -part 'delete_vendor.dart'; - -part 'list_benefits_data.dart'; - -part 'get_benefits_data_by_key.dart'; - -part 'list_benefits_data_by_staff_id.dart'; - -part 'list_benefits_data_by_vendor_benefit_plan_id.dart'; - -part 'list_benefits_data_by_vendor_benefit_plan_ids.dart'; - -part 'create_faq_data.dart'; - -part 'update_faq_data.dart'; - -part 'delete_faq_data.dart'; - -part 'list_orders.dart'; - -part 'get_order_by_id.dart'; - -part 'get_orders_by_business_id.dart'; - -part 'get_orders_by_vendor_id.dart'; - -part 'get_orders_by_status.dart'; - -part 'get_orders_by_date_range.dart'; - -part 'get_rapid_orders.dart'; - enum AccountType { @@ -2685,6 +2691,1321 @@ class Unknown extends EnumValue { class ExampleConnector { + CreateFaqDataVariablesBuilder createFaqData ({required String category, }) { + return CreateFaqDataVariablesBuilder(dataConnect, category: category,); + } + + + UpdateFaqDataVariablesBuilder updateFaqData ({required String id, }) { + return UpdateFaqDataVariablesBuilder(dataConnect, id: id,); + } + + + DeleteFaqDataVariablesBuilder deleteFaqData ({required String id, }) { + return DeleteFaqDataVariablesBuilder(dataConnect, id: id,); + } + + + CreateStaffAvailabilityVariablesBuilder createStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { + return CreateStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); + } + + + UpdateStaffAvailabilityVariablesBuilder updateStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { + return UpdateStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); + } + + + DeleteStaffAvailabilityVariablesBuilder deleteStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { + return DeleteStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); + } + + + ListStaffAvailabilityStatsVariablesBuilder listStaffAvailabilityStats () { + return ListStaffAvailabilityStatsVariablesBuilder(dataConnect, ); + } + + + GetStaffAvailabilityStatsByStaffIdVariablesBuilder getStaffAvailabilityStatsByStaffId ({required String staffId, }) { + return GetStaffAvailabilityStatsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + FilterStaffAvailabilityStatsVariablesBuilder filterStaffAvailabilityStats () { + return FilterStaffAvailabilityStatsVariablesBuilder(dataConnect, ); + } + + + CreateTaxFormVariablesBuilder createTaxForm ({required TaxFormType formType, required String title, required String staffId, }) { + return CreateTaxFormVariablesBuilder(dataConnect, formType: formType,title: title,staffId: staffId,); + } + + + UpdateTaxFormVariablesBuilder updateTaxForm ({required String id, }) { + return UpdateTaxFormVariablesBuilder(dataConnect, id: id,); + } + + + DeleteTaxFormVariablesBuilder deleteTaxForm ({required String id, }) { + return DeleteTaxFormVariablesBuilder(dataConnect, id: id,); + } + + + ListHubsVariablesBuilder listHubs () { + return ListHubsVariablesBuilder(dataConnect, ); + } + + + GetHubByIdVariablesBuilder getHubById ({required String id, }) { + return GetHubByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetHubsByOwnerIdVariablesBuilder getHubsByOwnerId ({required String ownerId, }) { + return GetHubsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); + } + + + FilterHubsVariablesBuilder filterHubs () { + return FilterHubsVariablesBuilder(dataConnect, ); + } + + + CreateMessageVariablesBuilder createMessage ({required String conversationId, required String senderId, required String content, }) { + return CreateMessageVariablesBuilder(dataConnect, conversationId: conversationId,senderId: senderId,content: content,); + } + + + UpdateMessageVariablesBuilder updateMessage ({required String id, }) { + return UpdateMessageVariablesBuilder(dataConnect, id: id,); + } + + + DeleteMessageVariablesBuilder deleteMessage ({required String id, }) { + return DeleteMessageVariablesBuilder(dataConnect, id: id,); + } + + + CreateVendorVariablesBuilder createVendor ({required String userId, required String companyName, }) { + return CreateVendorVariablesBuilder(dataConnect, userId: userId,companyName: companyName,); + } + + + UpdateVendorVariablesBuilder updateVendor ({required String id, }) { + return UpdateVendorVariablesBuilder(dataConnect, id: id,); + } + + + DeleteVendorVariablesBuilder deleteVendor ({required String id, }) { + return DeleteVendorVariablesBuilder(dataConnect, id: id,); + } + + + CreateAccountVariablesBuilder createAccount ({required String bank, required AccountType type, required String last4, required String ownerId, }) { + return CreateAccountVariablesBuilder(dataConnect, bank: bank,type: type,last4: last4,ownerId: ownerId,); + } + + + UpdateAccountVariablesBuilder updateAccount ({required String id, }) { + return UpdateAccountVariablesBuilder(dataConnect, id: id,); + } + + + DeleteAccountVariablesBuilder deleteAccount ({required String id, }) { + return DeleteAccountVariablesBuilder(dataConnect, id: id,); + } + + + CreateShiftRoleVariablesBuilder createShiftRole ({required String shiftId, required String roleId, required int count, }) { + return CreateShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,count: count,); + } + + + UpdateShiftRoleVariablesBuilder updateShiftRole ({required String shiftId, required String roleId, }) { + return UpdateShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); + } + + + DeleteShiftRoleVariablesBuilder deleteShiftRole ({required String shiftId, required String roleId, }) { + return DeleteShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); + } + + + CreateStaffAvailabilityStatsVariablesBuilder createStaffAvailabilityStats ({required String staffId, }) { + return CreateStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); + } + + + UpdateStaffAvailabilityStatsVariablesBuilder updateStaffAvailabilityStats ({required String staffId, }) { + return UpdateStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); + } + + + DeleteStaffAvailabilityStatsVariablesBuilder deleteStaffAvailabilityStats ({required String staffId, }) { + return DeleteStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); + } + + + CreateTaskCommentVariablesBuilder createTaskComment ({required String taskId, required String teamMemberId, required String comment, }) { + return CreateTaskCommentVariablesBuilder(dataConnect, taskId: taskId,teamMemberId: teamMemberId,comment: comment,); + } + + + UpdateTaskCommentVariablesBuilder updateTaskComment ({required String id, }) { + return UpdateTaskCommentVariablesBuilder(dataConnect, id: id,); + } + + + DeleteTaskCommentVariablesBuilder deleteTaskComment ({required String id, }) { + return DeleteTaskCommentVariablesBuilder(dataConnect, id: id,); + } + + + ListAssignmentsVariablesBuilder listAssignments () { + return ListAssignmentsVariablesBuilder(dataConnect, ); + } + + + GetAssignmentByIdVariablesBuilder getAssignmentById ({required String id, }) { + return GetAssignmentByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListAssignmentsByWorkforceIdVariablesBuilder listAssignmentsByWorkforceId ({required String workforceId, }) { + return ListAssignmentsByWorkforceIdVariablesBuilder(dataConnect, workforceId: workforceId,); + } + + + ListAssignmentsByWorkforceIdsVariablesBuilder listAssignmentsByWorkforceIds ({required List workforceIds, }) { + return ListAssignmentsByWorkforceIdsVariablesBuilder(dataConnect, workforceIds: workforceIds,); + } + + + ListAssignmentsByShiftRoleVariablesBuilder listAssignmentsByShiftRole ({required String shiftId, required String roleId, }) { + return ListAssignmentsByShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); + } + + + FilterAssignmentsVariablesBuilder filterAssignments ({required List shiftIds, required List roleIds, }) { + return FilterAssignmentsVariablesBuilder(dataConnect, shiftIds: shiftIds,roleIds: roleIds,); + } + + + CreateCustomRateCardVariablesBuilder createCustomRateCard ({required String name, }) { + return CreateCustomRateCardVariablesBuilder(dataConnect, name: name,); + } + + + UpdateCustomRateCardVariablesBuilder updateCustomRateCard ({required String id, }) { + return UpdateCustomRateCardVariablesBuilder(dataConnect, id: id,); + } + + + DeleteCustomRateCardVariablesBuilder deleteCustomRateCard ({required String id, }) { + return DeleteCustomRateCardVariablesBuilder(dataConnect, id: id,); + } + + + ListDocumentsVariablesBuilder listDocuments () { + return ListDocumentsVariablesBuilder(dataConnect, ); + } + + + GetDocumentByIdVariablesBuilder getDocumentById ({required String id, }) { + return GetDocumentByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterDocumentsVariablesBuilder filterDocuments () { + return FilterDocumentsVariablesBuilder(dataConnect, ); + } + + + GetShiftRoleByIdVariablesBuilder getShiftRoleById ({required String shiftId, required String roleId, }) { + return GetShiftRoleByIdVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); + } + + + ListShiftRolesByShiftIdVariablesBuilder listShiftRolesByShiftId ({required String shiftId, }) { + return ListShiftRolesByShiftIdVariablesBuilder(dataConnect, shiftId: shiftId,); + } + + + ListShiftRolesByRoleIdVariablesBuilder listShiftRolesByRoleId ({required String roleId, }) { + return ListShiftRolesByRoleIdVariablesBuilder(dataConnect, roleId: roleId,); + } + + + ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder listShiftRolesByShiftIdAndTimeRange ({required String shiftId, required Timestamp start, required Timestamp end, }) { + return ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder(dataConnect, shiftId: shiftId,start: start,end: end,); + } + + + ListShiftRolesByVendorIdVariablesBuilder listShiftRolesByVendorId ({required String vendorId, }) { + return ListShiftRolesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListShiftRolesByBusinessAndDateRangeVariablesBuilder listShiftRolesByBusinessAndDateRange ({required String businessId, required Timestamp start, required Timestamp end, }) { + return ListShiftRolesByBusinessAndDateRangeVariablesBuilder(dataConnect, businessId: businessId,start: start,end: end,); + } + + + ListShiftRolesByBusinessAndOrderVariablesBuilder listShiftRolesByBusinessAndOrder ({required String businessId, required String orderId, }) { + return ListShiftRolesByBusinessAndOrderVariablesBuilder(dataConnect, businessId: businessId,orderId: orderId,); + } + + + ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder listShiftRolesByBusinessDateRangeCompletedOrders ({required String businessId, required Timestamp start, required Timestamp end, }) { + return ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder(dataConnect, businessId: businessId,start: start,end: end,); + } + + + ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder listShiftRolesByBusinessAndDatesSummary ({required String businessId, required Timestamp start, required Timestamp end, }) { + return ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder(dataConnect, businessId: businessId,start: start,end: end,); + } + + + GetCompletedShiftsByBusinessIdVariablesBuilder getCompletedShiftsByBusinessId ({required String businessId, required Timestamp dateFrom, required Timestamp dateTo, }) { + return GetCompletedShiftsByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,dateFrom: dateFrom,dateTo: dateTo,); + } + + + CreateActivityLogVariablesBuilder createActivityLog ({required String userId, required Timestamp date, required String title, required String description, required ActivityType activityType, }) { + return CreateActivityLogVariablesBuilder(dataConnect, userId: userId,date: date,title: title,description: description,activityType: activityType,); + } + + + UpdateActivityLogVariablesBuilder updateActivityLog ({required String id, }) { + return UpdateActivityLogVariablesBuilder(dataConnect, id: id,); + } + + + MarkActivityLogAsReadVariablesBuilder markActivityLogAsRead ({required String id, }) { + return MarkActivityLogAsReadVariablesBuilder(dataConnect, id: id,); + } + + + MarkActivityLogsAsReadVariablesBuilder markActivityLogsAsRead ({required List ids, }) { + return MarkActivityLogsAsReadVariablesBuilder(dataConnect, ids: ids,); + } + + + DeleteActivityLogVariablesBuilder deleteActivityLog ({required String id, }) { + return DeleteActivityLogVariablesBuilder(dataConnect, id: id,); + } + + + ListRoleCategoriesVariablesBuilder listRoleCategories () { + return ListRoleCategoriesVariablesBuilder(dataConnect, ); + } + + + GetRoleCategoryByIdVariablesBuilder getRoleCategoryById ({required String id, }) { + return GetRoleCategoryByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetRoleCategoriesByCategoryVariablesBuilder getRoleCategoriesByCategory ({required RoleCategoryType category, }) { + return GetRoleCategoriesByCategoryVariablesBuilder(dataConnect, category: category,); + } + + + GetVendorByIdVariablesBuilder getVendorById ({required String id, }) { + return GetVendorByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetVendorByUserIdVariablesBuilder getVendorByUserId ({required String userId, }) { + return GetVendorByUserIdVariablesBuilder(dataConnect, userId: userId,); + } + + + ListVendorsVariablesBuilder listVendors () { + return ListVendorsVariablesBuilder(dataConnect, ); + } + + + GetWorkforceByIdVariablesBuilder getWorkforceById ({required String id, }) { + return GetWorkforceByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetWorkforceByVendorAndStaffVariablesBuilder getWorkforceByVendorAndStaff ({required String vendorId, required String staffId, }) { + return GetWorkforceByVendorAndStaffVariablesBuilder(dataConnect, vendorId: vendorId,staffId: staffId,); + } + + + ListWorkforceByVendorIdVariablesBuilder listWorkforceByVendorId ({required String vendorId, }) { + return ListWorkforceByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListWorkforceByStaffIdVariablesBuilder listWorkforceByStaffId ({required String staffId, }) { + return ListWorkforceByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + GetWorkforceByVendorAndNumberVariablesBuilder getWorkforceByVendorAndNumber ({required String vendorId, required String workforceNumber, }) { + return GetWorkforceByVendorAndNumberVariablesBuilder(dataConnect, vendorId: vendorId,workforceNumber: workforceNumber,); + } + + + CreateMemberTaskVariablesBuilder createMemberTask ({required String teamMemberId, required String taskId, }) { + return CreateMemberTaskVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); + } + + + DeleteMemberTaskVariablesBuilder deleteMemberTask ({required String teamMemberId, required String taskId, }) { + return DeleteMemberTaskVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); + } + + + CreateStaffVariablesBuilder createStaff ({required String userId, required String fullName, }) { + return CreateStaffVariablesBuilder(dataConnect, userId: userId,fullName: fullName,); + } + + + UpdateStaffVariablesBuilder updateStaff ({required String id, }) { + return UpdateStaffVariablesBuilder(dataConnect, id: id,); + } + + + DeleteStaffVariablesBuilder deleteStaff ({required String id, }) { + return DeleteStaffVariablesBuilder(dataConnect, id: id,); + } + + + ListTasksVariablesBuilder listTasks () { + return ListTasksVariablesBuilder(dataConnect, ); + } + + + GetTaskByIdVariablesBuilder getTaskById ({required String id, }) { + return GetTaskByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetTasksByOwnerIdVariablesBuilder getTasksByOwnerId ({required String ownerId, }) { + return GetTasksByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); + } + + + FilterTasksVariablesBuilder filterTasks () { + return FilterTasksVariablesBuilder(dataConnect, ); + } + + + ListUsersVariablesBuilder listUsers () { + return ListUsersVariablesBuilder(dataConnect, ); + } + + + GetUserByIdVariablesBuilder getUserById ({required String id, }) { + return GetUserByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterUsersVariablesBuilder filterUsers () { + return FilterUsersVariablesBuilder(dataConnect, ); + } + + + ListClientFeedbacksVariablesBuilder listClientFeedbacks () { + return ListClientFeedbacksVariablesBuilder(dataConnect, ); + } + + + GetClientFeedbackByIdVariablesBuilder getClientFeedbackById ({required String id, }) { + return GetClientFeedbackByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListClientFeedbacksByBusinessIdVariablesBuilder listClientFeedbacksByBusinessId ({required String businessId, }) { + return ListClientFeedbacksByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + ListClientFeedbacksByVendorIdVariablesBuilder listClientFeedbacksByVendorId ({required String vendorId, }) { + return ListClientFeedbacksByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListClientFeedbacksByBusinessAndVendorVariablesBuilder listClientFeedbacksByBusinessAndVendor ({required String businessId, required String vendorId, }) { + return ListClientFeedbacksByBusinessAndVendorVariablesBuilder(dataConnect, businessId: businessId,vendorId: vendorId,); + } + + + FilterClientFeedbacksVariablesBuilder filterClientFeedbacks () { + return FilterClientFeedbacksVariablesBuilder(dataConnect, ); + } + + + ListClientFeedbackRatingsByVendorIdVariablesBuilder listClientFeedbackRatingsByVendorId ({required String vendorId, }) { + return ListClientFeedbackRatingsByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListCustomRateCardsVariablesBuilder listCustomRateCards () { + return ListCustomRateCardsVariablesBuilder(dataConnect, ); + } + + + GetCustomRateCardByIdVariablesBuilder getCustomRateCardById ({required String id, }) { + return GetCustomRateCardByIdVariablesBuilder(dataConnect, id: id,); + } + + + CreateApplicationVariablesBuilder createApplication ({required String shiftId, required String staffId, required ApplicationStatus status, required ApplicationOrigin origin, required String roleId, }) { + return CreateApplicationVariablesBuilder(dataConnect, shiftId: shiftId,staffId: staffId,status: status,origin: origin,roleId: roleId,); + } + + + UpdateApplicationStatusVariablesBuilder updateApplicationStatus ({required String id, required String roleId, }) { + return UpdateApplicationStatusVariablesBuilder(dataConnect, id: id,roleId: roleId,); + } + + + DeleteApplicationVariablesBuilder deleteApplication ({required String id, }) { + return DeleteApplicationVariablesBuilder(dataConnect, id: id,); + } + + + CreateCertificateVariablesBuilder createCertificate ({required String name, required CertificateStatus status, required String staffId, }) { + return CreateCertificateVariablesBuilder(dataConnect, name: name,status: status,staffId: staffId,); + } + + + UpdateCertificateVariablesBuilder updateCertificate ({required String id, }) { + return UpdateCertificateVariablesBuilder(dataConnect, id: id,); + } + + + DeleteCertificateVariablesBuilder deleteCertificate ({required String id, }) { + return DeleteCertificateVariablesBuilder(dataConnect, id: id,); + } + + + CreateHubVariablesBuilder createHub ({required String name, required String ownerId, }) { + return CreateHubVariablesBuilder(dataConnect, name: name,ownerId: ownerId,); + } + + + UpdateHubVariablesBuilder updateHub ({required String id, }) { + return UpdateHubVariablesBuilder(dataConnect, id: id,); + } + + + DeleteHubVariablesBuilder deleteHub ({required String id, }) { + return DeleteHubVariablesBuilder(dataConnect, id: id,); + } + + + ListStaffVariablesBuilder listStaff () { + return ListStaffVariablesBuilder(dataConnect, ); + } + + + GetStaffByIdVariablesBuilder getStaffById ({required String id, }) { + return GetStaffByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetStaffByUserIdVariablesBuilder getStaffByUserId ({required String userId, }) { + return GetStaffByUserIdVariablesBuilder(dataConnect, userId: userId,); + } + + + FilterStaffVariablesBuilder filterStaff () { + return FilterStaffVariablesBuilder(dataConnect, ); + } + + + CreateStaffRoleVariablesBuilder createStaffRole ({required String staffId, required String roleId, }) { + return CreateStaffRoleVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); + } + + + DeleteStaffRoleVariablesBuilder deleteStaffRole ({required String staffId, required String roleId, }) { + return DeleteStaffRoleVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); + } + + + CreateUserConversationVariablesBuilder createUserConversation ({required String conversationId, required String userId, }) { + return CreateUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); + } + + + UpdateUserConversationVariablesBuilder updateUserConversation ({required String conversationId, required String userId, }) { + return UpdateUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); + } + + + MarkConversationAsReadVariablesBuilder markConversationAsRead ({required String conversationId, required String userId, }) { + return MarkConversationAsReadVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); + } + + + IncrementUnreadForUserVariablesBuilder incrementUnreadForUser ({required String conversationId, required String userId, required int unreadCount, }) { + return IncrementUnreadForUserVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,unreadCount: unreadCount,); + } + + + DeleteUserConversationVariablesBuilder deleteUserConversation ({required String conversationId, required String userId, }) { + return DeleteUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); + } + + + CreateCategoryVariablesBuilder createCategory ({required String categoryId, required String label, }) { + return CreateCategoryVariablesBuilder(dataConnect, categoryId: categoryId,label: label,); + } + + + UpdateCategoryVariablesBuilder updateCategory ({required String id, }) { + return UpdateCategoryVariablesBuilder(dataConnect, id: id,); + } + + + DeleteCategoryVariablesBuilder deleteCategory ({required String id, }) { + return DeleteCategoryVariablesBuilder(dataConnect, id: id,); + } + + + ListCategoriesVariablesBuilder listCategories () { + return ListCategoriesVariablesBuilder(dataConnect, ); + } + + + GetCategoryByIdVariablesBuilder getCategoryById ({required String id, }) { + return GetCategoryByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterCategoriesVariablesBuilder filterCategories () { + return FilterCategoriesVariablesBuilder(dataConnect, ); + } + + + CreateDocumentVariablesBuilder createDocument ({required DocumentType documentType, required String name, }) { + return CreateDocumentVariablesBuilder(dataConnect, documentType: documentType,name: name,); + } + + + UpdateDocumentVariablesBuilder updateDocument ({required String id, }) { + return UpdateDocumentVariablesBuilder(dataConnect, id: id,); + } + + + DeleteDocumentVariablesBuilder deleteDocument ({required String id, }) { + return DeleteDocumentVariablesBuilder(dataConnect, id: id,); + } + + + ListMessagesVariablesBuilder listMessages () { + return ListMessagesVariablesBuilder(dataConnect, ); + } + + + GetMessageByIdVariablesBuilder getMessageById ({required String id, }) { + return GetMessageByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetMessagesByConversationIdVariablesBuilder getMessagesByConversationId ({required String conversationId, }) { + return GetMessagesByConversationIdVariablesBuilder(dataConnect, conversationId: conversationId,); + } + + + ListOrdersVariablesBuilder listOrders () { + return ListOrdersVariablesBuilder(dataConnect, ); + } + + + GetOrderByIdVariablesBuilder getOrderById ({required String id, }) { + return GetOrderByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetOrdersByBusinessIdVariablesBuilder getOrdersByBusinessId ({required String businessId, }) { + return GetOrdersByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + GetOrdersByVendorIdVariablesBuilder getOrdersByVendorId ({required String vendorId, }) { + return GetOrdersByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + GetOrdersByStatusVariablesBuilder getOrdersByStatus ({required OrderStatus status, }) { + return GetOrdersByStatusVariablesBuilder(dataConnect, status: status,); + } + + + GetOrdersByDateRangeVariablesBuilder getOrdersByDateRange ({required Timestamp start, required Timestamp end, }) { + return GetOrdersByDateRangeVariablesBuilder(dataConnect, start: start,end: end,); + } + + + GetRapidOrdersVariablesBuilder getRapidOrders () { + return GetRapidOrdersVariablesBuilder(dataConnect, ); + } + + + GetStaffCourseByIdVariablesBuilder getStaffCourseById ({required String id, }) { + return GetStaffCourseByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListStaffCoursesByStaffIdVariablesBuilder listStaffCoursesByStaffId ({required String staffId, }) { + return ListStaffCoursesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + ListStaffCoursesByCourseIdVariablesBuilder listStaffCoursesByCourseId ({required String courseId, }) { + return ListStaffCoursesByCourseIdVariablesBuilder(dataConnect, courseId: courseId,); + } + + + GetStaffCourseByStaffAndCourseVariablesBuilder getStaffCourseByStaffAndCourse ({required String staffId, required String courseId, }) { + return GetStaffCourseByStaffAndCourseVariablesBuilder(dataConnect, staffId: staffId,courseId: courseId,); + } + + + ListTaxFormsVariablesBuilder listTaxForms () { + return ListTaxFormsVariablesBuilder(dataConnect, ); + } + + + GetTaxFormByIdVariablesBuilder getTaxFormById ({required String id, }) { + return GetTaxFormByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetTaxFormsBystaffIdVariablesBuilder getTaxFormsBystaffId ({required String staffId, }) { + return GetTaxFormsBystaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + FilterTaxFormsVariablesBuilder filterTaxForms () { + return FilterTaxFormsVariablesBuilder(dataConnect, ); + } + + + ListTeamMembersVariablesBuilder listTeamMembers () { + return ListTeamMembersVariablesBuilder(dataConnect, ); + } + + + GetTeamMemberByIdVariablesBuilder getTeamMemberById ({required String id, }) { + return GetTeamMemberByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetTeamMembersByTeamIdVariablesBuilder getTeamMembersByTeamId ({required String teamId, }) { + return GetTeamMembersByTeamIdVariablesBuilder(dataConnect, teamId: teamId,); + } + + + ListCertificatesVariablesBuilder listCertificates () { + return ListCertificatesVariablesBuilder(dataConnect, ); + } + + + GetCertificateByIdVariablesBuilder getCertificateById ({required String id, }) { + return GetCertificateByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListCertificatesByStaffIdVariablesBuilder listCertificatesByStaffId ({required String staffId, }) { + return ListCertificatesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + CreateConversationVariablesBuilder createConversation () { + return CreateConversationVariablesBuilder(dataConnect, ); + } + + + UpdateConversationVariablesBuilder updateConversation ({required String id, }) { + return UpdateConversationVariablesBuilder(dataConnect, id: id,); + } + + + UpdateConversationLastMessageVariablesBuilder updateConversationLastMessage ({required String id, }) { + return UpdateConversationLastMessageVariablesBuilder(dataConnect, id: id,); + } + + + DeleteConversationVariablesBuilder deleteConversation ({required String id, }) { + return DeleteConversationVariablesBuilder(dataConnect, id: id,); + } + + + CreateOrderVariablesBuilder createOrder ({required String businessId, required OrderType orderType, }) { + return CreateOrderVariablesBuilder(dataConnect, businessId: businessId,orderType: orderType,); + } + + + UpdateOrderVariablesBuilder updateOrder ({required String id, }) { + return UpdateOrderVariablesBuilder(dataConnect, id: id,); + } + + + DeleteOrderVariablesBuilder deleteOrder ({required String id, }) { + return DeleteOrderVariablesBuilder(dataConnect, id: id,); + } + + + ListRolesVariablesBuilder listRoles () { + return ListRolesVariablesBuilder(dataConnect, ); + } + + + GetRoleByIdVariablesBuilder getRoleById ({required String id, }) { + return GetRoleByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListRolesByVendorIdVariablesBuilder listRolesByVendorId ({required String vendorId, }) { + return ListRolesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListRolesByroleCategoryIdVariablesBuilder listRolesByroleCategoryId ({required String roleCategoryId, }) { + return ListRolesByroleCategoryIdVariablesBuilder(dataConnect, roleCategoryId: roleCategoryId,); + } + + + CreateRoleCategoryVariablesBuilder createRoleCategory ({required String roleName, required RoleCategoryType category, }) { + return CreateRoleCategoryVariablesBuilder(dataConnect, roleName: roleName,category: category,); + } + + + UpdateRoleCategoryVariablesBuilder updateRoleCategory ({required String id, }) { + return UpdateRoleCategoryVariablesBuilder(dataConnect, id: id,); + } + + + DeleteRoleCategoryVariablesBuilder deleteRoleCategory ({required String id, }) { + return DeleteRoleCategoryVariablesBuilder(dataConnect, id: id,); + } + + + CreateShiftVariablesBuilder createShift ({required String title, required String orderId, }) { + return CreateShiftVariablesBuilder(dataConnect, title: title,orderId: orderId,); + } + + + UpdateShiftVariablesBuilder updateShift ({required String id, }) { + return UpdateShiftVariablesBuilder(dataConnect, id: id,); + } + + + DeleteShiftVariablesBuilder deleteShift ({required String id, }) { + return DeleteShiftVariablesBuilder(dataConnect, id: id,); + } + + + ListStaffAvailabilitiesVariablesBuilder listStaffAvailabilities () { + return ListStaffAvailabilitiesVariablesBuilder(dataConnect, ); + } + + + ListStaffAvailabilitiesByStaffIdVariablesBuilder listStaffAvailabilitiesByStaffId ({required String staffId, }) { + return ListStaffAvailabilitiesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + GetStaffAvailabilityByKeyVariablesBuilder getStaffAvailabilityByKey ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { + return GetStaffAvailabilityByKeyVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); + } + + + ListStaffAvailabilitiesByDayVariablesBuilder listStaffAvailabilitiesByDay ({required DayOfWeek day, }) { + return ListStaffAvailabilitiesByDayVariablesBuilder(dataConnect, day: day,); + } + + + CreateTeamVariablesBuilder createTeam ({required String teamName, required String ownerId, required String ownerName, required String ownerRole, }) { + return CreateTeamVariablesBuilder(dataConnect, teamName: teamName,ownerId: ownerId,ownerName: ownerName,ownerRole: ownerRole,); + } + + + UpdateTeamVariablesBuilder updateTeam ({required String id, }) { + return UpdateTeamVariablesBuilder(dataConnect, id: id,); + } + + + DeleteTeamVariablesBuilder deleteTeam ({required String id, }) { + return DeleteTeamVariablesBuilder(dataConnect, id: id,); + } + + + ListConversationsVariablesBuilder listConversations () { + return ListConversationsVariablesBuilder(dataConnect, ); + } + + + GetConversationByIdVariablesBuilder getConversationById ({required String id, }) { + return GetConversationByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListConversationsByTypeVariablesBuilder listConversationsByType ({required ConversationType conversationType, }) { + return ListConversationsByTypeVariablesBuilder(dataConnect, conversationType: conversationType,); + } + + + ListConversationsByStatusVariablesBuilder listConversationsByStatus ({required ConversationStatus status, }) { + return ListConversationsByStatusVariablesBuilder(dataConnect, status: status,); + } + + + FilterConversationsVariablesBuilder filterConversations () { + return FilterConversationsVariablesBuilder(dataConnect, ); + } + + + ListCoursesVariablesBuilder listCourses () { + return ListCoursesVariablesBuilder(dataConnect, ); + } + + + GetCourseByIdVariablesBuilder getCourseById ({required String id, }) { + return GetCourseByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterCoursesVariablesBuilder filterCourses () { + return FilterCoursesVariablesBuilder(dataConnect, ); + } + + + GetMyTasksVariablesBuilder getMyTasks ({required String teamMemberId, }) { + return GetMyTasksVariablesBuilder(dataConnect, teamMemberId: teamMemberId,); + } + + + GetMemberTaskByIdKeyVariablesBuilder getMemberTaskByIdKey ({required String teamMemberId, required String taskId, }) { + return GetMemberTaskByIdKeyVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); + } + + + GetMemberTasksByTaskIdVariablesBuilder getMemberTasksByTaskId ({required String taskId, }) { + return GetMemberTasksByTaskIdVariablesBuilder(dataConnect, taskId: taskId,); + } + + + ListShiftsVariablesBuilder listShifts () { + return ListShiftsVariablesBuilder(dataConnect, ); + } + + + GetShiftByIdVariablesBuilder getShiftById ({required String id, }) { + return GetShiftByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterShiftsVariablesBuilder filterShifts () { + return FilterShiftsVariablesBuilder(dataConnect, ); + } + + + GetShiftsByBusinessIdVariablesBuilder getShiftsByBusinessId ({required String businessId, }) { + return GetShiftsByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + GetShiftsByVendorIdVariablesBuilder getShiftsByVendorId ({required String vendorId, }) { + return GetShiftsByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListStaffRolesVariablesBuilder listStaffRoles () { + return ListStaffRolesVariablesBuilder(dataConnect, ); + } + + + GetStaffRoleByKeyVariablesBuilder getStaffRoleByKey ({required String staffId, required String roleId, }) { + return GetStaffRoleByKeyVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); + } + + + ListStaffRolesByStaffIdVariablesBuilder listStaffRolesByStaffId ({required String staffId, }) { + return ListStaffRolesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + ListStaffRolesByRoleIdVariablesBuilder listStaffRolesByRoleId ({required String roleId, }) { + return ListStaffRolesByRoleIdVariablesBuilder(dataConnect, roleId: roleId,); + } + + + FilterStaffRolesVariablesBuilder filterStaffRoles () { + return FilterStaffRolesVariablesBuilder(dataConnect, ); + } + + + ListApplicationsVariablesBuilder listApplications () { + return ListApplicationsVariablesBuilder(dataConnect, ); + } + + + GetApplicationByIdVariablesBuilder getApplicationById ({required String id, }) { + return GetApplicationByIdVariablesBuilder(dataConnect, id: id,); + } + + + GetApplicationsByShiftIdVariablesBuilder getApplicationsByShiftId ({required String shiftId, }) { + return GetApplicationsByShiftIdVariablesBuilder(dataConnect, shiftId: shiftId,); + } + + + GetApplicationsByShiftIdAndStatusVariablesBuilder getApplicationsByShiftIdAndStatus ({required String shiftId, required ApplicationStatus status, }) { + return GetApplicationsByShiftIdAndStatusVariablesBuilder(dataConnect, shiftId: shiftId,status: status,); + } + + + GetApplicationsByStaffIdVariablesBuilder getApplicationsByStaffId ({required String staffId, }) { + return GetApplicationsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder listAcceptedApplicationsByShiftRoleKey ({required String shiftId, required String roleId, }) { + return ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); + } + + + ListAcceptedApplicationsByBusinessForDayVariablesBuilder listAcceptedApplicationsByBusinessForDay ({required String businessId, required Timestamp dayStart, required Timestamp dayEnd, }) { + return ListAcceptedApplicationsByBusinessForDayVariablesBuilder(dataConnect, businessId: businessId,dayStart: dayStart,dayEnd: dayEnd,); + } + + + ListStaffsApplicationsByBusinessForDayVariablesBuilder listStaffsApplicationsByBusinessForDay ({required String businessId, required Timestamp dayStart, required Timestamp dayEnd, }) { + return ListStaffsApplicationsByBusinessForDayVariablesBuilder(dataConnect, businessId: businessId,dayStart: dayStart,dayEnd: dayEnd,); + } + + + ListBusinessesVariablesBuilder listBusinesses () { + return ListBusinessesVariablesBuilder(dataConnect, ); + } + + + GetBusinessesByUserIdVariablesBuilder getBusinessesByUserId ({required String userId, }) { + return GetBusinessesByUserIdVariablesBuilder(dataConnect, userId: userId,); + } + + + GetBusinessByIdVariablesBuilder getBusinessById ({required String id, }) { + return GetBusinessByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListInvoiceTemplatesVariablesBuilder listInvoiceTemplates () { + return ListInvoiceTemplatesVariablesBuilder(dataConnect, ); + } + + + GetInvoiceTemplateByIdVariablesBuilder getInvoiceTemplateById ({required String id, }) { + return GetInvoiceTemplateByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListInvoiceTemplatesByOwnerIdVariablesBuilder listInvoiceTemplatesByOwnerId ({required String ownerId, }) { + return ListInvoiceTemplatesByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); + } + + + ListInvoiceTemplatesByVendorIdVariablesBuilder listInvoiceTemplatesByVendorId ({required String vendorId, }) { + return ListInvoiceTemplatesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListInvoiceTemplatesByBusinessIdVariablesBuilder listInvoiceTemplatesByBusinessId ({required String businessId, }) { + return ListInvoiceTemplatesByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + ListInvoiceTemplatesByOrderIdVariablesBuilder listInvoiceTemplatesByOrderId ({required String orderId, }) { + return ListInvoiceTemplatesByOrderIdVariablesBuilder(dataConnect, orderId: orderId,); + } + + + SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder searchInvoiceTemplatesByOwnerAndName ({required String ownerId, required String name, }) { + return SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder(dataConnect, ownerId: ownerId,name: name,); + } + + + ListLevelsVariablesBuilder listLevels () { + return ListLevelsVariablesBuilder(dataConnect, ); + } + + + GetLevelByIdVariablesBuilder getLevelById ({required String id, }) { + return GetLevelByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterLevelsVariablesBuilder filterLevels () { + return FilterLevelsVariablesBuilder(dataConnect, ); + } + + + CreateRoleVariablesBuilder createRole ({required String name, required double costPerHour, required String vendorId, required String roleCategoryId, }) { + return CreateRoleVariablesBuilder(dataConnect, name: name,costPerHour: costPerHour,vendorId: vendorId,roleCategoryId: roleCategoryId,); + } + + + UpdateRoleVariablesBuilder updateRole ({required String id, required String roleCategoryId, }) { + return UpdateRoleVariablesBuilder(dataConnect, id: id,roleCategoryId: roleCategoryId,); + } + + + DeleteRoleVariablesBuilder deleteRole ({required String id, }) { + return DeleteRoleVariablesBuilder(dataConnect, id: id,); + } + + + CreateTeamHubVariablesBuilder createTeamHub ({required String teamId, required String hubName, required String address, }) { + return CreateTeamHubVariablesBuilder(dataConnect, teamId: teamId,hubName: hubName,address: address,); + } + + + UpdateTeamHubVariablesBuilder updateTeamHub ({required String id, }) { + return UpdateTeamHubVariablesBuilder(dataConnect, id: id,); + } + + + DeleteTeamHubVariablesBuilder deleteTeamHub ({required String id, }) { + return DeleteTeamHubVariablesBuilder(dataConnect, id: id,); + } + + + ListTeamHudDepartmentsVariablesBuilder listTeamHudDepartments () { + return ListTeamHudDepartmentsVariablesBuilder(dataConnect, ); + } + + + GetTeamHudDepartmentByIdVariablesBuilder getTeamHudDepartmentById ({required String id, }) { + return GetTeamHudDepartmentByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListTeamHudDepartmentsByTeamHubIdVariablesBuilder listTeamHudDepartmentsByTeamHubId ({required String teamHubId, }) { + return ListTeamHudDepartmentsByTeamHubIdVariablesBuilder(dataConnect, teamHubId: teamHubId,); + } + + + ListVendorBenefitPlansVariablesBuilder listVendorBenefitPlans () { + return ListVendorBenefitPlansVariablesBuilder(dataConnect, ); + } + + + GetVendorBenefitPlanByIdVariablesBuilder getVendorBenefitPlanById ({required String id, }) { + return GetVendorBenefitPlanByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListVendorBenefitPlansByVendorIdVariablesBuilder listVendorBenefitPlansByVendorId ({required String vendorId, }) { + return ListVendorBenefitPlansByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListActiveVendorBenefitPlansByVendorIdVariablesBuilder listActiveVendorBenefitPlansByVendorId ({required String vendorId, }) { + return ListActiveVendorBenefitPlansByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + FilterVendorBenefitPlansVariablesBuilder filterVendorBenefitPlans () { + return FilterVendorBenefitPlansVariablesBuilder(dataConnect, ); + } + + + CreateAssignmentVariablesBuilder createAssignment ({required String workforceId, required String roleId, required String shiftId, }) { + return CreateAssignmentVariablesBuilder(dataConnect, workforceId: workforceId,roleId: roleId,shiftId: shiftId,); + } + + + UpdateAssignmentVariablesBuilder updateAssignment ({required String id, required String roleId, required String shiftId, }) { + return UpdateAssignmentVariablesBuilder(dataConnect, id: id,roleId: roleId,shiftId: shiftId,); + } + + + DeleteAssignmentVariablesBuilder deleteAssignment ({required String id, }) { + return DeleteAssignmentVariablesBuilder(dataConnect, id: id,); + } + + + ListAttireOptionsVariablesBuilder listAttireOptions () { + return ListAttireOptionsVariablesBuilder(dataConnect, ); + } + + + GetAttireOptionByIdVariablesBuilder getAttireOptionById ({required String id, }) { + return GetAttireOptionByIdVariablesBuilder(dataConnect, id: id,); + } + + + FilterAttireOptionsVariablesBuilder filterAttireOptions () { + return FilterAttireOptionsVariablesBuilder(dataConnect, ); + } + + + ListBenefitsDataVariablesBuilder listBenefitsData () { + return ListBenefitsDataVariablesBuilder(dataConnect, ); + } + + + GetBenefitsDataByKeyVariablesBuilder getBenefitsDataByKey ({required String staffId, required String vendorBenefitPlanId, }) { + return GetBenefitsDataByKeyVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); + } + + + ListBenefitsDataByStaffIdVariablesBuilder listBenefitsDataByStaffId ({required String staffId, }) { + return ListBenefitsDataByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder listBenefitsDataByVendorBenefitPlanId ({required String vendorBenefitPlanId, }) { + return ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder(dataConnect, vendorBenefitPlanId: vendorBenefitPlanId,); + } + + + ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder listBenefitsDataByVendorBenefitPlanIds ({required List vendorBenefitPlanIds, }) { + return ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder(dataConnect, vendorBenefitPlanIds: vendorBenefitPlanIds,); + } + + + CreateStaffCourseVariablesBuilder createStaffCourse ({required String staffId, required String courseId, }) { + return CreateStaffCourseVariablesBuilder(dataConnect, staffId: staffId,courseId: courseId,); + } + + + UpdateStaffCourseVariablesBuilder updateStaffCourse ({required String id, }) { + return UpdateStaffCourseVariablesBuilder(dataConnect, id: id,); + } + + + DeleteStaffCourseVariablesBuilder deleteStaffCourse ({required String id, }) { + return DeleteStaffCourseVariablesBuilder(dataConnect, id: id,); + } + + + CreateTaskVariablesBuilder createTask ({required String taskName, required TaskPriority priority, required TaskStatus status, required String ownerId, }) { + return CreateTaskVariablesBuilder(dataConnect, taskName: taskName,priority: priority,status: status,ownerId: ownerId,); + } + + + UpdateTaskVariablesBuilder updateTask ({required String id, }) { + return UpdateTaskVariablesBuilder(dataConnect, id: id,); + } + + + DeleteTaskVariablesBuilder deleteTask ({required String id, }) { + return DeleteTaskVariablesBuilder(dataConnect, id: id,); + } + + + CreateVendorBenefitPlanVariablesBuilder createVendorBenefitPlan ({required String vendorId, required String title, }) { + return CreateVendorBenefitPlanVariablesBuilder(dataConnect, vendorId: vendorId,title: title,); + } + + + UpdateVendorBenefitPlanVariablesBuilder updateVendorBenefitPlan ({required String id, }) { + return UpdateVendorBenefitPlanVariablesBuilder(dataConnect, id: id,); + } + + + DeleteVendorBenefitPlanVariablesBuilder deleteVendorBenefitPlan ({required String id, }) { + return DeleteVendorBenefitPlanVariablesBuilder(dataConnect, id: id,); + } + + + CreateCourseVariablesBuilder createCourse ({required String categoryId, }) { + return CreateCourseVariablesBuilder(dataConnect, categoryId: categoryId,); + } + + + UpdateCourseVariablesBuilder updateCourse ({required String id, required String categoryId, }) { + return UpdateCourseVariablesBuilder(dataConnect, id: id,categoryId: categoryId,); + } + + + DeleteCourseVariablesBuilder deleteCourse ({required String id, }) { + return DeleteCourseVariablesBuilder(dataConnect, id: id,); + } + + + CreateLevelVariablesBuilder createLevel ({required String name, required int xpRequired, }) { + return CreateLevelVariablesBuilder(dataConnect, name: name,xpRequired: xpRequired,); + } + + + UpdateLevelVariablesBuilder updateLevel ({required String id, }) { + return UpdateLevelVariablesBuilder(dataConnect, id: id,); + } + + + DeleteLevelVariablesBuilder deleteLevel ({required String id, }) { + return DeleteLevelVariablesBuilder(dataConnect, id: id,); + } + + + ListRecentPaymentsVariablesBuilder listRecentPayments () { + return ListRecentPaymentsVariablesBuilder(dataConnect, ); + } + + + GetRecentPaymentByIdVariablesBuilder getRecentPaymentById ({required String id, }) { + return GetRecentPaymentByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListRecentPaymentsByStaffIdVariablesBuilder listRecentPaymentsByStaffId ({required String staffId, }) { + return ListRecentPaymentsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + } + + + ListRecentPaymentsByApplicationIdVariablesBuilder listRecentPaymentsByApplicationId ({required String applicationId, }) { + return ListRecentPaymentsByApplicationIdVariablesBuilder(dataConnect, applicationId: applicationId,); + } + + + ListRecentPaymentsByInvoiceIdVariablesBuilder listRecentPaymentsByInvoiceId ({required String invoiceId, }) { + return ListRecentPaymentsByInvoiceIdVariablesBuilder(dataConnect, invoiceId: invoiceId,); + } + + + ListRecentPaymentsByStatusVariablesBuilder listRecentPaymentsByStatus ({required RecentPaymentStatus status, }) { + return ListRecentPaymentsByStatusVariablesBuilder(dataConnect, status: status,); + } + + + ListRecentPaymentsByInvoiceIdsVariablesBuilder listRecentPaymentsByInvoiceIds ({required List invoiceIds, }) { + return ListRecentPaymentsByInvoiceIdsVariablesBuilder(dataConnect, invoiceIds: invoiceIds,); + } + + + ListRecentPaymentsByBusinessIdVariablesBuilder listRecentPaymentsByBusinessId ({required String businessId, }) { + return ListRecentPaymentsByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + CreateStaffDocumentVariablesBuilder createStaffDocument ({required String staffId, required String staffName, required String documentId, required DocumentStatus status, }) { + return CreateStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,staffName: staffName,documentId: documentId,status: status,); + } + + + UpdateStaffDocumentVariablesBuilder updateStaffDocument ({required String staffId, required String documentId, }) { + return UpdateStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,documentId: documentId,); + } + + + DeleteStaffDocumentVariablesBuilder deleteStaffDocument ({required String staffId, required String documentId, }) { + return DeleteStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,documentId: documentId,); + } + + CreateTeamMemberVariablesBuilder createTeamMember ({required String teamId, required TeamMemberRole role, required String userId, }) { return CreateTeamMemberVariablesBuilder(dataConnect, teamId: teamId,role: role,userId: userId,); } @@ -2715,58 +4036,113 @@ class ExampleConnector { } - ListActivityLogsVariablesBuilder listActivityLogs () { - return ListActivityLogsVariablesBuilder(dataConnect, ); + ListUserConversationsVariablesBuilder listUserConversations () { + return ListUserConversationsVariablesBuilder(dataConnect, ); } - GetActivityLogByIdVariablesBuilder getActivityLogById ({required String id, }) { - return GetActivityLogByIdVariablesBuilder(dataConnect, id: id,); + GetUserConversationByKeyVariablesBuilder getUserConversationByKey ({required String conversationId, required String userId, }) { + return GetUserConversationByKeyVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); } - ListActivityLogsByUserIdVariablesBuilder listActivityLogsByUserId ({required String userId, }) { - return ListActivityLogsByUserIdVariablesBuilder(dataConnect, userId: userId,); + ListUserConversationsByUserIdVariablesBuilder listUserConversationsByUserId ({required String userId, }) { + return ListUserConversationsByUserIdVariablesBuilder(dataConnect, userId: userId,); } - ListUnreadActivityLogsByUserIdVariablesBuilder listUnreadActivityLogsByUserId ({required String userId, }) { - return ListUnreadActivityLogsByUserIdVariablesBuilder(dataConnect, userId: userId,); + ListUnreadUserConversationsByUserIdVariablesBuilder listUnreadUserConversationsByUserId ({required String userId, }) { + return ListUnreadUserConversationsByUserIdVariablesBuilder(dataConnect, userId: userId,); } - FilterActivityLogsVariablesBuilder filterActivityLogs () { - return FilterActivityLogsVariablesBuilder(dataConnect, ); + ListUserConversationsByConversationIdVariablesBuilder listUserConversationsByConversationId ({required String conversationId, }) { + return ListUserConversationsByConversationIdVariablesBuilder(dataConnect, conversationId: conversationId,); } - CreateBenefitsDataVariablesBuilder createBenefitsData ({required String vendorBenefitPlanId, required String staffId, required int current, }) { - return CreateBenefitsDataVariablesBuilder(dataConnect, vendorBenefitPlanId: vendorBenefitPlanId,staffId: staffId,current: current,); + FilterUserConversationsVariablesBuilder filterUserConversations () { + return FilterUserConversationsVariablesBuilder(dataConnect, ); } - UpdateBenefitsDataVariablesBuilder updateBenefitsData ({required String staffId, required String vendorBenefitPlanId, }) { - return UpdateBenefitsDataVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); + ListVendorRatesVariablesBuilder listVendorRates () { + return ListVendorRatesVariablesBuilder(dataConnect, ); } - DeleteBenefitsDataVariablesBuilder deleteBenefitsData ({required String staffId, required String vendorBenefitPlanId, }) { - return DeleteBenefitsDataVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); + GetVendorRateByIdVariablesBuilder getVendorRateById ({required String id, }) { + return GetVendorRateByIdVariablesBuilder(dataConnect, id: id,); } - ListBusinessesVariablesBuilder listBusinesses () { - return ListBusinessesVariablesBuilder(dataConnect, ); + CreateBusinessVariablesBuilder createBusiness ({required String businessName, required String userId, required BusinessRateGroup rateGroup, required BusinessStatus status, }) { + return CreateBusinessVariablesBuilder(dataConnect, businessName: businessName,userId: userId,rateGroup: rateGroup,status: status,); } - GetBusinessesByUserIdVariablesBuilder getBusinessesByUserId ({required String userId, }) { - return GetBusinessesByUserIdVariablesBuilder(dataConnect, userId: userId,); + UpdateBusinessVariablesBuilder updateBusiness ({required String id, }) { + return UpdateBusinessVariablesBuilder(dataConnect, id: id,); } - GetBusinessByIdVariablesBuilder getBusinessById ({required String id, }) { - return GetBusinessByIdVariablesBuilder(dataConnect, id: id,); + DeleteBusinessVariablesBuilder deleteBusiness ({required String id, }) { + return DeleteBusinessVariablesBuilder(dataConnect, id: id,); + } + + + CreateInvoiceVariablesBuilder createInvoice ({required InvoiceStatus status, required String vendorId, required String businessId, required String orderId, required String invoiceNumber, required Timestamp issueDate, required Timestamp dueDate, required double amount, }) { + return CreateInvoiceVariablesBuilder(dataConnect, status: status,vendorId: vendorId,businessId: businessId,orderId: orderId,invoiceNumber: invoiceNumber,issueDate: issueDate,dueDate: dueDate,amount: amount,); + } + + + UpdateInvoiceVariablesBuilder updateInvoice ({required String id, }) { + return UpdateInvoiceVariablesBuilder(dataConnect, id: id,); + } + + + DeleteInvoiceVariablesBuilder deleteInvoice ({required String id, }) { + return DeleteInvoiceVariablesBuilder(dataConnect, id: id,); + } + + + ListInvoicesVariablesBuilder listInvoices () { + return ListInvoicesVariablesBuilder(dataConnect, ); + } + + + GetInvoiceByIdVariablesBuilder getInvoiceById ({required String id, }) { + return GetInvoiceByIdVariablesBuilder(dataConnect, id: id,); + } + + + ListInvoicesByVendorIdVariablesBuilder listInvoicesByVendorId ({required String vendorId, }) { + return ListInvoicesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); + } + + + ListInvoicesByBusinessIdVariablesBuilder listInvoicesByBusinessId ({required String businessId, }) { + return ListInvoicesByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + } + + + ListInvoicesByOrderIdVariablesBuilder listInvoicesByOrderId ({required String orderId, }) { + return ListInvoicesByOrderIdVariablesBuilder(dataConnect, orderId: orderId,); + } + + + ListInvoicesByStatusVariablesBuilder listInvoicesByStatus ({required InvoiceStatus status, }) { + return ListInvoicesByStatusVariablesBuilder(dataConnect, status: status,); + } + + + FilterInvoicesVariablesBuilder filterInvoices () { + return FilterInvoicesVariablesBuilder(dataConnect, ); + } + + + ListOverdueInvoicesVariablesBuilder listOverdueInvoices ({required Timestamp now, }) { + return ListOverdueInvoicesVariablesBuilder(dataConnect, now: now,); } @@ -2865,378 +4241,23 @@ class ExampleConnector { } - ListStaffAvailabilitiesVariablesBuilder listStaffAvailabilities () { - return ListStaffAvailabilitiesVariablesBuilder(dataConnect, ); + ListTeamHubsVariablesBuilder listTeamHubs () { + return ListTeamHubsVariablesBuilder(dataConnect, ); } - ListStaffAvailabilitiesByStaffIdVariablesBuilder listStaffAvailabilitiesByStaffId ({required String staffId, }) { - return ListStaffAvailabilitiesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + GetTeamHubByIdVariablesBuilder getTeamHubById ({required String id, }) { + return GetTeamHubByIdVariablesBuilder(dataConnect, id: id,); } - GetStaffAvailabilityByKeyVariablesBuilder getStaffAvailabilityByKey ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { - return GetStaffAvailabilityByKeyVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); + GetTeamHubsByTeamIdVariablesBuilder getTeamHubsByTeamId ({required String teamId, }) { + return GetTeamHubsByTeamIdVariablesBuilder(dataConnect, teamId: teamId,); } - ListStaffAvailabilitiesByDayVariablesBuilder listStaffAvailabilitiesByDay ({required DayOfWeek day, }) { - return ListStaffAvailabilitiesByDayVariablesBuilder(dataConnect, day: day,); - } - - - CreateStaffCourseVariablesBuilder createStaffCourse ({required String staffId, required String courseId, }) { - return CreateStaffCourseVariablesBuilder(dataConnect, staffId: staffId,courseId: courseId,); - } - - - UpdateStaffCourseVariablesBuilder updateStaffCourse ({required String id, }) { - return UpdateStaffCourseVariablesBuilder(dataConnect, id: id,); - } - - - DeleteStaffCourseVariablesBuilder deleteStaffCourse ({required String id, }) { - return DeleteStaffCourseVariablesBuilder(dataConnect, id: id,); - } - - - CreateTeamVariablesBuilder createTeam ({required String teamName, required String ownerId, required String ownerName, required String ownerRole, }) { - return CreateTeamVariablesBuilder(dataConnect, teamName: teamName,ownerId: ownerId,ownerName: ownerName,ownerRole: ownerRole,); - } - - - UpdateTeamVariablesBuilder updateTeam ({required String id, }) { - return UpdateTeamVariablesBuilder(dataConnect, id: id,); - } - - - DeleteTeamVariablesBuilder deleteTeam ({required String id, }) { - return DeleteTeamVariablesBuilder(dataConnect, id: id,); - } - - - CreateTeamHubVariablesBuilder createTeamHub ({required String teamId, required String hubName, required String address, }) { - return CreateTeamHubVariablesBuilder(dataConnect, teamId: teamId,hubName: hubName,address: address,); - } - - - UpdateTeamHubVariablesBuilder updateTeamHub ({required String id, }) { - return UpdateTeamHubVariablesBuilder(dataConnect, id: id,); - } - - - DeleteTeamHubVariablesBuilder deleteTeamHub ({required String id, }) { - return DeleteTeamHubVariablesBuilder(dataConnect, id: id,); - } - - - CreateApplicationVariablesBuilder createApplication ({required String shiftId, required String staffId, required ApplicationStatus status, required ApplicationOrigin origin, required String roleId, }) { - return CreateApplicationVariablesBuilder(dataConnect, shiftId: shiftId,staffId: staffId,status: status,origin: origin,roleId: roleId,); - } - - - UpdateApplicationStatusVariablesBuilder updateApplicationStatus ({required String id, required String roleId, }) { - return UpdateApplicationStatusVariablesBuilder(dataConnect, id: id,roleId: roleId,); - } - - - DeleteApplicationVariablesBuilder deleteApplication ({required String id, }) { - return DeleteApplicationVariablesBuilder(dataConnect, id: id,); - } - - - ListConversationsVariablesBuilder listConversations () { - return ListConversationsVariablesBuilder(dataConnect, ); - } - - - GetConversationByIdVariablesBuilder getConversationById ({required String id, }) { - return GetConversationByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListConversationsByTypeVariablesBuilder listConversationsByType ({required ConversationType conversationType, }) { - return ListConversationsByTypeVariablesBuilder(dataConnect, conversationType: conversationType,); - } - - - ListConversationsByStatusVariablesBuilder listConversationsByStatus ({required ConversationStatus status, }) { - return ListConversationsByStatusVariablesBuilder(dataConnect, status: status,); - } - - - FilterConversationsVariablesBuilder filterConversations () { - return FilterConversationsVariablesBuilder(dataConnect, ); - } - - - CreateShiftVariablesBuilder createShift ({required String title, required String orderId, }) { - return CreateShiftVariablesBuilder(dataConnect, title: title,orderId: orderId,); - } - - - UpdateShiftVariablesBuilder updateShift ({required String id, }) { - return UpdateShiftVariablesBuilder(dataConnect, id: id,); - } - - - DeleteShiftVariablesBuilder deleteShift ({required String id, }) { - return DeleteShiftVariablesBuilder(dataConnect, id: id,); - } - - - ListTeamsVariablesBuilder listTeams () { - return ListTeamsVariablesBuilder(dataConnect, ); - } - - - GetTeamByIdVariablesBuilder getTeamById ({required String id, }) { - return GetTeamByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetTeamsByOwnerIdVariablesBuilder getTeamsByOwnerId ({required String ownerId, }) { - return GetTeamsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); - } - - - ListCategoriesVariablesBuilder listCategories () { - return ListCategoriesVariablesBuilder(dataConnect, ); - } - - - GetCategoryByIdVariablesBuilder getCategoryById ({required String id, }) { - return GetCategoryByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterCategoriesVariablesBuilder filterCategories () { - return FilterCategoriesVariablesBuilder(dataConnect, ); - } - - - CreateUserConversationVariablesBuilder createUserConversation ({required String conversationId, required String userId, }) { - return CreateUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); - } - - - UpdateUserConversationVariablesBuilder updateUserConversation ({required String conversationId, required String userId, }) { - return UpdateUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); - } - - - MarkConversationAsReadVariablesBuilder markConversationAsRead ({required String conversationId, required String userId, }) { - return MarkConversationAsReadVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); - } - - - IncrementUnreadForUserVariablesBuilder incrementUnreadForUser ({required String conversationId, required String userId, required int unreadCount, }) { - return IncrementUnreadForUserVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,unreadCount: unreadCount,); - } - - - DeleteUserConversationVariablesBuilder deleteUserConversation ({required String conversationId, required String userId, }) { - return DeleteUserConversationVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); - } - - - ListVendorBenefitPlansVariablesBuilder listVendorBenefitPlans () { - return ListVendorBenefitPlansVariablesBuilder(dataConnect, ); - } - - - GetVendorBenefitPlanByIdVariablesBuilder getVendorBenefitPlanById ({required String id, }) { - return GetVendorBenefitPlanByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListVendorBenefitPlansByVendorIdVariablesBuilder listVendorBenefitPlansByVendorId ({required String vendorId, }) { - return ListVendorBenefitPlansByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListActiveVendorBenefitPlansByVendorIdVariablesBuilder listActiveVendorBenefitPlansByVendorId ({required String vendorId, }) { - return ListActiveVendorBenefitPlansByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - FilterVendorBenefitPlansVariablesBuilder filterVendorBenefitPlans () { - return FilterVendorBenefitPlansVariablesBuilder(dataConnect, ); - } - - - ListCoursesVariablesBuilder listCourses () { - return ListCoursesVariablesBuilder(dataConnect, ); - } - - - GetCourseByIdVariablesBuilder getCourseById ({required String id, }) { - return GetCourseByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterCoursesVariablesBuilder filterCourses () { - return FilterCoursesVariablesBuilder(dataConnect, ); - } - - - ListRolesVariablesBuilder listRoles () { - return ListRolesVariablesBuilder(dataConnect, ); - } - - - GetRoleByIdVariablesBuilder getRoleById ({required String id, }) { - return GetRoleByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListRolesByVendorIdVariablesBuilder listRolesByVendorId ({required String vendorId, }) { - return ListRolesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListRolesByroleCategoryIdVariablesBuilder listRolesByroleCategoryId ({required String roleCategoryId, }) { - return ListRolesByroleCategoryIdVariablesBuilder(dataConnect, roleCategoryId: roleCategoryId,); - } - - - GetStaffCourseByIdVariablesBuilder getStaffCourseById ({required String id, }) { - return GetStaffCourseByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListStaffCoursesByStaffIdVariablesBuilder listStaffCoursesByStaffId ({required String staffId, }) { - return ListStaffCoursesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - ListStaffCoursesByCourseIdVariablesBuilder listStaffCoursesByCourseId ({required String courseId, }) { - return ListStaffCoursesByCourseIdVariablesBuilder(dataConnect, courseId: courseId,); - } - - - GetStaffCourseByStaffAndCourseVariablesBuilder getStaffCourseByStaffAndCourse ({required String staffId, required String courseId, }) { - return GetStaffCourseByStaffAndCourseVariablesBuilder(dataConnect, staffId: staffId,courseId: courseId,); - } - - - CreateUserVariablesBuilder createUser ({required String id, required UserBaseRole role, }) { - return CreateUserVariablesBuilder(dataConnect, id: id,role: role,); - } - - - UpdateUserVariablesBuilder updateUser ({required String id, }) { - return UpdateUserVariablesBuilder(dataConnect, id: id,); - } - - - DeleteUserVariablesBuilder deleteUser ({required String id, }) { - return DeleteUserVariablesBuilder(dataConnect, id: id,); - } - - - CreateClientFeedbackVariablesBuilder createClientFeedback ({required String businessId, required String vendorId, }) { - return CreateClientFeedbackVariablesBuilder(dataConnect, businessId: businessId,vendorId: vendorId,); - } - - - UpdateClientFeedbackVariablesBuilder updateClientFeedback ({required String id, }) { - return UpdateClientFeedbackVariablesBuilder(dataConnect, id: id,); - } - - - DeleteClientFeedbackVariablesBuilder deleteClientFeedback ({required String id, }) { - return DeleteClientFeedbackVariablesBuilder(dataConnect, id: id,); - } - - - GetShiftRoleByIdVariablesBuilder getShiftRoleById ({required String shiftId, required String roleId, }) { - return GetShiftRoleByIdVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); - } - - - ListShiftRolesByShiftIdVariablesBuilder listShiftRolesByShiftId ({required String shiftId, }) { - return ListShiftRolesByShiftIdVariablesBuilder(dataConnect, shiftId: shiftId,); - } - - - ListShiftRolesByRoleIdVariablesBuilder listShiftRolesByRoleId ({required String roleId, }) { - return ListShiftRolesByRoleIdVariablesBuilder(dataConnect, roleId: roleId,); - } - - - ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder listShiftRolesByShiftIdAndTimeRange ({required String shiftId, required Timestamp start, required Timestamp end, }) { - return ListShiftRolesByShiftIdAndTimeRangeVariablesBuilder(dataConnect, shiftId: shiftId,start: start,end: end,); - } - - - ListShiftRolesByVendorIdVariablesBuilder listShiftRolesByVendorId ({required String vendorId, }) { - return ListShiftRolesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListShiftRolesByBusinessAndDateRangeVariablesBuilder listShiftRolesByBusinessAndDateRange ({required String businessId, required Timestamp start, required Timestamp end, }) { - return ListShiftRolesByBusinessAndDateRangeVariablesBuilder(dataConnect, businessId: businessId,start: start,end: end,); - } - - - ListShiftRolesByBusinessAndOrderVariablesBuilder listShiftRolesByBusinessAndOrder ({required String businessId, required String orderId, }) { - return ListShiftRolesByBusinessAndOrderVariablesBuilder(dataConnect, businessId: businessId,orderId: orderId,); - } - - - ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder listShiftRolesByBusinessDateRangeCompletedOrders ({required String businessId, required Timestamp start, required Timestamp end, }) { - return ListShiftRolesByBusinessDateRangeCompletedOrdersVariablesBuilder(dataConnect, businessId: businessId,start: start,end: end,); - } - - - CreateStaffAvailabilityVariablesBuilder createStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { - return CreateStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); - } - - - UpdateStaffAvailabilityVariablesBuilder updateStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { - return UpdateStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); - } - - - DeleteStaffAvailabilityVariablesBuilder deleteStaffAvailability ({required String staffId, required DayOfWeek day, required AvailabilitySlot slot, }) { - return DeleteStaffAvailabilityVariablesBuilder(dataConnect, staffId: staffId,day: day,slot: slot,); - } - - - CreateConversationVariablesBuilder createConversation () { - return CreateConversationVariablesBuilder(dataConnect, ); - } - - - UpdateConversationVariablesBuilder updateConversation ({required String id, }) { - return UpdateConversationVariablesBuilder(dataConnect, id: id,); - } - - - UpdateConversationLastMessageVariablesBuilder updateConversationLastMessage ({required String id, }) { - return UpdateConversationLastMessageVariablesBuilder(dataConnect, id: id,); - } - - - DeleteConversationVariablesBuilder deleteConversation ({required String id, }) { - return DeleteConversationVariablesBuilder(dataConnect, id: id,); - } - - - CreateTaxFormVariablesBuilder createTaxForm ({required TaxFormType formType, required String title, required String staffId, }) { - return CreateTaxFormVariablesBuilder(dataConnect, formType: formType,title: title,staffId: staffId,); - } - - - UpdateTaxFormVariablesBuilder updateTaxForm ({required String id, }) { - return UpdateTaxFormVariablesBuilder(dataConnect, id: id,); - } - - - DeleteTaxFormVariablesBuilder deleteTaxForm ({required String id, }) { - return DeleteTaxFormVariablesBuilder(dataConnect, id: id,); + ListTeamHubsByOwnerIdVariablesBuilder listTeamHubsByOwnerId ({required String ownerId, }) { + return ListTeamHubsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); } @@ -3255,28 +4276,18 @@ class ExampleConnector { } - GetVendorByIdVariablesBuilder getVendorById ({required String id, }) { - return GetVendorByIdVariablesBuilder(dataConnect, id: id,); + CreateVendorRateVariablesBuilder createVendorRate ({required String vendorId, }) { + return CreateVendorRateVariablesBuilder(dataConnect, vendorId: vendorId,); } - GetVendorByUserIdVariablesBuilder getVendorByUserId ({required String userId, }) { - return GetVendorByUserIdVariablesBuilder(dataConnect, userId: userId,); + UpdateVendorRateVariablesBuilder updateVendorRate ({required String id, }) { + return UpdateVendorRateVariablesBuilder(dataConnect, id: id,); } - ListVendorsVariablesBuilder listVendors () { - return ListVendorsVariablesBuilder(dataConnect, ); - } - - - ListVendorRatesVariablesBuilder listVendorRates () { - return ListVendorRatesVariablesBuilder(dataConnect, ); - } - - - GetVendorRateByIdVariablesBuilder getVendorRateById ({required String id, }) { - return GetVendorRateByIdVariablesBuilder(dataConnect, id: id,); + DeleteVendorRateVariablesBuilder deleteVendorRate ({required String id, }) { + return DeleteVendorRateVariablesBuilder(dataConnect, id: id,); } @@ -3300,93 +4311,133 @@ class ExampleConnector { } - CreateBusinessVariablesBuilder createBusiness ({required String businessName, required String userId, required BusinessRateGroup rateGroup, required BusinessStatus status, }) { - return CreateBusinessVariablesBuilder(dataConnect, businessName: businessName,userId: userId,rateGroup: rateGroup,status: status,); + ListActivityLogsVariablesBuilder listActivityLogs () { + return ListActivityLogsVariablesBuilder(dataConnect, ); } - UpdateBusinessVariablesBuilder updateBusiness ({required String id, }) { - return UpdateBusinessVariablesBuilder(dataConnect, id: id,); + GetActivityLogByIdVariablesBuilder getActivityLogById ({required String id, }) { + return GetActivityLogByIdVariablesBuilder(dataConnect, id: id,); } - DeleteBusinessVariablesBuilder deleteBusiness ({required String id, }) { - return DeleteBusinessVariablesBuilder(dataConnect, id: id,); + ListActivityLogsByUserIdVariablesBuilder listActivityLogsByUserId ({required String userId, }) { + return ListActivityLogsByUserIdVariablesBuilder(dataConnect, userId: userId,); } - ListHubsVariablesBuilder listHubs () { - return ListHubsVariablesBuilder(dataConnect, ); + ListUnreadActivityLogsByUserIdVariablesBuilder listUnreadActivityLogsByUserId ({required String userId, }) { + return ListUnreadActivityLogsByUserIdVariablesBuilder(dataConnect, userId: userId,); } - GetHubByIdVariablesBuilder getHubById ({required String id, }) { - return GetHubByIdVariablesBuilder(dataConnect, id: id,); + FilterActivityLogsVariablesBuilder filterActivityLogs () { + return FilterActivityLogsVariablesBuilder(dataConnect, ); } - GetHubsByOwnerIdVariablesBuilder getHubsByOwnerId ({required String ownerId, }) { - return GetHubsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); + CreateAttireOptionVariablesBuilder createAttireOption ({required String itemId, required String label, }) { + return CreateAttireOptionVariablesBuilder(dataConnect, itemId: itemId,label: label,); } - FilterHubsVariablesBuilder filterHubs () { - return FilterHubsVariablesBuilder(dataConnect, ); + UpdateAttireOptionVariablesBuilder updateAttireOption ({required String id, }) { + return UpdateAttireOptionVariablesBuilder(dataConnect, id: id,); } - ListRecentPaymentsVariablesBuilder listRecentPayments () { - return ListRecentPaymentsVariablesBuilder(dataConnect, ); + DeleteAttireOptionVariablesBuilder deleteAttireOption ({required String id, }) { + return DeleteAttireOptionVariablesBuilder(dataConnect, id: id,); } - GetRecentPaymentByIdVariablesBuilder getRecentPaymentById ({required String id, }) { - return GetRecentPaymentByIdVariablesBuilder(dataConnect, id: id,); + CreateClientFeedbackVariablesBuilder createClientFeedback ({required String businessId, required String vendorId, }) { + return CreateClientFeedbackVariablesBuilder(dataConnect, businessId: businessId,vendorId: vendorId,); } - ListRecentPaymentsByStaffIdVariablesBuilder listRecentPaymentsByStaffId ({required String staffId, }) { - return ListRecentPaymentsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); + UpdateClientFeedbackVariablesBuilder updateClientFeedback ({required String id, }) { + return UpdateClientFeedbackVariablesBuilder(dataConnect, id: id,); } - ListRecentPaymentsByApplicationIdVariablesBuilder listRecentPaymentsByApplicationId ({required String applicationId, }) { - return ListRecentPaymentsByApplicationIdVariablesBuilder(dataConnect, applicationId: applicationId,); + DeleteClientFeedbackVariablesBuilder deleteClientFeedback ({required String id, }) { + return DeleteClientFeedbackVariablesBuilder(dataConnect, id: id,); } - ListRecentPaymentsByInvoiceIdVariablesBuilder listRecentPaymentsByInvoiceId ({required String invoiceId, }) { - return ListRecentPaymentsByInvoiceIdVariablesBuilder(dataConnect, invoiceId: invoiceId,); + ListFaqDatasVariablesBuilder listFaqDatas () { + return ListFaqDatasVariablesBuilder(dataConnect, ); } - ListRecentPaymentsByStatusVariablesBuilder listRecentPaymentsByStatus ({required RecentPaymentStatus status, }) { - return ListRecentPaymentsByStatusVariablesBuilder(dataConnect, status: status,); + GetFaqDataByIdVariablesBuilder getFaqDataById ({required String id, }) { + return GetFaqDataByIdVariablesBuilder(dataConnect, id: id,); } - ListRecentPaymentsByInvoiceIdsVariablesBuilder listRecentPaymentsByInvoiceIds ({required List invoiceIds, }) { - return ListRecentPaymentsByInvoiceIdsVariablesBuilder(dataConnect, invoiceIds: invoiceIds,); + FilterFaqDatasVariablesBuilder filterFaqDatas () { + return FilterFaqDatasVariablesBuilder(dataConnect, ); } - ListRecentPaymentsByBusinessIdVariablesBuilder listRecentPaymentsByBusinessId ({required String businessId, }) { - return ListRecentPaymentsByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); + CreateRecentPaymentVariablesBuilder createRecentPayment ({required String staffId, required String applicationId, required String invoiceId, }) { + return CreateRecentPaymentVariablesBuilder(dataConnect, staffId: staffId,applicationId: applicationId,invoiceId: invoiceId,); } - CreateRoleVariablesBuilder createRole ({required String name, required double costPerHour, required String vendorId, required String roleCategoryId, }) { - return CreateRoleVariablesBuilder(dataConnect, name: name,costPerHour: costPerHour,vendorId: vendorId,roleCategoryId: roleCategoryId,); + UpdateRecentPaymentVariablesBuilder updateRecentPayment ({required String id, }) { + return UpdateRecentPaymentVariablesBuilder(dataConnect, id: id,); } - UpdateRoleVariablesBuilder updateRole ({required String id, required String roleCategoryId, }) { - return UpdateRoleVariablesBuilder(dataConnect, id: id,roleCategoryId: roleCategoryId,); + DeleteRecentPaymentVariablesBuilder deleteRecentPayment ({required String id, }) { + return DeleteRecentPaymentVariablesBuilder(dataConnect, id: id,); } - DeleteRoleVariablesBuilder deleteRole ({required String id, }) { - return DeleteRoleVariablesBuilder(dataConnect, id: id,); + CreateBenefitsDataVariablesBuilder createBenefitsData ({required String vendorBenefitPlanId, required String staffId, required int current, }) { + return CreateBenefitsDataVariablesBuilder(dataConnect, vendorBenefitPlanId: vendorBenefitPlanId,staffId: staffId,current: current,); + } + + + UpdateBenefitsDataVariablesBuilder updateBenefitsData ({required String staffId, required String vendorBenefitPlanId, }) { + return UpdateBenefitsDataVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); + } + + + DeleteBenefitsDataVariablesBuilder deleteBenefitsData ({required String staffId, required String vendorBenefitPlanId, }) { + return DeleteBenefitsDataVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); + } + + + CreateEmergencyContactVariablesBuilder createEmergencyContact ({required String name, required String phone, required RelationshipType relationship, required String staffId, }) { + return CreateEmergencyContactVariablesBuilder(dataConnect, name: name,phone: phone,relationship: relationship,staffId: staffId,); + } + + + UpdateEmergencyContactVariablesBuilder updateEmergencyContact ({required String id, }) { + return UpdateEmergencyContactVariablesBuilder(dataConnect, id: id,); + } + + + DeleteEmergencyContactVariablesBuilder deleteEmergencyContact ({required String id, }) { + return DeleteEmergencyContactVariablesBuilder(dataConnect, id: id,); + } + + + CreateInvoiceTemplateVariablesBuilder createInvoiceTemplate ({required String name, required String ownerId, }) { + return CreateInvoiceTemplateVariablesBuilder(dataConnect, name: name,ownerId: ownerId,); + } + + + UpdateInvoiceTemplateVariablesBuilder updateInvoiceTemplate ({required String id, }) { + return UpdateInvoiceTemplateVariablesBuilder(dataConnect, id: id,); + } + + + DeleteInvoiceTemplateVariablesBuilder deleteInvoiceTemplate ({required String id, }) { + return DeleteInvoiceTemplateVariablesBuilder(dataConnect, id: id,); } @@ -3410,26 +4461,6 @@ class ExampleConnector { } - ListTasksVariablesBuilder listTasks () { - return ListTasksVariablesBuilder(dataConnect, ); - } - - - GetTaskByIdVariablesBuilder getTaskById ({required String id, }) { - return GetTaskByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetTasksByOwnerIdVariablesBuilder getTasksByOwnerId ({required String ownerId, }) { - return GetTasksByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); - } - - - FilterTasksVariablesBuilder filterTasks () { - return FilterTasksVariablesBuilder(dataConnect, ); - } - - ListTaskCommentsVariablesBuilder listTaskComments () { return ListTaskCommentsVariablesBuilder(dataConnect, ); } @@ -3445,248 +4476,33 @@ class ExampleConnector { } - CreateEmergencyContactVariablesBuilder createEmergencyContact ({required String name, required String phone, required RelationshipType relationship, required String staffId, }) { - return CreateEmergencyContactVariablesBuilder(dataConnect, name: name,phone: phone,relationship: relationship,staffId: staffId,); + ListTeamsVariablesBuilder listTeams () { + return ListTeamsVariablesBuilder(dataConnect, ); } - UpdateEmergencyContactVariablesBuilder updateEmergencyContact ({required String id, }) { - return UpdateEmergencyContactVariablesBuilder(dataConnect, id: id,); + GetTeamByIdVariablesBuilder getTeamById ({required String id, }) { + return GetTeamByIdVariablesBuilder(dataConnect, id: id,); } - DeleteEmergencyContactVariablesBuilder deleteEmergencyContact ({required String id, }) { - return DeleteEmergencyContactVariablesBuilder(dataConnect, id: id,); + GetTeamsByOwnerIdVariablesBuilder getTeamsByOwnerId ({required String ownerId, }) { + return GetTeamsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); } - ListFaqDatasVariablesBuilder listFaqDatas () { - return ListFaqDatasVariablesBuilder(dataConnect, ); + CreateUserVariablesBuilder createUser ({required String id, required UserBaseRole role, }) { + return CreateUserVariablesBuilder(dataConnect, id: id,role: role,); } - GetFaqDataByIdVariablesBuilder getFaqDataById ({required String id, }) { - return GetFaqDataByIdVariablesBuilder(dataConnect, id: id,); + UpdateUserVariablesBuilder updateUser ({required String id, }) { + return UpdateUserVariablesBuilder(dataConnect, id: id,); } - FilterFaqDatasVariablesBuilder filterFaqDatas () { - return FilterFaqDatasVariablesBuilder(dataConnect, ); - } - - - ListInvoiceTemplatesVariablesBuilder listInvoiceTemplates () { - return ListInvoiceTemplatesVariablesBuilder(dataConnect, ); - } - - - GetInvoiceTemplateByIdVariablesBuilder getInvoiceTemplateById ({required String id, }) { - return GetInvoiceTemplateByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListInvoiceTemplatesByOwnerIdVariablesBuilder listInvoiceTemplatesByOwnerId ({required String ownerId, }) { - return ListInvoiceTemplatesByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); - } - - - ListInvoiceTemplatesByVendorIdVariablesBuilder listInvoiceTemplatesByVendorId ({required String vendorId, }) { - return ListInvoiceTemplatesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListInvoiceTemplatesByBusinessIdVariablesBuilder listInvoiceTemplatesByBusinessId ({required String businessId, }) { - return ListInvoiceTemplatesByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); - } - - - ListInvoiceTemplatesByOrderIdVariablesBuilder listInvoiceTemplatesByOrderId ({required String orderId, }) { - return ListInvoiceTemplatesByOrderIdVariablesBuilder(dataConnect, orderId: orderId,); - } - - - SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder searchInvoiceTemplatesByOwnerAndName ({required String ownerId, required String name, }) { - return SearchInvoiceTemplatesByOwnerAndNameVariablesBuilder(dataConnect, ownerId: ownerId,name: name,); - } - - - ListMessagesVariablesBuilder listMessages () { - return ListMessagesVariablesBuilder(dataConnect, ); - } - - - GetMessageByIdVariablesBuilder getMessageById ({required String id, }) { - return GetMessageByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetMessagesByConversationIdVariablesBuilder getMessagesByConversationId ({required String conversationId, }) { - return GetMessagesByConversationIdVariablesBuilder(dataConnect, conversationId: conversationId,); - } - - - CreateOrderVariablesBuilder createOrder ({required String businessId, required OrderType orderType, }) { - return CreateOrderVariablesBuilder(dataConnect, businessId: businessId,orderType: orderType,); - } - - - UpdateOrderVariablesBuilder updateOrder ({required String id, }) { - return UpdateOrderVariablesBuilder(dataConnect, id: id,); - } - - - DeleteOrderVariablesBuilder deleteOrder ({required String id, }) { - return DeleteOrderVariablesBuilder(dataConnect, id: id,); - } - - - CreateShiftRoleVariablesBuilder createShiftRole ({required String shiftId, required String roleId, required int count, }) { - return CreateShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,count: count,); - } - - - UpdateShiftRoleVariablesBuilder updateShiftRole ({required String shiftId, required String roleId, }) { - return UpdateShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); - } - - - DeleteShiftRoleVariablesBuilder deleteShiftRole ({required String shiftId, required String roleId, }) { - return DeleteShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); - } - - - ListStaffVariablesBuilder listStaff () { - return ListStaffVariablesBuilder(dataConnect, ); - } - - - GetStaffByIdVariablesBuilder getStaffById ({required String id, }) { - return GetStaffByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetStaffByUserIdVariablesBuilder getStaffByUserId ({required String userId, }) { - return GetStaffByUserIdVariablesBuilder(dataConnect, userId: userId,); - } - - - FilterStaffVariablesBuilder filterStaff () { - return FilterStaffVariablesBuilder(dataConnect, ); - } - - - ListUserConversationsVariablesBuilder listUserConversations () { - return ListUserConversationsVariablesBuilder(dataConnect, ); - } - - - GetUserConversationByKeyVariablesBuilder getUserConversationByKey ({required String conversationId, required String userId, }) { - return GetUserConversationByKeyVariablesBuilder(dataConnect, conversationId: conversationId,userId: userId,); - } - - - ListUserConversationsByUserIdVariablesBuilder listUserConversationsByUserId ({required String userId, }) { - return ListUserConversationsByUserIdVariablesBuilder(dataConnect, userId: userId,); - } - - - ListUnreadUserConversationsByUserIdVariablesBuilder listUnreadUserConversationsByUserId ({required String userId, }) { - return ListUnreadUserConversationsByUserIdVariablesBuilder(dataConnect, userId: userId,); - } - - - ListUserConversationsByConversationIdVariablesBuilder listUserConversationsByConversationId ({required String conversationId, }) { - return ListUserConversationsByConversationIdVariablesBuilder(dataConnect, conversationId: conversationId,); - } - - - FilterUserConversationsVariablesBuilder filterUserConversations () { - return FilterUserConversationsVariablesBuilder(dataConnect, ); - } - - - CreateAttireOptionVariablesBuilder createAttireOption ({required String itemId, required String label, }) { - return CreateAttireOptionVariablesBuilder(dataConnect, itemId: itemId,label: label,); - } - - - UpdateAttireOptionVariablesBuilder updateAttireOption ({required String id, }) { - return UpdateAttireOptionVariablesBuilder(dataConnect, id: id,); - } - - - DeleteAttireOptionVariablesBuilder deleteAttireOption ({required String id, }) { - return DeleteAttireOptionVariablesBuilder(dataConnect, id: id,); - } - - - CreateInvoiceVariablesBuilder createInvoice ({required InvoiceStatus status, required String vendorId, required String businessId, required String orderId, required String invoiceNumber, required Timestamp issueDate, required Timestamp dueDate, required double amount, }) { - return CreateInvoiceVariablesBuilder(dataConnect, status: status,vendorId: vendorId,businessId: businessId,orderId: orderId,invoiceNumber: invoiceNumber,issueDate: issueDate,dueDate: dueDate,amount: amount,); - } - - - UpdateInvoiceVariablesBuilder updateInvoice ({required String id, }) { - return UpdateInvoiceVariablesBuilder(dataConnect, id: id,); - } - - - DeleteInvoiceVariablesBuilder deleteInvoice ({required String id, }) { - return DeleteInvoiceVariablesBuilder(dataConnect, id: id,); - } - - - GetMyTasksVariablesBuilder getMyTasks ({required String teamMemberId, }) { - return GetMyTasksVariablesBuilder(dataConnect, teamMemberId: teamMemberId,); - } - - - GetMemberTaskByIdKeyVariablesBuilder getMemberTaskByIdKey ({required String teamMemberId, required String taskId, }) { - return GetMemberTaskByIdKeyVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); - } - - - GetMemberTasksByTaskIdVariablesBuilder getMemberTasksByTaskId ({required String taskId, }) { - return GetMemberTasksByTaskIdVariablesBuilder(dataConnect, taskId: taskId,); - } - - - ListShiftsVariablesBuilder listShifts () { - return ListShiftsVariablesBuilder(dataConnect, ); - } - - - GetShiftByIdVariablesBuilder getShiftById ({required String id, }) { - return GetShiftByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterShiftsVariablesBuilder filterShifts () { - return FilterShiftsVariablesBuilder(dataConnect, ); - } - - - GetShiftsByBusinessIdVariablesBuilder getShiftsByBusinessId ({required String businessId, }) { - return GetShiftsByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); - } - - - GetShiftsByVendorIdVariablesBuilder getShiftsByVendorId ({required String vendorId, }) { - return GetShiftsByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - CreateTaskVariablesBuilder createTask ({required String taskName, required TaskPriority priority, required TaskStatus status, required String ownerId, }) { - return CreateTaskVariablesBuilder(dataConnect, taskName: taskName,priority: priority,status: status,ownerId: ownerId,); - } - - - UpdateTaskVariablesBuilder updateTask ({required String id, }) { - return UpdateTaskVariablesBuilder(dataConnect, id: id,); - } - - - DeleteTaskVariablesBuilder deleteTask ({required String id, }) { - return DeleteTaskVariablesBuilder(dataConnect, id: id,); + DeleteUserVariablesBuilder deleteUser ({required String id, }) { + return DeleteUserVariablesBuilder(dataConnect, id: id,); } @@ -3705,131 +4521,6 @@ class ExampleConnector { } - CreateMemberTaskVariablesBuilder createMemberTask ({required String teamMemberId, required String taskId, }) { - return CreateMemberTaskVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); - } - - - DeleteMemberTaskVariablesBuilder deleteMemberTask ({required String teamMemberId, required String taskId, }) { - return DeleteMemberTaskVariablesBuilder(dataConnect, teamMemberId: teamMemberId,taskId: taskId,); - } - - - CreateStaffAvailabilityStatsVariablesBuilder createStaffAvailabilityStats ({required String staffId, }) { - return CreateStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); - } - - - UpdateStaffAvailabilityStatsVariablesBuilder updateStaffAvailabilityStats ({required String staffId, }) { - return UpdateStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); - } - - - DeleteStaffAvailabilityStatsVariablesBuilder deleteStaffAvailabilityStats ({required String staffId, }) { - return DeleteStaffAvailabilityStatsVariablesBuilder(dataConnect, staffId: staffId,); - } - - - CreateVendorBenefitPlanVariablesBuilder createVendorBenefitPlan ({required String vendorId, required String title, }) { - return CreateVendorBenefitPlanVariablesBuilder(dataConnect, vendorId: vendorId,title: title,); - } - - - UpdateVendorBenefitPlanVariablesBuilder updateVendorBenefitPlan ({required String id, }) { - return UpdateVendorBenefitPlanVariablesBuilder(dataConnect, id: id,); - } - - - DeleteVendorBenefitPlanVariablesBuilder deleteVendorBenefitPlan ({required String id, }) { - return DeleteVendorBenefitPlanVariablesBuilder(dataConnect, id: id,); - } - - - CreateVendorRateVariablesBuilder createVendorRate ({required String vendorId, }) { - return CreateVendorRateVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - UpdateVendorRateVariablesBuilder updateVendorRate ({required String id, }) { - return UpdateVendorRateVariablesBuilder(dataConnect, id: id,); - } - - - DeleteVendorRateVariablesBuilder deleteVendorRate ({required String id, }) { - return DeleteVendorRateVariablesBuilder(dataConnect, id: id,); - } - - - GetWorkforceByIdVariablesBuilder getWorkforceById ({required String id, }) { - return GetWorkforceByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetWorkforceByVendorAndStaffVariablesBuilder getWorkforceByVendorAndStaff ({required String vendorId, required String staffId, }) { - return GetWorkforceByVendorAndStaffVariablesBuilder(dataConnect, vendorId: vendorId,staffId: staffId,); - } - - - ListWorkforceByVendorIdVariablesBuilder listWorkforceByVendorId ({required String vendorId, }) { - return ListWorkforceByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListWorkforceByStaffIdVariablesBuilder listWorkforceByStaffId ({required String staffId, }) { - return ListWorkforceByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - GetWorkforceByVendorAndNumberVariablesBuilder getWorkforceByVendorAndNumber ({required String vendorId, required String workforceNumber, }) { - return GetWorkforceByVendorAndNumberVariablesBuilder(dataConnect, vendorId: vendorId,workforceNumber: workforceNumber,); - } - - - CreateCertificateVariablesBuilder createCertificate ({required String name, required CertificateStatus status, required String staffId, }) { - return CreateCertificateVariablesBuilder(dataConnect, name: name,status: status,staffId: staffId,); - } - - - UpdateCertificateVariablesBuilder updateCertificate ({required String id, }) { - return UpdateCertificateVariablesBuilder(dataConnect, id: id,); - } - - - DeleteCertificateVariablesBuilder deleteCertificate ({required String id, }) { - return DeleteCertificateVariablesBuilder(dataConnect, id: id,); - } - - - CreateCourseVariablesBuilder createCourse ({required String categoryId, }) { - return CreateCourseVariablesBuilder(dataConnect, categoryId: categoryId,); - } - - - UpdateCourseVariablesBuilder updateCourse ({required String id, required String categoryId, }) { - return UpdateCourseVariablesBuilder(dataConnect, id: id,categoryId: categoryId,); - } - - - DeleteCourseVariablesBuilder deleteCourse ({required String id, }) { - return DeleteCourseVariablesBuilder(dataConnect, id: id,); - } - - - ListDocumentsVariablesBuilder listDocuments () { - return ListDocumentsVariablesBuilder(dataConnect, ); - } - - - GetDocumentByIdVariablesBuilder getDocumentById ({required String id, }) { - return GetDocumentByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterDocumentsVariablesBuilder filterDocuments () { - return FilterDocumentsVariablesBuilder(dataConnect, ); - } - - ListEmergencyContactsVariablesBuilder listEmergencyContacts () { return ListEmergencyContactsVariablesBuilder(dataConnect, ); } @@ -3844,676 +4535,6 @@ class ExampleConnector { return GetEmergencyContactsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); } - - ListLevelsVariablesBuilder listLevels () { - return ListLevelsVariablesBuilder(dataConnect, ); - } - - - GetLevelByIdVariablesBuilder getLevelById ({required String id, }) { - return GetLevelByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterLevelsVariablesBuilder filterLevels () { - return FilterLevelsVariablesBuilder(dataConnect, ); - } - - - CreateRoleCategoryVariablesBuilder createRoleCategory ({required String roleName, required RoleCategoryType category, }) { - return CreateRoleCategoryVariablesBuilder(dataConnect, roleName: roleName,category: category,); - } - - - UpdateRoleCategoryVariablesBuilder updateRoleCategory ({required String id, }) { - return UpdateRoleCategoryVariablesBuilder(dataConnect, id: id,); - } - - - DeleteRoleCategoryVariablesBuilder deleteRoleCategory ({required String id, }) { - return DeleteRoleCategoryVariablesBuilder(dataConnect, id: id,); - } - - - CreateStaffVariablesBuilder createStaff ({required String userId, required String fullName, }) { - return CreateStaffVariablesBuilder(dataConnect, userId: userId,fullName: fullName,); - } - - - UpdateStaffVariablesBuilder updateStaff ({required String id, }) { - return UpdateStaffVariablesBuilder(dataConnect, id: id,); - } - - - DeleteStaffVariablesBuilder deleteStaff ({required String id, }) { - return DeleteStaffVariablesBuilder(dataConnect, id: id,); - } - - - ListStaffAvailabilityStatsVariablesBuilder listStaffAvailabilityStats () { - return ListStaffAvailabilityStatsVariablesBuilder(dataConnect, ); - } - - - GetStaffAvailabilityStatsByStaffIdVariablesBuilder getStaffAvailabilityStatsByStaffId ({required String staffId, }) { - return GetStaffAvailabilityStatsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - FilterStaffAvailabilityStatsVariablesBuilder filterStaffAvailabilityStats () { - return FilterStaffAvailabilityStatsVariablesBuilder(dataConnect, ); - } - - - CreateAccountVariablesBuilder createAccount ({required String bank, required AccountType type, required String last4, required String ownerId, }) { - return CreateAccountVariablesBuilder(dataConnect, bank: bank,type: type,last4: last4,ownerId: ownerId,); - } - - - UpdateAccountVariablesBuilder updateAccount ({required String id, }) { - return UpdateAccountVariablesBuilder(dataConnect, id: id,); - } - - - DeleteAccountVariablesBuilder deleteAccount ({required String id, }) { - return DeleteAccountVariablesBuilder(dataConnect, id: id,); - } - - - CreateActivityLogVariablesBuilder createActivityLog ({required String userId, required Timestamp date, required String title, required String description, required ActivityType activityType, }) { - return CreateActivityLogVariablesBuilder(dataConnect, userId: userId,date: date,title: title,description: description,activityType: activityType,); - } - - - UpdateActivityLogVariablesBuilder updateActivityLog ({required String id, }) { - return UpdateActivityLogVariablesBuilder(dataConnect, id: id,); - } - - - MarkActivityLogAsReadVariablesBuilder markActivityLogAsRead ({required String id, }) { - return MarkActivityLogAsReadVariablesBuilder(dataConnect, id: id,); - } - - - MarkActivityLogsAsReadVariablesBuilder markActivityLogsAsRead ({required List ids, }) { - return MarkActivityLogsAsReadVariablesBuilder(dataConnect, ids: ids,); - } - - - DeleteActivityLogVariablesBuilder deleteActivityLog ({required String id, }) { - return DeleteActivityLogVariablesBuilder(dataConnect, id: id,); - } - - - ListAssignmentsVariablesBuilder listAssignments () { - return ListAssignmentsVariablesBuilder(dataConnect, ); - } - - - GetAssignmentByIdVariablesBuilder getAssignmentById ({required String id, }) { - return GetAssignmentByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListAssignmentsByWorkforceIdVariablesBuilder listAssignmentsByWorkforceId ({required String workforceId, }) { - return ListAssignmentsByWorkforceIdVariablesBuilder(dataConnect, workforceId: workforceId,); - } - - - ListAssignmentsByWorkforceIdsVariablesBuilder listAssignmentsByWorkforceIds ({required List workforceIds, }) { - return ListAssignmentsByWorkforceIdsVariablesBuilder(dataConnect, workforceIds: workforceIds,); - } - - - ListAssignmentsByShiftRoleVariablesBuilder listAssignmentsByShiftRole ({required String shiftId, required String roleId, }) { - return ListAssignmentsByShiftRoleVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); - } - - - FilterAssignmentsVariablesBuilder filterAssignments ({required List shiftIds, required List roleIds, }) { - return FilterAssignmentsVariablesBuilder(dataConnect, shiftIds: shiftIds,roleIds: roleIds,); - } - - - ListCertificatesVariablesBuilder listCertificates () { - return ListCertificatesVariablesBuilder(dataConnect, ); - } - - - GetCertificateByIdVariablesBuilder getCertificateById ({required String id, }) { - return GetCertificateByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListCertificatesByStaffIdVariablesBuilder listCertificatesByStaffId ({required String staffId, }) { - return ListCertificatesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - CreateLevelVariablesBuilder createLevel ({required String name, required int xpRequired, }) { - return CreateLevelVariablesBuilder(dataConnect, name: name,xpRequired: xpRequired,); - } - - - UpdateLevelVariablesBuilder updateLevel ({required String id, }) { - return UpdateLevelVariablesBuilder(dataConnect, id: id,); - } - - - DeleteLevelVariablesBuilder deleteLevel ({required String id, }) { - return DeleteLevelVariablesBuilder(dataConnect, id: id,); - } - - - CreateMessageVariablesBuilder createMessage ({required String conversationId, required String senderId, required String content, }) { - return CreateMessageVariablesBuilder(dataConnect, conversationId: conversationId,senderId: senderId,content: content,); - } - - - UpdateMessageVariablesBuilder updateMessage ({required String id, }) { - return UpdateMessageVariablesBuilder(dataConnect, id: id,); - } - - - DeleteMessageVariablesBuilder deleteMessage ({required String id, }) { - return DeleteMessageVariablesBuilder(dataConnect, id: id,); - } - - - CreateRecentPaymentVariablesBuilder createRecentPayment ({required String staffId, required String applicationId, required String invoiceId, }) { - return CreateRecentPaymentVariablesBuilder(dataConnect, staffId: staffId,applicationId: applicationId,invoiceId: invoiceId,); - } - - - UpdateRecentPaymentVariablesBuilder updateRecentPayment ({required String id, }) { - return UpdateRecentPaymentVariablesBuilder(dataConnect, id: id,); - } - - - DeleteRecentPaymentVariablesBuilder deleteRecentPayment ({required String id, }) { - return DeleteRecentPaymentVariablesBuilder(dataConnect, id: id,); - } - - - CreateStaffRoleVariablesBuilder createStaffRole ({required String staffId, required String roleId, }) { - return CreateStaffRoleVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); - } - - - DeleteStaffRoleVariablesBuilder deleteStaffRole ({required String staffId, required String roleId, }) { - return DeleteStaffRoleVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); - } - - - ListApplicationsVariablesBuilder listApplications () { - return ListApplicationsVariablesBuilder(dataConnect, ); - } - - - GetApplicationByIdVariablesBuilder getApplicationById ({required String id, }) { - return GetApplicationByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetApplicationsByShiftIdVariablesBuilder getApplicationsByShiftId ({required String shiftId, }) { - return GetApplicationsByShiftIdVariablesBuilder(dataConnect, shiftId: shiftId,); - } - - - GetApplicationsByShiftIdAndStatusVariablesBuilder getApplicationsByShiftIdAndStatus ({required String shiftId, required ApplicationStatus status, }) { - return GetApplicationsByShiftIdAndStatusVariablesBuilder(dataConnect, shiftId: shiftId,status: status,); - } - - - GetApplicationsByStaffIdVariablesBuilder getApplicationsByStaffId ({required String staffId, }) { - return GetApplicationsByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder listAcceptedApplicationsByShiftRoleKey ({required String shiftId, required String roleId, }) { - return ListAcceptedApplicationsByShiftRoleKeyVariablesBuilder(dataConnect, shiftId: shiftId,roleId: roleId,); - } - - - ListAcceptedApplicationsByBusinessForDayVariablesBuilder listAcceptedApplicationsByBusinessForDay ({required String businessId, required Timestamp dayStart, required Timestamp dayEnd, }) { - return ListAcceptedApplicationsByBusinessForDayVariablesBuilder(dataConnect, businessId: businessId,dayStart: dayStart,dayEnd: dayEnd,); - } - - - CreateAssignmentVariablesBuilder createAssignment ({required String workforceId, required String roleId, required String shiftId, }) { - return CreateAssignmentVariablesBuilder(dataConnect, workforceId: workforceId,roleId: roleId,shiftId: shiftId,); - } - - - UpdateAssignmentVariablesBuilder updateAssignment ({required String id, required String roleId, required String shiftId, }) { - return UpdateAssignmentVariablesBuilder(dataConnect, id: id,roleId: roleId,shiftId: shiftId,); - } - - - DeleteAssignmentVariablesBuilder deleteAssignment ({required String id, }) { - return DeleteAssignmentVariablesBuilder(dataConnect, id: id,); - } - - - ListAttireOptionsVariablesBuilder listAttireOptions () { - return ListAttireOptionsVariablesBuilder(dataConnect, ); - } - - - GetAttireOptionByIdVariablesBuilder getAttireOptionById ({required String id, }) { - return GetAttireOptionByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterAttireOptionsVariablesBuilder filterAttireOptions () { - return FilterAttireOptionsVariablesBuilder(dataConnect, ); - } - - - CreateCustomRateCardVariablesBuilder createCustomRateCard ({required String name, }) { - return CreateCustomRateCardVariablesBuilder(dataConnect, name: name,); - } - - - UpdateCustomRateCardVariablesBuilder updateCustomRateCard ({required String id, }) { - return UpdateCustomRateCardVariablesBuilder(dataConnect, id: id,); - } - - - DeleteCustomRateCardVariablesBuilder deleteCustomRateCard ({required String id, }) { - return DeleteCustomRateCardVariablesBuilder(dataConnect, id: id,); - } - - - ListInvoicesVariablesBuilder listInvoices () { - return ListInvoicesVariablesBuilder(dataConnect, ); - } - - - GetInvoiceByIdVariablesBuilder getInvoiceById ({required String id, }) { - return GetInvoiceByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListInvoicesByVendorIdVariablesBuilder listInvoicesByVendorId ({required String vendorId, }) { - return ListInvoicesByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListInvoicesByBusinessIdVariablesBuilder listInvoicesByBusinessId ({required String businessId, }) { - return ListInvoicesByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); - } - - - ListInvoicesByOrderIdVariablesBuilder listInvoicesByOrderId ({required String orderId, }) { - return ListInvoicesByOrderIdVariablesBuilder(dataConnect, orderId: orderId,); - } - - - ListInvoicesByStatusVariablesBuilder listInvoicesByStatus ({required InvoiceStatus status, }) { - return ListInvoicesByStatusVariablesBuilder(dataConnect, status: status,); - } - - - FilterInvoicesVariablesBuilder filterInvoices () { - return FilterInvoicesVariablesBuilder(dataConnect, ); - } - - - ListOverdueInvoicesVariablesBuilder listOverdueInvoices ({required Timestamp now, }) { - return ListOverdueInvoicesVariablesBuilder(dataConnect, now: now,); - } - - - CreateInvoiceTemplateVariablesBuilder createInvoiceTemplate ({required String name, required String ownerId, }) { - return CreateInvoiceTemplateVariablesBuilder(dataConnect, name: name,ownerId: ownerId,); - } - - - UpdateInvoiceTemplateVariablesBuilder updateInvoiceTemplate ({required String id, }) { - return UpdateInvoiceTemplateVariablesBuilder(dataConnect, id: id,); - } - - - DeleteInvoiceTemplateVariablesBuilder deleteInvoiceTemplate ({required String id, }) { - return DeleteInvoiceTemplateVariablesBuilder(dataConnect, id: id,); - } - - - CreateStaffDocumentVariablesBuilder createStaffDocument ({required String staffId, required String staffName, required String documentId, required DocumentStatus status, }) { - return CreateStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,staffName: staffName,documentId: documentId,status: status,); - } - - - UpdateStaffDocumentVariablesBuilder updateStaffDocument ({required String staffId, required String documentId, }) { - return UpdateStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,documentId: documentId,); - } - - - DeleteStaffDocumentVariablesBuilder deleteStaffDocument ({required String staffId, required String documentId, }) { - return DeleteStaffDocumentVariablesBuilder(dataConnect, staffId: staffId,documentId: documentId,); - } - - - ListUsersVariablesBuilder listUsers () { - return ListUsersVariablesBuilder(dataConnect, ); - } - - - GetUserByIdVariablesBuilder getUserById ({required String id, }) { - return GetUserByIdVariablesBuilder(dataConnect, id: id,); - } - - - FilterUsersVariablesBuilder filterUsers () { - return FilterUsersVariablesBuilder(dataConnect, ); - } - - - CreateCategoryVariablesBuilder createCategory ({required String categoryId, required String label, }) { - return CreateCategoryVariablesBuilder(dataConnect, categoryId: categoryId,label: label,); - } - - - UpdateCategoryVariablesBuilder updateCategory ({required String id, }) { - return UpdateCategoryVariablesBuilder(dataConnect, id: id,); - } - - - DeleteCategoryVariablesBuilder deleteCategory ({required String id, }) { - return DeleteCategoryVariablesBuilder(dataConnect, id: id,); - } - - - CreateHubVariablesBuilder createHub ({required String name, required String ownerId, }) { - return CreateHubVariablesBuilder(dataConnect, name: name,ownerId: ownerId,); - } - - - UpdateHubVariablesBuilder updateHub ({required String id, }) { - return UpdateHubVariablesBuilder(dataConnect, id: id,); - } - - - DeleteHubVariablesBuilder deleteHub ({required String id, }) { - return DeleteHubVariablesBuilder(dataConnect, id: id,); - } - - - ListStaffRolesVariablesBuilder listStaffRoles () { - return ListStaffRolesVariablesBuilder(dataConnect, ); - } - - - GetStaffRoleByKeyVariablesBuilder getStaffRoleByKey ({required String staffId, required String roleId, }) { - return GetStaffRoleByKeyVariablesBuilder(dataConnect, staffId: staffId,roleId: roleId,); - } - - - ListStaffRolesByStaffIdVariablesBuilder listStaffRolesByStaffId ({required String staffId, }) { - return ListStaffRolesByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - ListStaffRolesByRoleIdVariablesBuilder listStaffRolesByRoleId ({required String roleId, }) { - return ListStaffRolesByRoleIdVariablesBuilder(dataConnect, roleId: roleId,); - } - - - FilterStaffRolesVariablesBuilder filterStaffRoles () { - return FilterStaffRolesVariablesBuilder(dataConnect, ); - } - - - CreateTaskCommentVariablesBuilder createTaskComment ({required String taskId, required String teamMemberId, required String comment, }) { - return CreateTaskCommentVariablesBuilder(dataConnect, taskId: taskId,teamMemberId: teamMemberId,comment: comment,); - } - - - UpdateTaskCommentVariablesBuilder updateTaskComment ({required String id, }) { - return UpdateTaskCommentVariablesBuilder(dataConnect, id: id,); - } - - - DeleteTaskCommentVariablesBuilder deleteTaskComment ({required String id, }) { - return DeleteTaskCommentVariablesBuilder(dataConnect, id: id,); - } - - - ListTeamHubsVariablesBuilder listTeamHubs () { - return ListTeamHubsVariablesBuilder(dataConnect, ); - } - - - GetTeamHubByIdVariablesBuilder getTeamHubById ({required String id, }) { - return GetTeamHubByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetTeamHubsByTeamIdVariablesBuilder getTeamHubsByTeamId ({required String teamId, }) { - return GetTeamHubsByTeamIdVariablesBuilder(dataConnect, teamId: teamId,); - } - - - ListTeamHubsByOwnerIdVariablesBuilder listTeamHubsByOwnerId ({required String ownerId, }) { - return ListTeamHubsByOwnerIdVariablesBuilder(dataConnect, ownerId: ownerId,); - } - - - ListTeamHudDepartmentsVariablesBuilder listTeamHudDepartments () { - return ListTeamHudDepartmentsVariablesBuilder(dataConnect, ); - } - - - GetTeamHudDepartmentByIdVariablesBuilder getTeamHudDepartmentById ({required String id, }) { - return GetTeamHudDepartmentByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListTeamHudDepartmentsByTeamHubIdVariablesBuilder listTeamHudDepartmentsByTeamHubId ({required String teamHubId, }) { - return ListTeamHudDepartmentsByTeamHubIdVariablesBuilder(dataConnect, teamHubId: teamHubId,); - } - - - ListTeamMembersVariablesBuilder listTeamMembers () { - return ListTeamMembersVariablesBuilder(dataConnect, ); - } - - - GetTeamMemberByIdVariablesBuilder getTeamMemberById ({required String id, }) { - return GetTeamMemberByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetTeamMembersByTeamIdVariablesBuilder getTeamMembersByTeamId ({required String teamId, }) { - return GetTeamMembersByTeamIdVariablesBuilder(dataConnect, teamId: teamId,); - } - - - ListClientFeedbacksVariablesBuilder listClientFeedbacks () { - return ListClientFeedbacksVariablesBuilder(dataConnect, ); - } - - - GetClientFeedbackByIdVariablesBuilder getClientFeedbackById ({required String id, }) { - return GetClientFeedbackByIdVariablesBuilder(dataConnect, id: id,); - } - - - ListClientFeedbacksByBusinessIdVariablesBuilder listClientFeedbacksByBusinessId ({required String businessId, }) { - return ListClientFeedbacksByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); - } - - - ListClientFeedbacksByVendorIdVariablesBuilder listClientFeedbacksByVendorId ({required String vendorId, }) { - return ListClientFeedbacksByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListClientFeedbacksByBusinessAndVendorVariablesBuilder listClientFeedbacksByBusinessAndVendor ({required String businessId, required String vendorId, }) { - return ListClientFeedbacksByBusinessAndVendorVariablesBuilder(dataConnect, businessId: businessId,vendorId: vendorId,); - } - - - FilterClientFeedbacksVariablesBuilder filterClientFeedbacks () { - return FilterClientFeedbacksVariablesBuilder(dataConnect, ); - } - - - ListClientFeedbackRatingsByVendorIdVariablesBuilder listClientFeedbackRatingsByVendorId ({required String vendorId, }) { - return ListClientFeedbackRatingsByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - ListCustomRateCardsVariablesBuilder listCustomRateCards () { - return ListCustomRateCardsVariablesBuilder(dataConnect, ); - } - - - GetCustomRateCardByIdVariablesBuilder getCustomRateCardById ({required String id, }) { - return GetCustomRateCardByIdVariablesBuilder(dataConnect, id: id,); - } - - - CreateDocumentVariablesBuilder createDocument ({required DocumentType documentType, required String name, }) { - return CreateDocumentVariablesBuilder(dataConnect, documentType: documentType,name: name,); - } - - - UpdateDocumentVariablesBuilder updateDocument ({required String id, }) { - return UpdateDocumentVariablesBuilder(dataConnect, id: id,); - } - - - DeleteDocumentVariablesBuilder deleteDocument ({required String id, }) { - return DeleteDocumentVariablesBuilder(dataConnect, id: id,); - } - - - ListRoleCategoriesVariablesBuilder listRoleCategories () { - return ListRoleCategoriesVariablesBuilder(dataConnect, ); - } - - - GetRoleCategoryByIdVariablesBuilder getRoleCategoryById ({required String id, }) { - return GetRoleCategoryByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetRoleCategoriesByCategoryVariablesBuilder getRoleCategoriesByCategory ({required RoleCategoryType category, }) { - return GetRoleCategoriesByCategoryVariablesBuilder(dataConnect, category: category,); - } - - - ListTaxFormsVariablesBuilder listTaxForms () { - return ListTaxFormsVariablesBuilder(dataConnect, ); - } - - - GetTaxFormByIdVariablesBuilder getTaxFormById ({required String id, }) { - return GetTaxFormByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetTaxFormsBystaffIdVariablesBuilder getTaxFormsBystaffId ({required String staffId, }) { - return GetTaxFormsBystaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - FilterTaxFormsVariablesBuilder filterTaxForms () { - return FilterTaxFormsVariablesBuilder(dataConnect, ); - } - - - CreateVendorVariablesBuilder createVendor ({required String userId, required String companyName, }) { - return CreateVendorVariablesBuilder(dataConnect, userId: userId,companyName: companyName,); - } - - - UpdateVendorVariablesBuilder updateVendor ({required String id, }) { - return UpdateVendorVariablesBuilder(dataConnect, id: id,); - } - - - DeleteVendorVariablesBuilder deleteVendor ({required String id, }) { - return DeleteVendorVariablesBuilder(dataConnect, id: id,); - } - - - ListBenefitsDataVariablesBuilder listBenefitsData () { - return ListBenefitsDataVariablesBuilder(dataConnect, ); - } - - - GetBenefitsDataByKeyVariablesBuilder getBenefitsDataByKey ({required String staffId, required String vendorBenefitPlanId, }) { - return GetBenefitsDataByKeyVariablesBuilder(dataConnect, staffId: staffId,vendorBenefitPlanId: vendorBenefitPlanId,); - } - - - ListBenefitsDataByStaffIdVariablesBuilder listBenefitsDataByStaffId ({required String staffId, }) { - return ListBenefitsDataByStaffIdVariablesBuilder(dataConnect, staffId: staffId,); - } - - - ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder listBenefitsDataByVendorBenefitPlanId ({required String vendorBenefitPlanId, }) { - return ListBenefitsDataByVendorBenefitPlanIdVariablesBuilder(dataConnect, vendorBenefitPlanId: vendorBenefitPlanId,); - } - - - ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder listBenefitsDataByVendorBenefitPlanIds ({required List vendorBenefitPlanIds, }) { - return ListBenefitsDataByVendorBenefitPlanIdsVariablesBuilder(dataConnect, vendorBenefitPlanIds: vendorBenefitPlanIds,); - } - - - CreateFaqDataVariablesBuilder createFaqData ({required String category, }) { - return CreateFaqDataVariablesBuilder(dataConnect, category: category,); - } - - - UpdateFaqDataVariablesBuilder updateFaqData ({required String id, }) { - return UpdateFaqDataVariablesBuilder(dataConnect, id: id,); - } - - - DeleteFaqDataVariablesBuilder deleteFaqData ({required String id, }) { - return DeleteFaqDataVariablesBuilder(dataConnect, id: id,); - } - - - ListOrdersVariablesBuilder listOrders () { - return ListOrdersVariablesBuilder(dataConnect, ); - } - - - GetOrderByIdVariablesBuilder getOrderById ({required String id, }) { - return GetOrderByIdVariablesBuilder(dataConnect, id: id,); - } - - - GetOrdersByBusinessIdVariablesBuilder getOrdersByBusinessId ({required String businessId, }) { - return GetOrdersByBusinessIdVariablesBuilder(dataConnect, businessId: businessId,); - } - - - GetOrdersByVendorIdVariablesBuilder getOrdersByVendorId ({required String vendorId, }) { - return GetOrdersByVendorIdVariablesBuilder(dataConnect, vendorId: vendorId,); - } - - - GetOrdersByStatusVariablesBuilder getOrdersByStatus ({required OrderStatus status, }) { - return GetOrdersByStatusVariablesBuilder(dataConnect, status: status,); - } - - - GetOrdersByDateRangeVariablesBuilder getOrdersByDateRange ({required Timestamp start, required Timestamp end, }) { - return GetOrdersByDateRangeVariablesBuilder(dataConnect, start: start,end: end,); - } - - - GetRapidOrdersVariablesBuilder getRapidOrders () { - return GetRapidOrdersVariablesBuilder(dataConnect, ); - } - static ConnectorConfig connectorConfig = ConnectorConfig( 'us-central1', diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_account_by_id.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_account_by_id.dart index 5e4d9836..6500fd11 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_account_by_id.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_account_by_id.dart @@ -25,9 +25,10 @@ class GetAccountByIdAccount { final String last4; final bool? isPrimary; final String ownerId; + final String? accountNumber; + final String? routeNumber; + final Timestamp? expiryTime; final Timestamp? createdAt; - final Timestamp? updatedAt; - final String? createdBy; GetAccountByIdAccount.fromJson(dynamic json): id = nativeFromJson(json['id']), @@ -36,9 +37,10 @@ class GetAccountByIdAccount { last4 = nativeFromJson(json['last4']), isPrimary = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']), ownerId = nativeFromJson(json['ownerId']), - createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']), - updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']), - createdBy = json['createdBy'] == null ? null : nativeFromJson(json['createdBy']); + accountNumber = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']), + routeNumber = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']), + expiryTime = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']), + createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']); @override bool operator ==(Object other) { if(identical(this, other)) { @@ -55,13 +57,14 @@ class GetAccountByIdAccount { last4 == otherTyped.last4 && isPrimary == otherTyped.isPrimary && ownerId == otherTyped.ownerId && - createdAt == otherTyped.createdAt && - updatedAt == otherTyped.updatedAt && - createdBy == otherTyped.createdBy; + accountNumber == otherTyped.accountNumber && + routeNumber == otherTyped.routeNumber && + expiryTime == otherTyped.expiryTime && + createdAt == otherTyped.createdAt; } @override - int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, accountNumber.hashCode, routeNumber.hashCode, expiryTime.hashCode, createdAt.hashCode]); Map toJson() { @@ -76,15 +79,18 @@ class GetAccountByIdAccount { json['isPrimary'] = nativeToJson(isPrimary); } json['ownerId'] = nativeToJson(ownerId); + if (accountNumber != null) { + json['accountNumber'] = nativeToJson(accountNumber); + } + if (routeNumber != null) { + json['routeNumber'] = nativeToJson(routeNumber); + } + if (expiryTime != null) { + json['expiryTime'] = expiryTime!.toJson(); + } if (createdAt != null) { json['createdAt'] = createdAt!.toJson(); } - if (updatedAt != null) { - json['updatedAt'] = updatedAt!.toJson(); - } - if (createdBy != null) { - json['createdBy'] = nativeToJson(createdBy); - } return json; } @@ -95,9 +101,10 @@ class GetAccountByIdAccount { required this.last4, this.isPrimary, required this.ownerId, + this.accountNumber, + this.routeNumber, + this.expiryTime, this.createdAt, - this.updatedAt, - this.createdBy, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_accounts_by_owner_id.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_accounts_by_owner_id.dart index 2d704e46..6ce5f794 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_accounts_by_owner_id.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_accounts_by_owner_id.dart @@ -25,9 +25,10 @@ class GetAccountsByOwnerIdAccounts { final String last4; final bool? isPrimary; final String ownerId; + final String? accountNumber; + final String? routeNumber; + final Timestamp? expiryTime; final Timestamp? createdAt; - final Timestamp? updatedAt; - final String? createdBy; GetAccountsByOwnerIdAccounts.fromJson(dynamic json): id = nativeFromJson(json['id']), @@ -36,9 +37,10 @@ class GetAccountsByOwnerIdAccounts { last4 = nativeFromJson(json['last4']), isPrimary = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']), ownerId = nativeFromJson(json['ownerId']), - createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']), - updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']), - createdBy = json['createdBy'] == null ? null : nativeFromJson(json['createdBy']); + accountNumber = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']), + routeNumber = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']), + expiryTime = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']), + createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']); @override bool operator ==(Object other) { if(identical(this, other)) { @@ -55,13 +57,14 @@ class GetAccountsByOwnerIdAccounts { last4 == otherTyped.last4 && isPrimary == otherTyped.isPrimary && ownerId == otherTyped.ownerId && - createdAt == otherTyped.createdAt && - updatedAt == otherTyped.updatedAt && - createdBy == otherTyped.createdBy; + accountNumber == otherTyped.accountNumber && + routeNumber == otherTyped.routeNumber && + expiryTime == otherTyped.expiryTime && + createdAt == otherTyped.createdAt; } @override - int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, accountNumber.hashCode, routeNumber.hashCode, expiryTime.hashCode, createdAt.hashCode]); Map toJson() { @@ -76,15 +79,18 @@ class GetAccountsByOwnerIdAccounts { json['isPrimary'] = nativeToJson(isPrimary); } json['ownerId'] = nativeToJson(ownerId); + if (accountNumber != null) { + json['accountNumber'] = nativeToJson(accountNumber); + } + if (routeNumber != null) { + json['routeNumber'] = nativeToJson(routeNumber); + } + if (expiryTime != null) { + json['expiryTime'] = expiryTime!.toJson(); + } if (createdAt != null) { json['createdAt'] = createdAt!.toJson(); } - if (updatedAt != null) { - json['updatedAt'] = updatedAt!.toJson(); - } - if (createdBy != null) { - json['createdBy'] = nativeToJson(createdBy); - } return json; } @@ -95,9 +101,10 @@ class GetAccountsByOwnerIdAccounts { required this.last4, this.isPrimary, required this.ownerId, + this.accountNumber, + this.routeNumber, + this.expiryTime, this.createdAt, - this.updatedAt, - this.createdBy, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_completed_shifts_by_business_id.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_completed_shifts_by_business_id.dart new file mode 100644 index 00000000..67bc9a40 --- /dev/null +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_completed_shifts_by_business_id.dart @@ -0,0 +1,268 @@ +part of 'generated.dart'; + +class GetCompletedShiftsByBusinessIdVariablesBuilder { + String businessId; + Timestamp dateFrom; + Timestamp dateTo; + Optional _offset = Optional.optional(nativeFromJson, nativeToJson); + Optional _limit = Optional.optional(nativeFromJson, nativeToJson); + + final FirebaseDataConnect _dataConnect; GetCompletedShiftsByBusinessIdVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + GetCompletedShiftsByBusinessIdVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + GetCompletedShiftsByBusinessIdVariablesBuilder(this._dataConnect, {required this.businessId,required this.dateFrom,required this.dateTo,}); + Deserializer dataDeserializer = (dynamic json) => GetCompletedShiftsByBusinessIdData.fromJson(jsonDecode(json)); + Serializer varsSerializer = (GetCompletedShiftsByBusinessIdVariables vars) => jsonEncode(vars.toJson()); + Future> execute() { + return ref().execute(); + } + + QueryRef ref() { + GetCompletedShiftsByBusinessIdVariables vars= GetCompletedShiftsByBusinessIdVariables(businessId: businessId,dateFrom: dateFrom,dateTo: dateTo,offset: _offset,limit: _limit,); + return _dataConnect.query("getCompletedShiftsByBusinessId", dataDeserializer, varsSerializer, vars); + } +} + +@immutable +class GetCompletedShiftsByBusinessIdShifts { + final String id; + final Timestamp? date; + final Timestamp? startTime; + final Timestamp? endTime; + final double? hours; + final double? cost; + final int? workersNeeded; + final int? filled; + final Timestamp? createdAt; + final GetCompletedShiftsByBusinessIdShiftsOrder order; + GetCompletedShiftsByBusinessIdShifts.fromJson(dynamic json): + + id = nativeFromJson(json['id']), + date = json['date'] == null ? null : Timestamp.fromJson(json['date']), + startTime = json['startTime'] == null ? null : Timestamp.fromJson(json['startTime']), + endTime = json['endTime'] == null ? null : Timestamp.fromJson(json['endTime']), + hours = json['hours'] == null ? null : nativeFromJson(json['hours']), + cost = json['cost'] == null ? null : nativeFromJson(json['cost']), + workersNeeded = json['workersNeeded'] == null ? null : nativeFromJson(json['workersNeeded']), + filled = json['filled'] == null ? null : nativeFromJson(json['filled']), + createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']), + order = GetCompletedShiftsByBusinessIdShiftsOrder.fromJson(json['order']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final GetCompletedShiftsByBusinessIdShifts otherTyped = other as GetCompletedShiftsByBusinessIdShifts; + return id == otherTyped.id && + date == otherTyped.date && + startTime == otherTyped.startTime && + endTime == otherTyped.endTime && + hours == otherTyped.hours && + cost == otherTyped.cost && + workersNeeded == otherTyped.workersNeeded && + filled == otherTyped.filled && + createdAt == otherTyped.createdAt && + order == otherTyped.order; + + } + @override + int get hashCode => Object.hashAll([id.hashCode, date.hashCode, startTime.hashCode, endTime.hashCode, hours.hashCode, cost.hashCode, workersNeeded.hashCode, filled.hashCode, createdAt.hashCode, order.hashCode]); + + + Map toJson() { + Map json = {}; + json['id'] = nativeToJson(id); + if (date != null) { + json['date'] = date!.toJson(); + } + if (startTime != null) { + json['startTime'] = startTime!.toJson(); + } + if (endTime != null) { + json['endTime'] = endTime!.toJson(); + } + if (hours != null) { + json['hours'] = nativeToJson(hours); + } + if (cost != null) { + json['cost'] = nativeToJson(cost); + } + if (workersNeeded != null) { + json['workersNeeded'] = nativeToJson(workersNeeded); + } + if (filled != null) { + json['filled'] = nativeToJson(filled); + } + if (createdAt != null) { + json['createdAt'] = createdAt!.toJson(); + } + json['order'] = order.toJson(); + return json; + } + + GetCompletedShiftsByBusinessIdShifts({ + required this.id, + this.date, + this.startTime, + this.endTime, + this.hours, + this.cost, + this.workersNeeded, + this.filled, + this.createdAt, + required this.order, + }); +} + +@immutable +class GetCompletedShiftsByBusinessIdShiftsOrder { + final EnumValue status; + GetCompletedShiftsByBusinessIdShiftsOrder.fromJson(dynamic json): + + status = orderStatusDeserializer(json['status']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final GetCompletedShiftsByBusinessIdShiftsOrder otherTyped = other as GetCompletedShiftsByBusinessIdShiftsOrder; + return status == otherTyped.status; + + } + @override + int get hashCode => status.hashCode; + + + Map toJson() { + Map json = {}; + json['status'] = + orderStatusSerializer(status) + ; + return json; + } + + GetCompletedShiftsByBusinessIdShiftsOrder({ + required this.status, + }); +} + +@immutable +class GetCompletedShiftsByBusinessIdData { + final List shifts; + GetCompletedShiftsByBusinessIdData.fromJson(dynamic json): + + shifts = (json['shifts'] as List) + .map((e) => GetCompletedShiftsByBusinessIdShifts.fromJson(e)) + .toList(); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final GetCompletedShiftsByBusinessIdData otherTyped = other as GetCompletedShiftsByBusinessIdData; + return shifts == otherTyped.shifts; + + } + @override + int get hashCode => shifts.hashCode; + + + Map toJson() { + Map json = {}; + json['shifts'] = shifts.map((e) => e.toJson()).toList(); + return json; + } + + GetCompletedShiftsByBusinessIdData({ + required this.shifts, + }); +} + +@immutable +class GetCompletedShiftsByBusinessIdVariables { + final String businessId; + final Timestamp dateFrom; + final Timestamp dateTo; + late final Optionaloffset; + late final Optionallimit; + @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') + GetCompletedShiftsByBusinessIdVariables.fromJson(Map json): + + businessId = nativeFromJson(json['businessId']), + dateFrom = Timestamp.fromJson(json['dateFrom']), + dateTo = Timestamp.fromJson(json['dateTo']) { + + + + + + offset = Optional.optional(nativeFromJson, nativeToJson); + offset.value = json['offset'] == null ? null : nativeFromJson(json['offset']); + + + limit = Optional.optional(nativeFromJson, nativeToJson); + limit.value = json['limit'] == null ? null : nativeFromJson(json['limit']); + + } + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final GetCompletedShiftsByBusinessIdVariables otherTyped = other as GetCompletedShiftsByBusinessIdVariables; + return businessId == otherTyped.businessId && + dateFrom == otherTyped.dateFrom && + dateTo == otherTyped.dateTo && + offset == otherTyped.offset && + limit == otherTyped.limit; + + } + @override + int get hashCode => Object.hashAll([businessId.hashCode, dateFrom.hashCode, dateTo.hashCode, offset.hashCode, limit.hashCode]); + + + Map toJson() { + Map json = {}; + json['businessId'] = nativeToJson(businessId); + json['dateFrom'] = dateFrom.toJson(); + json['dateTo'] = dateTo.toJson(); + if(offset.state == OptionalState.set) { + json['offset'] = offset.toJson(); + } + if(limit.state == OptionalState.set) { + json['limit'] = limit.toJson(); + } + return json; + } + + GetCompletedShiftsByBusinessIdVariables({ + required this.businessId, + required this.dateFrom, + required this.dateTo, + required this.offset, + required this.limit, + }); +} + diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_id.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_id.dart index 3820320e..de1301e1 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_id.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_id.dart @@ -37,8 +37,9 @@ class GetStaffByIdStaff { final AnyValue? badges; final bool? isRecommended; final String? bio; - final AnyValue? industries; - final AnyValue? preferredLocations; + final List? skills; + final List? industries; + final List? preferredLocations; final int? maxDistanceMiles; final AnyValue? languages; final AnyValue? itemsAttire; @@ -76,8 +77,15 @@ class GetStaffByIdStaff { badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']), isRecommended = json['isRecommended'] == null ? null : nativeFromJson(json['isRecommended']), bio = json['bio'] == null ? null : nativeFromJson(json['bio']), - industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']), - preferredLocations = json['preferredLocations'] == null ? null : AnyValue.fromJson(json['preferredLocations']), + skills = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + industries = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List) + .map((e) => nativeFromJson(e)) + .toList(), maxDistanceMiles = json['maxDistanceMiles'] == null ? null : nativeFromJson(json['maxDistanceMiles']), languages = json['languages'] == null ? null : AnyValue.fromJson(json['languages']), itemsAttire = json['itemsAttire'] == null ? null : AnyValue.fromJson(json['itemsAttire']), @@ -123,6 +131,7 @@ class GetStaffByIdStaff { badges == otherTyped.badges && isRecommended == otherTyped.isRecommended && bio == otherTyped.bio && + skills == otherTyped.skills && industries == otherTyped.industries && preferredLocations == otherTyped.preferredLocations && maxDistanceMiles == otherTyped.maxDistanceMiles && @@ -145,7 +154,7 @@ class GetStaffByIdStaff { } @override - int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, role.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, role.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, skills.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -198,11 +207,14 @@ class GetStaffByIdStaff { if (bio != null) { json['bio'] = nativeToJson(bio); } + if (skills != null) { + json['skills'] = skills?.map((e) => nativeToJson(e)).toList(); + } if (industries != null) { - json['industries'] = industries!.toJson(); + json['industries'] = industries?.map((e) => nativeToJson(e)).toList(); } if (preferredLocations != null) { - json['preferredLocations'] = preferredLocations!.toJson(); + json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson(e)).toList(); } if (maxDistanceMiles != null) { json['maxDistanceMiles'] = nativeToJson(maxDistanceMiles); @@ -285,6 +297,7 @@ class GetStaffByIdStaff { this.badges, this.isRecommended, this.bio, + this.skills, this.industries, this.preferredLocations, this.maxDistanceMiles, diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_user_id.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_user_id.dart index 293cafe8..ac8f92d3 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_user_id.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/get_staff_by_user_id.dart @@ -36,8 +36,9 @@ class GetStaffByUserIdStaffs { final AnyValue? badges; final bool? isRecommended; final String? bio; - final AnyValue? industries; - final AnyValue? preferredLocations; + final List? skills; + final List? industries; + final List? preferredLocations; final int? maxDistanceMiles; final AnyValue? languages; final AnyValue? itemsAttire; @@ -74,8 +75,15 @@ class GetStaffByUserIdStaffs { badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']), isRecommended = json['isRecommended'] == null ? null : nativeFromJson(json['isRecommended']), bio = json['bio'] == null ? null : nativeFromJson(json['bio']), - industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']), - preferredLocations = json['preferredLocations'] == null ? null : AnyValue.fromJson(json['preferredLocations']), + skills = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + industries = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List) + .map((e) => nativeFromJson(e)) + .toList(), maxDistanceMiles = json['maxDistanceMiles'] == null ? null : nativeFromJson(json['maxDistanceMiles']), languages = json['languages'] == null ? null : AnyValue.fromJson(json['languages']), itemsAttire = json['itemsAttire'] == null ? null : AnyValue.fromJson(json['itemsAttire']), @@ -120,6 +128,7 @@ class GetStaffByUserIdStaffs { badges == otherTyped.badges && isRecommended == otherTyped.isRecommended && bio == otherTyped.bio && + skills == otherTyped.skills && industries == otherTyped.industries && preferredLocations == otherTyped.preferredLocations && maxDistanceMiles == otherTyped.maxDistanceMiles && @@ -142,7 +151,7 @@ class GetStaffByUserIdStaffs { } @override - int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, skills.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -192,11 +201,14 @@ class GetStaffByUserIdStaffs { if (bio != null) { json['bio'] = nativeToJson(bio); } + if (skills != null) { + json['skills'] = skills?.map((e) => nativeToJson(e)).toList(); + } if (industries != null) { - json['industries'] = industries!.toJson(); + json['industries'] = industries?.map((e) => nativeToJson(e)).toList(); } if (preferredLocations != null) { - json['preferredLocations'] = preferredLocations!.toJson(); + json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson(e)).toList(); } if (maxDistanceMiles != null) { json['maxDistanceMiles'] = nativeToJson(maxDistanceMiles); @@ -278,6 +290,7 @@ class GetStaffByUserIdStaffs { this.badges, this.isRecommended, this.bio, + this.skills, this.industries, this.preferredLocations, this.maxDistanceMiles, diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_accounts.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_accounts.dart index cb6aa7ce..23ebbdc8 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_accounts.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_accounts.dart @@ -24,9 +24,10 @@ class ListAccountsAccounts { final String last4; final bool? isPrimary; final String ownerId; + final String? accountNumber; + final String? routeNumber; + final Timestamp? expiryTime; final Timestamp? createdAt; - final Timestamp? updatedAt; - final String? createdBy; ListAccountsAccounts.fromJson(dynamic json): id = nativeFromJson(json['id']), @@ -35,9 +36,10 @@ class ListAccountsAccounts { last4 = nativeFromJson(json['last4']), isPrimary = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']), ownerId = nativeFromJson(json['ownerId']), - createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']), - updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']), - createdBy = json['createdBy'] == null ? null : nativeFromJson(json['createdBy']); + accountNumber = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']), + routeNumber = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']), + expiryTime = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']), + createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']); @override bool operator ==(Object other) { if(identical(this, other)) { @@ -54,13 +56,14 @@ class ListAccountsAccounts { last4 == otherTyped.last4 && isPrimary == otherTyped.isPrimary && ownerId == otherTyped.ownerId && - createdAt == otherTyped.createdAt && - updatedAt == otherTyped.updatedAt && - createdBy == otherTyped.createdBy; + accountNumber == otherTyped.accountNumber && + routeNumber == otherTyped.routeNumber && + expiryTime == otherTyped.expiryTime && + createdAt == otherTyped.createdAt; } @override - int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, ownerId.hashCode, accountNumber.hashCode, routeNumber.hashCode, expiryTime.hashCode, createdAt.hashCode]); Map toJson() { @@ -75,15 +78,18 @@ class ListAccountsAccounts { json['isPrimary'] = nativeToJson(isPrimary); } json['ownerId'] = nativeToJson(ownerId); + if (accountNumber != null) { + json['accountNumber'] = nativeToJson(accountNumber); + } + if (routeNumber != null) { + json['routeNumber'] = nativeToJson(routeNumber); + } + if (expiryTime != null) { + json['expiryTime'] = expiryTime!.toJson(); + } if (createdAt != null) { json['createdAt'] = createdAt!.toJson(); } - if (updatedAt != null) { - json['updatedAt'] = updatedAt!.toJson(); - } - if (createdBy != null) { - json['createdBy'] = nativeToJson(createdBy); - } return json; } @@ -94,9 +100,10 @@ class ListAccountsAccounts { required this.last4, this.isPrimary, required this.ownerId, + this.accountNumber, + this.routeNumber, + this.expiryTime, this.createdAt, - this.updatedAt, - this.createdBy, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_date_range.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_date_range.dart index f0aca6be..741c67d5 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_date_range.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_date_range.dart @@ -6,6 +6,7 @@ class ListShiftRolesByBusinessAndDateRangeVariablesBuilder { Timestamp end; Optional _offset = Optional.optional(nativeFromJson, nativeToJson); Optional _limit = Optional.optional(nativeFromJson, nativeToJson); + Optional _status = Optional.optional((data) => ShiftStatus.values.byName(data), enumSerializer); final FirebaseDataConnect _dataConnect; ListShiftRolesByBusinessAndDateRangeVariablesBuilder offset(int? t) { _offset.value = t; @@ -15,6 +16,10 @@ class ListShiftRolesByBusinessAndDateRangeVariablesBuilder { _limit.value = t; return this; } + ListShiftRolesByBusinessAndDateRangeVariablesBuilder status(ShiftStatus? t) { + _status.value = t; + return this; + } ListShiftRolesByBusinessAndDateRangeVariablesBuilder(this._dataConnect, {required this.businessId,required this.start,required this.end,}); Deserializer dataDeserializer = (dynamic json) => ListShiftRolesByBusinessAndDateRangeData.fromJson(jsonDecode(json)); @@ -24,7 +29,7 @@ class ListShiftRolesByBusinessAndDateRangeVariablesBuilder { } QueryRef ref() { - ListShiftRolesByBusinessAndDateRangeVariables vars= ListShiftRolesByBusinessAndDateRangeVariables(businessId: businessId,start: start,end: end,offset: _offset,limit: _limit,); + ListShiftRolesByBusinessAndDateRangeVariables vars= ListShiftRolesByBusinessAndDateRangeVariables(businessId: businessId,start: start,end: end,offset: _offset,limit: _limit,status: _status,); return _dataConnect.query("listShiftRolesByBusinessAndDateRange", dataDeserializer, varsSerializer, vars); } } @@ -308,6 +313,7 @@ class ListShiftRolesByBusinessAndDateRangeVariables { final Timestamp end; late final Optionaloffset; late final Optionallimit; + late final Optionalstatus; @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') ListShiftRolesByBusinessAndDateRangeVariables.fromJson(Map json): @@ -326,6 +332,10 @@ class ListShiftRolesByBusinessAndDateRangeVariables { limit = Optional.optional(nativeFromJson, nativeToJson); limit.value = json['limit'] == null ? null : nativeFromJson(json['limit']); + + status = Optional.optional((data) => ShiftStatus.values.byName(data), enumSerializer); + status.value = json['status'] == null ? null : ShiftStatus.values.byName(json['status']); + } @override bool operator ==(Object other) { @@ -341,11 +351,12 @@ class ListShiftRolesByBusinessAndDateRangeVariables { start == otherTyped.start && end == otherTyped.end && offset == otherTyped.offset && - limit == otherTyped.limit; + limit == otherTyped.limit && + status == otherTyped.status; } @override - int get hashCode => Object.hashAll([businessId.hashCode, start.hashCode, end.hashCode, offset.hashCode, limit.hashCode]); + int get hashCode => Object.hashAll([businessId.hashCode, start.hashCode, end.hashCode, offset.hashCode, limit.hashCode, status.hashCode]); Map toJson() { @@ -359,6 +370,9 @@ class ListShiftRolesByBusinessAndDateRangeVariables { if(limit.state == OptionalState.set) { json['limit'] = limit.toJson(); } + if(status.state == OptionalState.set) { + json['status'] = status.toJson(); + } return json; } @@ -368,6 +382,7 @@ class ListShiftRolesByBusinessAndDateRangeVariables { required this.end, required this.offset, required this.limit, + required this.status, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_dates_summary.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_dates_summary.dart new file mode 100644 index 00000000..2f63cfa8 --- /dev/null +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_shift_roles_by_business_and_dates_summary.dart @@ -0,0 +1,229 @@ +part of 'generated.dart'; + +class ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder { + String businessId; + Timestamp start; + Timestamp end; + Optional _offset = Optional.optional(nativeFromJson, nativeToJson); + Optional _limit = Optional.optional(nativeFromJson, nativeToJson); + + final FirebaseDataConnect _dataConnect; ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ListShiftRolesByBusinessAndDatesSummaryVariablesBuilder(this._dataConnect, {required this.businessId,required this.start,required this.end,}); + Deserializer dataDeserializer = (dynamic json) => ListShiftRolesByBusinessAndDatesSummaryData.fromJson(jsonDecode(json)); + Serializer varsSerializer = (ListShiftRolesByBusinessAndDatesSummaryVariables vars) => jsonEncode(vars.toJson()); + Future> execute() { + return ref().execute(); + } + + QueryRef ref() { + ListShiftRolesByBusinessAndDatesSummaryVariables vars= ListShiftRolesByBusinessAndDatesSummaryVariables(businessId: businessId,start: start,end: end,offset: _offset,limit: _limit,); + return _dataConnect.query("listShiftRolesByBusinessAndDatesSummary", dataDeserializer, varsSerializer, vars); + } +} + +@immutable +class ListShiftRolesByBusinessAndDatesSummaryShiftRoles { + final String roleId; + final double? hours; + final double? totalValue; + final ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole role; + ListShiftRolesByBusinessAndDatesSummaryShiftRoles.fromJson(dynamic json): + + roleId = nativeFromJson(json['roleId']), + hours = json['hours'] == null ? null : nativeFromJson(json['hours']), + totalValue = json['totalValue'] == null ? null : nativeFromJson(json['totalValue']), + role = ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole.fromJson(json['role']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListShiftRolesByBusinessAndDatesSummaryShiftRoles otherTyped = other as ListShiftRolesByBusinessAndDatesSummaryShiftRoles; + return roleId == otherTyped.roleId && + hours == otherTyped.hours && + totalValue == otherTyped.totalValue && + role == otherTyped.role; + + } + @override + int get hashCode => Object.hashAll([roleId.hashCode, hours.hashCode, totalValue.hashCode, role.hashCode]); + + + Map toJson() { + Map json = {}; + json['roleId'] = nativeToJson(roleId); + if (hours != null) { + json['hours'] = nativeToJson(hours); + } + if (totalValue != null) { + json['totalValue'] = nativeToJson(totalValue); + } + json['role'] = role.toJson(); + return json; + } + + ListShiftRolesByBusinessAndDatesSummaryShiftRoles({ + required this.roleId, + this.hours, + this.totalValue, + required this.role, + }); +} + +@immutable +class ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole { + final String id; + final String name; + ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole.fromJson(dynamic json): + + id = nativeFromJson(json['id']), + name = nativeFromJson(json['name']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole otherTyped = other as ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole; + return id == otherTyped.id && + name == otherTyped.name; + + } + @override + int get hashCode => Object.hashAll([id.hashCode, name.hashCode]); + + + Map toJson() { + Map json = {}; + json['id'] = nativeToJson(id); + json['name'] = nativeToJson(name); + return json; + } + + ListShiftRolesByBusinessAndDatesSummaryShiftRolesRole({ + required this.id, + required this.name, + }); +} + +@immutable +class ListShiftRolesByBusinessAndDatesSummaryData { + final List shiftRoles; + ListShiftRolesByBusinessAndDatesSummaryData.fromJson(dynamic json): + + shiftRoles = (json['shiftRoles'] as List) + .map((e) => ListShiftRolesByBusinessAndDatesSummaryShiftRoles.fromJson(e)) + .toList(); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListShiftRolesByBusinessAndDatesSummaryData otherTyped = other as ListShiftRolesByBusinessAndDatesSummaryData; + return shiftRoles == otherTyped.shiftRoles; + + } + @override + int get hashCode => shiftRoles.hashCode; + + + Map toJson() { + Map json = {}; + json['shiftRoles'] = shiftRoles.map((e) => e.toJson()).toList(); + return json; + } + + ListShiftRolesByBusinessAndDatesSummaryData({ + required this.shiftRoles, + }); +} + +@immutable +class ListShiftRolesByBusinessAndDatesSummaryVariables { + final String businessId; + final Timestamp start; + final Timestamp end; + late final Optionaloffset; + late final Optionallimit; + @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') + ListShiftRolesByBusinessAndDatesSummaryVariables.fromJson(Map json): + + businessId = nativeFromJson(json['businessId']), + start = Timestamp.fromJson(json['start']), + end = Timestamp.fromJson(json['end']) { + + + + + + offset = Optional.optional(nativeFromJson, nativeToJson); + offset.value = json['offset'] == null ? null : nativeFromJson(json['offset']); + + + limit = Optional.optional(nativeFromJson, nativeToJson); + limit.value = json['limit'] == null ? null : nativeFromJson(json['limit']); + + } + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListShiftRolesByBusinessAndDatesSummaryVariables otherTyped = other as ListShiftRolesByBusinessAndDatesSummaryVariables; + return businessId == otherTyped.businessId && + start == otherTyped.start && + end == otherTyped.end && + offset == otherTyped.offset && + limit == otherTyped.limit; + + } + @override + int get hashCode => Object.hashAll([businessId.hashCode, start.hashCode, end.hashCode, offset.hashCode, limit.hashCode]); + + + Map toJson() { + Map json = {}; + json['businessId'] = nativeToJson(businessId); + json['start'] = start.toJson(); + json['end'] = end.toJson(); + if(offset.state == OptionalState.set) { + json['offset'] = offset.toJson(); + } + if(limit.state == OptionalState.set) { + json['limit'] = limit.toJson(); + } + return json; + } + + ListShiftRolesByBusinessAndDatesSummaryVariables({ + required this.businessId, + required this.start, + required this.end, + required this.offset, + required this.limit, + }); +} + diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staff.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staff.dart index 4a2c16f7..896ef00d 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staff.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staff.dart @@ -36,8 +36,9 @@ class ListStaffStaffs { final AnyValue? badges; final bool? isRecommended; final String? bio; - final AnyValue? industries; - final AnyValue? preferredLocations; + final List? skills; + final List? industries; + final List? preferredLocations; final int? maxDistanceMiles; final AnyValue? languages; final AnyValue? itemsAttire; @@ -73,8 +74,15 @@ class ListStaffStaffs { badges = json['badges'] == null ? null : AnyValue.fromJson(json['badges']), isRecommended = json['isRecommended'] == null ? null : nativeFromJson(json['isRecommended']), bio = json['bio'] == null ? null : nativeFromJson(json['bio']), - industries = json['industries'] == null ? null : AnyValue.fromJson(json['industries']), - preferredLocations = json['preferredLocations'] == null ? null : AnyValue.fromJson(json['preferredLocations']), + skills = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + industries = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(), + preferredLocations = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List) + .map((e) => nativeFromJson(e)) + .toList(), maxDistanceMiles = json['maxDistanceMiles'] == null ? null : nativeFromJson(json['maxDistanceMiles']), languages = json['languages'] == null ? null : AnyValue.fromJson(json['languages']), itemsAttire = json['itemsAttire'] == null ? null : AnyValue.fromJson(json['itemsAttire']), @@ -118,6 +126,7 @@ class ListStaffStaffs { badges == otherTyped.badges && isRecommended == otherTyped.isRecommended && bio == otherTyped.bio && + skills == otherTyped.skills && industries == otherTyped.industries && preferredLocations == otherTyped.preferredLocations && maxDistanceMiles == otherTyped.maxDistanceMiles && @@ -138,7 +147,7 @@ class ListStaffStaffs { } @override - int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, bio.hashCode, skills.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, ownerId.hashCode, createdAt.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -191,11 +200,14 @@ class ListStaffStaffs { if (bio != null) { json['bio'] = nativeToJson(bio); } + if (skills != null) { + json['skills'] = skills?.map((e) => nativeToJson(e)).toList(); + } if (industries != null) { - json['industries'] = industries!.toJson(); + json['industries'] = industries?.map((e) => nativeToJson(e)).toList(); } if (preferredLocations != null) { - json['preferredLocations'] = preferredLocations!.toJson(); + json['preferredLocations'] = preferredLocations?.map((e) => nativeToJson(e)).toList(); } if (maxDistanceMiles != null) { json['maxDistanceMiles'] = nativeToJson(maxDistanceMiles); @@ -272,6 +284,7 @@ class ListStaffStaffs { this.badges, this.isRecommended, this.bio, + this.skills, this.industries, this.preferredLocations, this.maxDistanceMiles, diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staffs_applications_by_business_for_day.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staffs_applications_by_business_for_day.dart new file mode 100644 index 00000000..7c4ed250 --- /dev/null +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/list_staffs_applications_by_business_for_day.dart @@ -0,0 +1,407 @@ +part of 'generated.dart'; + +class ListStaffsApplicationsByBusinessForDayVariablesBuilder { + String businessId; + Timestamp dayStart; + Timestamp dayEnd; + Optional _offset = Optional.optional(nativeFromJson, nativeToJson); + Optional _limit = Optional.optional(nativeFromJson, nativeToJson); + + final FirebaseDataConnect _dataConnect; ListStaffsApplicationsByBusinessForDayVariablesBuilder offset(int? t) { + _offset.value = t; + return this; + } + ListStaffsApplicationsByBusinessForDayVariablesBuilder limit(int? t) { + _limit.value = t; + return this; + } + + ListStaffsApplicationsByBusinessForDayVariablesBuilder(this._dataConnect, {required this.businessId,required this.dayStart,required this.dayEnd,}); + Deserializer dataDeserializer = (dynamic json) => ListStaffsApplicationsByBusinessForDayData.fromJson(jsonDecode(json)); + Serializer varsSerializer = (ListStaffsApplicationsByBusinessForDayVariables vars) => jsonEncode(vars.toJson()); + Future> execute() { + return ref().execute(); + } + + QueryRef ref() { + ListStaffsApplicationsByBusinessForDayVariables vars= ListStaffsApplicationsByBusinessForDayVariables(businessId: businessId,dayStart: dayStart,dayEnd: dayEnd,offset: _offset,limit: _limit,); + return _dataConnect.query("listStaffsApplicationsByBusinessForDay", dataDeserializer, varsSerializer, vars); + } +} + +@immutable +class ListStaffsApplicationsByBusinessForDayApplications { + final String id; + final String shiftId; + final String roleId; + final Timestamp? checkInTime; + final Timestamp? checkOutTime; + final Timestamp? appliedAt; + final EnumValue status; + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRole shiftRole; + final ListStaffsApplicationsByBusinessForDayApplicationsStaff staff; + ListStaffsApplicationsByBusinessForDayApplications.fromJson(dynamic json): + + id = nativeFromJson(json['id']), + shiftId = nativeFromJson(json['shiftId']), + roleId = nativeFromJson(json['roleId']), + checkInTime = json['checkInTime'] == null ? null : Timestamp.fromJson(json['checkInTime']), + checkOutTime = json['checkOutTime'] == null ? null : Timestamp.fromJson(json['checkOutTime']), + appliedAt = json['appliedAt'] == null ? null : Timestamp.fromJson(json['appliedAt']), + status = applicationStatusDeserializer(json['status']), + shiftRole = ListStaffsApplicationsByBusinessForDayApplicationsShiftRole.fromJson(json['shiftRole']), + staff = ListStaffsApplicationsByBusinessForDayApplicationsStaff.fromJson(json['staff']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayApplications otherTyped = other as ListStaffsApplicationsByBusinessForDayApplications; + return id == otherTyped.id && + shiftId == otherTyped.shiftId && + roleId == otherTyped.roleId && + checkInTime == otherTyped.checkInTime && + checkOutTime == otherTyped.checkOutTime && + appliedAt == otherTyped.appliedAt && + status == otherTyped.status && + shiftRole == otherTyped.shiftRole && + staff == otherTyped.staff; + + } + @override + int get hashCode => Object.hashAll([id.hashCode, shiftId.hashCode, roleId.hashCode, checkInTime.hashCode, checkOutTime.hashCode, appliedAt.hashCode, status.hashCode, shiftRole.hashCode, staff.hashCode]); + + + Map toJson() { + Map json = {}; + json['id'] = nativeToJson(id); + json['shiftId'] = nativeToJson(shiftId); + json['roleId'] = nativeToJson(roleId); + if (checkInTime != null) { + json['checkInTime'] = checkInTime!.toJson(); + } + if (checkOutTime != null) { + json['checkOutTime'] = checkOutTime!.toJson(); + } + if (appliedAt != null) { + json['appliedAt'] = appliedAt!.toJson(); + } + json['status'] = + applicationStatusSerializer(status) + ; + json['shiftRole'] = shiftRole.toJson(); + json['staff'] = staff.toJson(); + return json; + } + + ListStaffsApplicationsByBusinessForDayApplications({ + required this.id, + required this.shiftId, + required this.roleId, + this.checkInTime, + this.checkOutTime, + this.appliedAt, + required this.status, + required this.shiftRole, + required this.staff, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayApplicationsShiftRole { + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift shift; + final int count; + final int? assigned; + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole role; + ListStaffsApplicationsByBusinessForDayApplicationsShiftRole.fromJson(dynamic json): + + shift = ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift.fromJson(json['shift']), + count = nativeFromJson(json['count']), + assigned = json['assigned'] == null ? null : nativeFromJson(json['assigned']), + role = ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole.fromJson(json['role']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRole otherTyped = other as ListStaffsApplicationsByBusinessForDayApplicationsShiftRole; + return shift == otherTyped.shift && + count == otherTyped.count && + assigned == otherTyped.assigned && + role == otherTyped.role; + + } + @override + int get hashCode => Object.hashAll([shift.hashCode, count.hashCode, assigned.hashCode, role.hashCode]); + + + Map toJson() { + Map json = {}; + json['shift'] = shift.toJson(); + json['count'] = nativeToJson(count); + if (assigned != null) { + json['assigned'] = nativeToJson(assigned); + } + json['role'] = role.toJson(); + return json; + } + + ListStaffsApplicationsByBusinessForDayApplicationsShiftRole({ + required this.shift, + required this.count, + this.assigned, + required this.role, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift { + final String? location; + final double? cost; + ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift.fromJson(dynamic json): + + location = json['location'] == null ? null : nativeFromJson(json['location']), + cost = json['cost'] == null ? null : nativeFromJson(json['cost']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift otherTyped = other as ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift; + return location == otherTyped.location && + cost == otherTyped.cost; + + } + @override + int get hashCode => Object.hashAll([location.hashCode, cost.hashCode]); + + + Map toJson() { + Map json = {}; + if (location != null) { + json['location'] = nativeToJson(location); + } + if (cost != null) { + json['cost'] = nativeToJson(cost); + } + return json; + } + + ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleShift({ + this.location, + this.cost, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole { + final String name; + ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole.fromJson(dynamic json): + + name = nativeFromJson(json['name']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole otherTyped = other as ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole; + return name == otherTyped.name; + + } + @override + int get hashCode => name.hashCode; + + + Map toJson() { + Map json = {}; + json['name'] = nativeToJson(name); + return json; + } + + ListStaffsApplicationsByBusinessForDayApplicationsShiftRoleRole({ + required this.name, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayApplicationsStaff { + final String id; + final String fullName; + final String? email; + final String? phone; + final String? photoUrl; + ListStaffsApplicationsByBusinessForDayApplicationsStaff.fromJson(dynamic json): + + id = nativeFromJson(json['id']), + fullName = nativeFromJson(json['fullName']), + email = json['email'] == null ? null : nativeFromJson(json['email']), + phone = json['phone'] == null ? null : nativeFromJson(json['phone']), + photoUrl = json['photoUrl'] == null ? null : nativeFromJson(json['photoUrl']); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayApplicationsStaff otherTyped = other as ListStaffsApplicationsByBusinessForDayApplicationsStaff; + return id == otherTyped.id && + fullName == otherTyped.fullName && + email == otherTyped.email && + phone == otherTyped.phone && + photoUrl == otherTyped.photoUrl; + + } + @override + int get hashCode => Object.hashAll([id.hashCode, fullName.hashCode, email.hashCode, phone.hashCode, photoUrl.hashCode]); + + + Map toJson() { + Map json = {}; + json['id'] = nativeToJson(id); + json['fullName'] = nativeToJson(fullName); + if (email != null) { + json['email'] = nativeToJson(email); + } + if (phone != null) { + json['phone'] = nativeToJson(phone); + } + if (photoUrl != null) { + json['photoUrl'] = nativeToJson(photoUrl); + } + return json; + } + + ListStaffsApplicationsByBusinessForDayApplicationsStaff({ + required this.id, + required this.fullName, + this.email, + this.phone, + this.photoUrl, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayData { + final List applications; + ListStaffsApplicationsByBusinessForDayData.fromJson(dynamic json): + + applications = (json['applications'] as List) + .map((e) => ListStaffsApplicationsByBusinessForDayApplications.fromJson(e)) + .toList(); + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayData otherTyped = other as ListStaffsApplicationsByBusinessForDayData; + return applications == otherTyped.applications; + + } + @override + int get hashCode => applications.hashCode; + + + Map toJson() { + Map json = {}; + json['applications'] = applications.map((e) => e.toJson()).toList(); + return json; + } + + ListStaffsApplicationsByBusinessForDayData({ + required this.applications, + }); +} + +@immutable +class ListStaffsApplicationsByBusinessForDayVariables { + final String businessId; + final Timestamp dayStart; + final Timestamp dayEnd; + late final Optionaloffset; + late final Optionallimit; + @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') + ListStaffsApplicationsByBusinessForDayVariables.fromJson(Map json): + + businessId = nativeFromJson(json['businessId']), + dayStart = Timestamp.fromJson(json['dayStart']), + dayEnd = Timestamp.fromJson(json['dayEnd']) { + + + + + + offset = Optional.optional(nativeFromJson, nativeToJson); + offset.value = json['offset'] == null ? null : nativeFromJson(json['offset']); + + + limit = Optional.optional(nativeFromJson, nativeToJson); + limit.value = json['limit'] == null ? null : nativeFromJson(json['limit']); + + } + @override + bool operator ==(Object other) { + if(identical(this, other)) { + return true; + } + if(other.runtimeType != runtimeType) { + return false; + } + + final ListStaffsApplicationsByBusinessForDayVariables otherTyped = other as ListStaffsApplicationsByBusinessForDayVariables; + return businessId == otherTyped.businessId && + dayStart == otherTyped.dayStart && + dayEnd == otherTyped.dayEnd && + offset == otherTyped.offset && + limit == otherTyped.limit; + + } + @override + int get hashCode => Object.hashAll([businessId.hashCode, dayStart.hashCode, dayEnd.hashCode, offset.hashCode, limit.hashCode]); + + + Map toJson() { + Map json = {}; + json['businessId'] = nativeToJson(businessId); + json['dayStart'] = dayStart.toJson(); + json['dayEnd'] = dayEnd.toJson(); + if(offset.state == OptionalState.set) { + json['offset'] = offset.toJson(); + } + if(limit.state == OptionalState.set) { + json['limit'] = limit.toJson(); + } + return json; + } + + ListStaffsApplicationsByBusinessForDayVariables({ + required this.businessId, + required this.dayStart, + required this.dayEnd, + required this.offset, + required this.limit, + }); +} + diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_account.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_account.dart index 45c9489c..9367f031 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_account.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_account.dart @@ -6,6 +6,9 @@ class UpdateAccountVariablesBuilder { Optional _type = Optional.optional((data) => AccountType.values.byName(data), enumSerializer); Optional _last4 = Optional.optional(nativeFromJson, nativeToJson); Optional _isPrimary = Optional.optional(nativeFromJson, nativeToJson); + Optional _accountNumber = Optional.optional(nativeFromJson, nativeToJson); + Optional _routeNumber = Optional.optional(nativeFromJson, nativeToJson); + Optional _expiryTime = Optional.optional((json) => json['expiryTime'] = Timestamp.fromJson(json['expiryTime']), defaultSerializer); final FirebaseDataConnect _dataConnect; UpdateAccountVariablesBuilder bank(String? t) { _bank.value = t; @@ -23,6 +26,18 @@ class UpdateAccountVariablesBuilder { _isPrimary.value = t; return this; } + UpdateAccountVariablesBuilder accountNumber(String? t) { + _accountNumber.value = t; + return this; + } + UpdateAccountVariablesBuilder routeNumber(String? t) { + _routeNumber.value = t; + return this; + } + UpdateAccountVariablesBuilder expiryTime(Timestamp? t) { + _expiryTime.value = t; + return this; + } UpdateAccountVariablesBuilder(this._dataConnect, {required this.id,}); Deserializer dataDeserializer = (dynamic json) => UpdateAccountData.fromJson(jsonDecode(json)); @@ -32,7 +47,7 @@ class UpdateAccountVariablesBuilder { } MutationRef ref() { - UpdateAccountVariables vars= UpdateAccountVariables(id: id,bank: _bank,type: _type,last4: _last4,isPrimary: _isPrimary,); + UpdateAccountVariables vars= UpdateAccountVariables(id: id,bank: _bank,type: _type,last4: _last4,isPrimary: _isPrimary,accountNumber: _accountNumber,routeNumber: _routeNumber,expiryTime: _expiryTime,); return _dataConnect.mutation("updateAccount", dataDeserializer, varsSerializer, vars); } } @@ -114,6 +129,9 @@ class UpdateAccountVariables { late final Optionaltype; late final Optionallast4; late final OptionalisPrimary; + late final OptionalaccountNumber; + late final OptionalrouteNumber; + late final OptionalexpiryTime; @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.') UpdateAccountVariables.fromJson(Map json): @@ -136,6 +154,18 @@ class UpdateAccountVariables { isPrimary = Optional.optional(nativeFromJson, nativeToJson); isPrimary.value = json['isPrimary'] == null ? null : nativeFromJson(json['isPrimary']); + + accountNumber = Optional.optional(nativeFromJson, nativeToJson); + accountNumber.value = json['accountNumber'] == null ? null : nativeFromJson(json['accountNumber']); + + + routeNumber = Optional.optional(nativeFromJson, nativeToJson); + routeNumber.value = json['routeNumber'] == null ? null : nativeFromJson(json['routeNumber']); + + + expiryTime = Optional.optional((json) => json['expiryTime'] = Timestamp.fromJson(json['expiryTime']), defaultSerializer); + expiryTime.value = json['expiryTime'] == null ? null : Timestamp.fromJson(json['expiryTime']); + } @override bool operator ==(Object other) { @@ -151,11 +181,14 @@ class UpdateAccountVariables { bank == otherTyped.bank && type == otherTyped.type && last4 == otherTyped.last4 && - isPrimary == otherTyped.isPrimary; + isPrimary == otherTyped.isPrimary && + accountNumber == otherTyped.accountNumber && + routeNumber == otherTyped.routeNumber && + expiryTime == otherTyped.expiryTime; } @override - int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, bank.hashCode, type.hashCode, last4.hashCode, isPrimary.hashCode, accountNumber.hashCode, routeNumber.hashCode, expiryTime.hashCode]); Map toJson() { @@ -173,6 +206,15 @@ class UpdateAccountVariables { if(isPrimary.state == OptionalState.set) { json['isPrimary'] = isPrimary.toJson(); } + if(accountNumber.state == OptionalState.set) { + json['accountNumber'] = accountNumber.toJson(); + } + if(routeNumber.state == OptionalState.set) { + json['routeNumber'] = routeNumber.toJson(); + } + if(expiryTime.state == OptionalState.set) { + json['expiryTime'] = expiryTime.toJson(); + } return json; } @@ -182,6 +224,9 @@ class UpdateAccountVariables { required this.type, required this.last4, required this.isPrimary, + required this.accountNumber, + required this.routeNumber, + required this.expiryTime, }); } diff --git a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_staff.dart b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_staff.dart index 2c7a7a26..639edd17 100644 --- a/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_staff.dart +++ b/apps/mobile/packages/data_connect/lib/src/dataconnect_generated/update_staff.dart @@ -16,8 +16,9 @@ class UpdateStaffVariablesBuilder { Optional _cancellationCount = Optional.optional(nativeFromJson, nativeToJson); Optional _reliabilityScore = Optional.optional(nativeFromJson, nativeToJson); Optional _bio = Optional.optional(nativeFromJson, nativeToJson); - Optional _industries = Optional.optional(AnyValue.fromJson, defaultSerializer); - Optional _preferredLocations = Optional.optional(AnyValue.fromJson, defaultSerializer); + Optional> _skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + Optional> _industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + Optional> _preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); Optional _maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson); Optional _languages = Optional.optional(AnyValue.fromJson, defaultSerializer); Optional _itemsAttire = Optional.optional(AnyValue.fromJson, defaultSerializer); @@ -92,11 +93,15 @@ class UpdateStaffVariablesBuilder { _bio.value = t; return this; } - UpdateStaffVariablesBuilder industries(AnyValue? t) { + UpdateStaffVariablesBuilder skills(List? t) { + _skills.value = t; + return this; + } + UpdateStaffVariablesBuilder industries(List? t) { _industries.value = t; return this; } - UpdateStaffVariablesBuilder preferredLocations(AnyValue? t) { + UpdateStaffVariablesBuilder preferredLocations(List? t) { _preferredLocations.value = t; return this; } @@ -177,7 +182,7 @@ class UpdateStaffVariablesBuilder { } MutationRef ref() { - UpdateStaffVariables vars= UpdateStaffVariables(id: id,userId: _userId,fullName: _fullName,level: _level,role: _role,phone: _phone,email: _email,photoUrl: _photoUrl,totalShifts: _totalShifts,averageRating: _averageRating,onTimeRate: _onTimeRate,noShowCount: _noShowCount,cancellationCount: _cancellationCount,reliabilityScore: _reliabilityScore,bio: _bio,industries: _industries,preferredLocations: _preferredLocations,maxDistanceMiles: _maxDistanceMiles,languages: _languages,itemsAttire: _itemsAttire,xp: _xp,badges: _badges,isRecommended: _isRecommended,ownerId: _ownerId,department: _department,hubId: _hubId,manager: _manager,english: _english,backgroundCheckStatus: _backgroundCheckStatus,employmentType: _employmentType,initial: _initial,englishRequired: _englishRequired,city: _city,addres: _addres,); + UpdateStaffVariables vars= UpdateStaffVariables(id: id,userId: _userId,fullName: _fullName,level: _level,role: _role,phone: _phone,email: _email,photoUrl: _photoUrl,totalShifts: _totalShifts,averageRating: _averageRating,onTimeRate: _onTimeRate,noShowCount: _noShowCount,cancellationCount: _cancellationCount,reliabilityScore: _reliabilityScore,bio: _bio,skills: _skills,industries: _industries,preferredLocations: _preferredLocations,maxDistanceMiles: _maxDistanceMiles,languages: _languages,itemsAttire: _itemsAttire,xp: _xp,badges: _badges,isRecommended: _isRecommended,ownerId: _ownerId,department: _department,hubId: _hubId,manager: _manager,english: _english,backgroundCheckStatus: _backgroundCheckStatus,employmentType: _employmentType,initial: _initial,englishRequired: _englishRequired,city: _city,addres: _addres,); return _dataConnect.mutation("UpdateStaff", dataDeserializer, varsSerializer, vars); } } @@ -269,8 +274,9 @@ class UpdateStaffVariables { late final OptionalcancellationCount; late final OptionalreliabilityScore; late final Optionalbio; - late final Optionalindustries; - late final OptionalpreferredLocations; + late final Optional>skills; + late final Optional>industries; + late final Optional>preferredLocations; late final OptionalmaxDistanceMiles; late final Optionallanguages; late final OptionalitemsAttire; @@ -351,12 +357,22 @@ class UpdateStaffVariables { bio.value = json['bio'] == null ? null : nativeFromJson(json['bio']); - industries = Optional.optional(AnyValue.fromJson, defaultSerializer); - industries.value = json['industries'] == null ? null : AnyValue.fromJson(json['industries']); + skills = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + skills.value = json['skills'] == null ? null : (json['skills'] as List) + .map((e) => nativeFromJson(e)) + .toList(); - preferredLocations = Optional.optional(AnyValue.fromJson, defaultSerializer); - preferredLocations.value = json['preferredLocations'] == null ? null : AnyValue.fromJson(json['preferredLocations']); + industries = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + industries.value = json['industries'] == null ? null : (json['industries'] as List) + .map((e) => nativeFromJson(e)) + .toList(); + + + preferredLocations = Optional.optional(listDeserializer(nativeFromJson), listSerializer(nativeToJson)); + preferredLocations.value = json['preferredLocations'] == null ? null : (json['preferredLocations'] as List) + .map((e) => nativeFromJson(e)) + .toList(); maxDistanceMiles = Optional.optional(nativeFromJson, nativeToJson); @@ -452,6 +468,7 @@ class UpdateStaffVariables { cancellationCount == otherTyped.cancellationCount && reliabilityScore == otherTyped.reliabilityScore && bio == otherTyped.bio && + skills == otherTyped.skills && industries == otherTyped.industries && preferredLocations == otherTyped.preferredLocations && maxDistanceMiles == otherTyped.maxDistanceMiles && @@ -474,7 +491,7 @@ class UpdateStaffVariables { } @override - int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, bio.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, ownerId.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); + int get hashCode => Object.hashAll([id.hashCode, userId.hashCode, fullName.hashCode, level.hashCode, role.hashCode, phone.hashCode, email.hashCode, photoUrl.hashCode, totalShifts.hashCode, averageRating.hashCode, onTimeRate.hashCode, noShowCount.hashCode, cancellationCount.hashCode, reliabilityScore.hashCode, bio.hashCode, skills.hashCode, industries.hashCode, preferredLocations.hashCode, maxDistanceMiles.hashCode, languages.hashCode, itemsAttire.hashCode, xp.hashCode, badges.hashCode, isRecommended.hashCode, ownerId.hashCode, department.hashCode, hubId.hashCode, manager.hashCode, english.hashCode, backgroundCheckStatus.hashCode, employmentType.hashCode, initial.hashCode, englishRequired.hashCode, city.hashCode, addres.hashCode]); Map toJson() { @@ -522,6 +539,9 @@ class UpdateStaffVariables { if(bio.state == OptionalState.set) { json['bio'] = bio.toJson(); } + if(skills.state == OptionalState.set) { + json['skills'] = skills.toJson(); + } if(industries.state == OptionalState.set) { json['industries'] = industries.toJson(); } @@ -598,6 +618,7 @@ class UpdateStaffVariables { required this.cancellationCount, required this.reliabilityScore, required this.bio, + required this.skills, required this.industries, required this.preferredLocations, required this.maxDistanceMiles, diff --git a/apps/mobile/packages/data_connect/lib/src/mocks/financial_repository_mock.dart b/apps/mobile/packages/data_connect/lib/src/mocks/financial_repository_mock.dart index 0ae0c513..9da38f9f 100644 --- a/apps/mobile/packages/data_connect/lib/src/mocks/financial_repository_mock.dart +++ b/apps/mobile/packages/data_connect/lib/src/mocks/financial_repository_mock.dart @@ -13,6 +13,8 @@ class FinancialRepositoryMock { totalAmount: 1500.0, workAmount: 1400.0, addonsAmount: 100.0, + invoiceNumber: 'INV-1', + issueDate: null, ), ]; } diff --git a/apps/mobile/packages/data_connect/lib/src/mocks/profile_repository_mock.dart b/apps/mobile/packages/data_connect/lib/src/mocks/profile_repository_mock.dart index e5688f29..2bfd79c1 100644 --- a/apps/mobile/packages/data_connect/lib/src/mocks/profile_repository_mock.dart +++ b/apps/mobile/packages/data_connect/lib/src/mocks/profile_repository_mock.dart @@ -28,7 +28,6 @@ class ProfileRepositoryMock { phone: '555-123-4567', status: StaffStatus.active, avatar: null, - livePhoto: null, address: null, ); } @@ -52,7 +51,8 @@ class ProfileRepositoryMock { const EmergencyContact( name: 'Jane Doe', phone: '555-987-6543', - relationship: 'Family', + relationship: RelationshipType.spouse, + id: 'contact_1', ), ]; } diff --git a/apps/mobile/packages/data_connect/lib/src/mocks/staff_repository_mock.dart b/apps/mobile/packages/data_connect/lib/src/mocks/staff_repository_mock.dart index c032464f..f561ff11 100644 --- a/apps/mobile/packages/data_connect/lib/src/mocks/staff_repository_mock.dart +++ b/apps/mobile/packages/data_connect/lib/src/mocks/staff_repository_mock.dart @@ -36,4 +36,23 @@ class StaffRepositoryMock { await Future.delayed(const Duration(milliseconds: 500)); return staff; } + + // Mock Availability Data Store + final Map _mockAvailability = {}; + + Future> getAvailability(String userId, DateTime start, DateTime end) async { + await Future.delayed(const Duration(milliseconds: 300)); + // Return mock structure: Date ISO String -> { isAvailable: bool, slots: { id: bool } } + + // Auto-generate some data if empty + if (_mockAvailability.isEmpty) { + // Just return empty, let the caller handle defaults + } + return _mockAvailability; + } + + Future updateAvailability(String userId, String dateIso, Map data) async { + await Future.delayed(const Duration(milliseconds: 200)); + _mockAvailability[dateIso] = data; + } } \ No newline at end of file diff --git a/apps/mobile/packages/data_connect/lib/src/session/staff_session_store.dart b/apps/mobile/packages/data_connect/lib/src/session/staff_session_store.dart new file mode 100644 index 00000000..835e11fc --- /dev/null +++ b/apps/mobile/packages/data_connect/lib/src/session/staff_session_store.dart @@ -0,0 +1,29 @@ +import 'package:krow_domain/krow_domain.dart' as domain; + +class StaffSession { + final domain.User user; + final domain.Staff? staff; + + const StaffSession({ + required this.user, + this.staff, + }); +} + +class StaffSessionStore { + StaffSession? _session; + + StaffSession? get session => _session; + + void setSession(StaffSession session) { + _session = session; + } + + void clear() { + _session = null; + } + + static final StaffSessionStore instance = StaffSessionStore._(); + + StaffSessionStore._(); +} diff --git a/apps/mobile/packages/domain/lib/krow_domain.dart b/apps/mobile/packages/domain/lib/krow_domain.dart index 9f00c59a..fc4d87f9 100644 --- a/apps/mobile/packages/domain/lib/krow_domain.dart +++ b/apps/mobile/packages/domain/lib/krow_domain.dart @@ -52,6 +52,9 @@ export 'src/entities/financial/staff_payment.dart'; // Profile export 'src/entities/profile/staff_document.dart'; export 'src/entities/profile/attire_item.dart'; +export 'src/entities/profile/relationship_type.dart'; +export 'src/entities/profile/industry.dart'; +export 'src/entities/profile/tax_form.dart'; // Ratings & Penalties export 'src/entities/ratings/staff_rating.dart'; @@ -73,3 +76,14 @@ export 'src/entities/support/working_area.dart'; // Home export 'src/entities/home/home_dashboard_data.dart'; export 'src/entities/home/reorder_item.dart'; + +// Availability +export 'src/entities/availability/availability_slot.dart'; +export 'src/entities/availability/day_availability.dart'; + +// Adapters +export 'src/adapters/profile/emergency_contact_adapter.dart'; +export 'src/adapters/profile/experience_adapter.dart'; +export 'src/entities/profile/experience_skill.dart'; +export 'src/adapters/profile/bank_account_adapter.dart'; +export 'src/adapters/profile/tax_form_adapter.dart'; diff --git a/apps/mobile/packages/domain/lib/src/adapters/profile/bank_account_adapter.dart b/apps/mobile/packages/domain/lib/src/adapters/profile/bank_account_adapter.dart new file mode 100644 index 00000000..6b285b8a --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/adapters/profile/bank_account_adapter.dart @@ -0,0 +1,53 @@ +import '../../entities/profile/bank_account.dart'; + +/// Adapter for [BankAccount] to map data layer values to domain entity. +class BankAccountAdapter { + /// Maps primitive values to [BankAccount]. + static BankAccount fromPrimitives({ + required String id, + required String userId, + required String bankName, + required String? type, + String? accountNumber, + String? last4, + String? sortCode, + bool? isPrimary, + }) { + return BankAccount( + id: id, + userId: userId, + bankName: bankName, + accountNumber: accountNumber ?? '', + accountName: '', // Not provided by backend + last4: last4, + sortCode: sortCode, + type: _stringToType(type), + isPrimary: isPrimary ?? false, + ); + } + + static BankAccountType _stringToType(String? value) { + if (value == null) return BankAccountType.checking; + try { + // Assuming backend enum names match or are uppercase + return BankAccountType.values.firstWhere( + (e) => e.name.toLowerCase() == value.toLowerCase(), + orElse: () => BankAccountType.other, + ); + } catch (_) { + return BankAccountType.other; + } + } + + /// Converts domain type to string for backend. + static String typeToString(BankAccountType type) { + switch (type) { + case BankAccountType.checking: + return 'CHECKING'; + case BankAccountType.savings: + return 'SAVINGS'; + default: + return 'CHECKING'; + } + } +} diff --git a/apps/mobile/packages/domain/lib/src/adapters/profile/emergency_contact_adapter.dart b/apps/mobile/packages/domain/lib/src/adapters/profile/emergency_contact_adapter.dart new file mode 100644 index 00000000..964f5735 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/adapters/profile/emergency_contact_adapter.dart @@ -0,0 +1,19 @@ +import '../../entities/profile/emergency_contact.dart'; + +/// Adapter for [EmergencyContact] to map data layer values to domain entity. +class EmergencyContactAdapter { + /// Maps primitive values to [EmergencyContact]. + static EmergencyContact fromPrimitives({ + required String id, + required String name, + required String phone, + String? relationship, + }) { + return EmergencyContact( + id: id, + name: name, + phone: phone, + relationship: EmergencyContact.stringToRelationshipType(relationship), + ); + } +} diff --git a/apps/mobile/packages/domain/lib/src/adapters/profile/experience_adapter.dart b/apps/mobile/packages/domain/lib/src/adapters/profile/experience_adapter.dart new file mode 100644 index 00000000..837f3ab1 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/adapters/profile/experience_adapter.dart @@ -0,0 +1,18 @@ +/// Adapter for Experience data (skills/industries) to map data layer values to domain models. +class ExperienceAdapter { + /// Converts a dynamic list (from backend AnyValue) to List. + /// + /// Handles nulls and converts elements to Strings. + static List fromDynamicList(dynamic data) { + if (data == null) return []; + + if (data is List) { + return data + .where((dynamic e) => e != null) + .map((dynamic e) => e.toString()) + .toList(); + } + + return []; + } +} diff --git a/apps/mobile/packages/domain/lib/src/adapters/profile/tax_form_adapter.dart b/apps/mobile/packages/domain/lib/src/adapters/profile/tax_form_adapter.dart new file mode 100644 index 00000000..41f85479 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/adapters/profile/tax_form_adapter.dart @@ -0,0 +1,86 @@ +import '../../entities/profile/tax_form.dart'; + +/// Adapter for [TaxForm] to map data layer values to domain entity. +class TaxFormAdapter { + /// Maps primitive values to [TaxForm]. + static TaxForm fromPrimitives({ + required String id, + required String type, + required String title, + String? subtitle, + String? description, + required String status, + String? staffId, + dynamic formData, + DateTime? createdAt, + DateTime? updatedAt, + }) { + return TaxForm( + id: id, + type: _stringToType(type), + title: title, + subtitle: subtitle, + description: description, + status: _stringToStatus(status), + staffId: staffId, + formData: formData is Map ? Map.from(formData) : null, + createdAt: createdAt, + updatedAt: updatedAt, + ); + } + + static TaxFormType _stringToType(String? value) { + if (value == null) return TaxFormType.i9; + try { + return TaxFormType.values.firstWhere( + (TaxFormType e) => e.name.toLowerCase() == value.toLowerCase(), + orElse: () => TaxFormType.i9, + ); + } catch (_) { + return TaxFormType.i9; + } + } + + static TaxFormStatus _stringToStatus(String? value) { + if (value == null) return TaxFormStatus.notStarted; + try { + final String normalizedValue = value.replaceAll('_', '').toLowerCase(); + // map DRAFT to inProgress + if (normalizedValue == 'draft') return TaxFormStatus.inProgress; + + return TaxFormStatus.values.firstWhere( + (TaxFormStatus e) { + // Handle differences like not_started vs notStarted if any, + // but standardizing to lowercase is a good start. + // The enum names are camelCase in Dart, but might be SNAKE_CASE from backend. + final String normalizedEnum = e.name.toLowerCase(); + return normalizedValue == normalizedEnum; + }, + orElse: () => TaxFormStatus.notStarted, + ); + } catch (_) { + return TaxFormStatus.notStarted; + } + } + + /// Converts domain [TaxFormType] to string for backend. + static String typeToString(TaxFormType type) { + return type.name.toUpperCase(); + } + + /// Converts domain [TaxFormStatus] to string for backend. + static String statusToString(TaxFormStatus status) { + switch (status) { + case TaxFormStatus.notStarted: + return 'NOT_STARTED'; + case TaxFormStatus.inProgress: + return 'DRAFT'; + case TaxFormStatus.submitted: + return 'SUBMITTED'; + case TaxFormStatus.approved: + return 'APPROVED'; + case TaxFormStatus.rejected: + return 'REJECTED'; + } + } +} diff --git a/apps/mobile/packages/domain/lib/src/entities/availability/availability_slot.dart b/apps/mobile/packages/domain/lib/src/entities/availability/availability_slot.dart new file mode 100644 index 00000000..45d7ef01 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/availability/availability_slot.dart @@ -0,0 +1,33 @@ +import 'package:equatable/equatable.dart'; + +/// Represents a specific time slot within a day (e.g., Morning, Afternoon, Evening). +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 = true, + }); + + 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/domain/lib/src/entities/availability/day_availability.dart b/apps/mobile/packages/domain/lib/src/entities/availability/day_availability.dart new file mode 100644 index 00000000..6dd7732e --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/availability/day_availability.dart @@ -0,0 +1,31 @@ +import 'package:equatable/equatable.dart'; + +import 'availability_slot.dart'; + +/// Represents availability configuration for a specific date. +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/domain/lib/src/entities/financial/invoice.dart b/apps/mobile/packages/domain/lib/src/entities/financial/invoice.dart index 2dc06f9c..4c5a0e3c 100644 --- a/apps/mobile/packages/domain/lib/src/entities/financial/invoice.dart +++ b/apps/mobile/packages/domain/lib/src/entities/financial/invoice.dart @@ -35,6 +35,8 @@ class Invoice extends Equatable { required this.totalAmount, required this.workAmount, required this.addonsAmount, + this.invoiceNumber, + this.issueDate, }); /// Unique identifier. final String id; @@ -57,6 +59,12 @@ class Invoice extends Equatable { /// Total amount for addons/extras. final double addonsAmount; + /// Human-readable invoice number. + final String? invoiceNumber; + + /// Date when the invoice was issued. + final DateTime? issueDate; + @override List get props => [ id, @@ -66,5 +74,7 @@ class Invoice extends Equatable { totalAmount, workAmount, addonsAmount, + invoiceNumber, + issueDate, ]; -} \ No newline at end of file +} diff --git a/apps/mobile/packages/domain/lib/src/entities/profile/emergency_contact.dart b/apps/mobile/packages/domain/lib/src/entities/profile/emergency_contact.dart index d9e8fcd2..ed3d438d 100644 --- a/apps/mobile/packages/domain/lib/src/entities/profile/emergency_contact.dart +++ b/apps/mobile/packages/domain/lib/src/entities/profile/emergency_contact.dart @@ -1,4 +1,5 @@ import 'package:equatable/equatable.dart'; +import 'relationship_type.dart'; /// Represents an emergency contact for a user. /// @@ -6,19 +7,69 @@ import 'package:equatable/equatable.dart'; class EmergencyContact extends Equatable { const EmergencyContact({ + required this.id, required this.name, required this.relationship, required this.phone, }); + + /// Unique identifier. + final String id; + /// Full name of the contact. final String name; /// Relationship to the user (e.g. "Spouse", "Parent"). - final String relationship; + final RelationshipType relationship; /// Phone number. final String phone; @override - List get props => [name, relationship, phone]; -} \ No newline at end of file + List get props => [id, name, relationship, phone]; + + /// Returns a copy of this [EmergencyContact] with the given fields replaced. + EmergencyContact copyWith({ + String? id, + String? name, + String? phone, + RelationshipType? relationship, + }) { + return EmergencyContact( + id: id ?? this.id, + name: name ?? this.name, + phone: phone ?? this.phone, + relationship: relationship ?? this.relationship, + ); + } + + /// Returns an empty [EmergencyContact]. + static EmergencyContact empty() { + return const EmergencyContact( + id: '', + name: '', + phone: '', + relationship: RelationshipType.family, + ); + } + + /// Converts a string value to a [RelationshipType]. + static RelationshipType stringToRelationshipType(String? value) { + if (value != null) { + final String strVal = value.toUpperCase(); + switch (strVal) { + case 'FAMILY': + return RelationshipType.family; + case 'SPOUSE': + return RelationshipType.spouse; + case 'FRIEND': + return RelationshipType.friend; + case 'OTHER': + return RelationshipType.other; + default: + return RelationshipType.other; + } + } + return RelationshipType.other; + } +} diff --git a/apps/mobile/packages/domain/lib/src/entities/profile/experience_skill.dart b/apps/mobile/packages/domain/lib/src/entities/profile/experience_skill.dart new file mode 100644 index 00000000..ab8914fa --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/profile/experience_skill.dart @@ -0,0 +1,30 @@ + +enum ExperienceSkill { + foodService('food_service'), + bartending('bartending'), + eventSetup('event_setup'), + hospitality('hospitality'), + warehouse('warehouse'), + customerService('customer_service'), + cleaning('cleaning'), + security('security'), + retail('retail'), + cooking('cooking'), + cashier('cashier'), + server('server'), + barista('barista'), + hostHostess('host_hostess'), + busser('busser'), + driving('driving'); + + final String value; + const ExperienceSkill(this.value); + + static ExperienceSkill? fromString(String value) { + try { + return ExperienceSkill.values.firstWhere((e) => e.value == value); + } catch (_) { + return null; + } + } +} diff --git a/apps/mobile/packages/domain/lib/src/entities/profile/industry.dart b/apps/mobile/packages/domain/lib/src/entities/profile/industry.dart new file mode 100644 index 00000000..1295ff71 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/profile/industry.dart @@ -0,0 +1,21 @@ + +enum Industry { + hospitality('hospitality'), + foodService('food_service'), + warehouse('warehouse'), + events('events'), + retail('retail'), + healthcare('healthcare'), + other('other'); + + final String value; + const Industry(this.value); + + static Industry? fromString(String value) { + try { + return Industry.values.firstWhere((e) => e.value == value); + } catch (_) { + return null; + } + } +} diff --git a/apps/mobile/packages/domain/lib/src/entities/profile/relationship_type.dart b/apps/mobile/packages/domain/lib/src/entities/profile/relationship_type.dart new file mode 100644 index 00000000..2d4dde1a --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/profile/relationship_type.dart @@ -0,0 +1,6 @@ +enum RelationshipType { + family, + spouse, + friend, + other, +} diff --git a/apps/mobile/packages/domain/lib/src/entities/profile/tax_form.dart b/apps/mobile/packages/domain/lib/src/entities/profile/tax_form.dart new file mode 100644 index 00000000..096380c5 --- /dev/null +++ b/apps/mobile/packages/domain/lib/src/entities/profile/tax_form.dart @@ -0,0 +1,45 @@ +import 'package:equatable/equatable.dart'; + +enum TaxFormType { i9, w4 } + +enum TaxFormStatus { notStarted, inProgress, submitted, approved, rejected } + +class TaxForm extends Equatable { + final String id; + final TaxFormType type; + final String title; + final String? subtitle; + final String? description; + final TaxFormStatus status; + final String? staffId; + final Map? formData; + final DateTime? createdAt; + final DateTime? updatedAt; + + const TaxForm({ + required this.id, + required this.type, + required this.title, + this.subtitle, + this.description, + this.status = TaxFormStatus.notStarted, + this.staffId, + this.formData, + this.createdAt, + this.updatedAt, + }); + + @override + List get props => [ + id, + type, + title, + subtitle, + description, + status, + staffId, + formData, + createdAt, + updatedAt, + ]; +} diff --git a/apps/mobile/packages/domain/lib/src/entities/users/staff.dart b/apps/mobile/packages/domain/lib/src/entities/users/staff.dart index f3bc2bf0..4a6eca3b 100644 --- a/apps/mobile/packages/domain/lib/src/entities/users/staff.dart +++ b/apps/mobile/packages/domain/lib/src/entities/users/staff.dart @@ -29,17 +29,22 @@ enum StaffStatus { /// Contains all personal and professional details of a staff member. /// Linked to a [User] via [authProviderId]. class Staff extends Equatable { - const Staff({ required this.id, required this.authProviderId, required this.name, required this.email, this.phone, + this.avatar, required this.status, this.address, - this.avatar, - this.livePhoto, + this.totalShifts, + this.averageRating, + this.onTimeRate, + this.noShowCount, + this.cancellationCount, + this.reliabilityScore, + this.preferredLocations, }); /// Unique identifier for the staff profile. final String id; @@ -56,17 +61,37 @@ class Staff extends Equatable { /// Contact phone number. final String? phone; + /// Profile picture URL. + final String? avatar; + /// Current workflow status of the staff member. final StaffStatus status; - /// Physical address string. + /// The user's physical address. + /// + /// Can be used for location-based job matching. final String? address; - /// URL to the avatar image. - final String? avatar; + /// The total number of shifts completed. + final int? totalShifts; - /// URL to a verified live photo for identity verification. - final String? livePhoto; + /// The average rating from businesses. + final double? averageRating; + + /// The percentage of shifts arrived on time. + final int? onTimeRate; + + /// The number of no-shows. + final int? noShowCount; + + /// The number of cancellations within 24h. + final int? cancellationCount; + + /// The reliability score (0-100). + final int? reliabilityScore; + + /// Preferred work locations. + final List? preferredLocations; @override List get props => [ @@ -75,9 +100,15 @@ class Staff extends Equatable { name, email, phone, + avatar, status, address, - avatar, - livePhoto, + totalShifts, + averageRating, + onTimeRate, + noShowCount, + cancellationCount, + reliabilityScore, + preferredLocations, ]; -} \ No newline at end of file +} diff --git a/apps/mobile/packages/features/client/billing/lib/src/billing_module.dart b/apps/mobile/packages/features/client/billing/lib/src/billing_module.dart index a5debe5a..39ab732d 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/billing_module.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/billing_module.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; @@ -10,6 +9,7 @@ import 'domain/usecases/get_pending_invoices.dart'; import 'domain/usecases/get_savings_amount.dart'; import 'domain/usecases/get_spending_breakdown.dart'; import 'presentation/blocs/billing_bloc.dart'; +import 'presentation/pages/billing_page.dart'; /// Modular module for the billing feature. class BillingModule extends Module { @@ -23,6 +23,7 @@ class BillingModule extends Module { i.addSingleton( () => BillingRepositoryImpl( financialRepository: i.get(), + dataConnect: ExampleConnector.instance, ), ); @@ -47,10 +48,6 @@ class BillingModule extends Module { @override void routes(RouteManager r) { - r.child("/", child: (_) => const SizedBox( - child: Center(child: Text('Feature not yet implemented')), - )); - /// TODO: FEATURE_NOT_YET_IMPLEMENTED - // r.child('/', child: (_) => const BillingPage()); + r.child('/', child: (_) => const BillingPage()); } } diff --git a/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart b/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart index ad600730..4006f92c 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart @@ -1,5 +1,7 @@ +import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; import 'package:krow_data_connect/krow_data_connect.dart' as data_connect; import 'package:krow_domain/krow_domain.dart'; +import '../../domain/models/billing_period.dart'; import '../../domain/repositories/billing_repository.dart'; /// Implementation of [BillingRepository] in the Data layer. @@ -16,9 +18,12 @@ class BillingRepositoryImpl implements BillingRepository { /// Requires the [financialRepository] to fetch financial data. BillingRepositoryImpl({ required data_connect.FinancialRepositoryMock financialRepository, - }) : _financialRepository = financialRepository; + required data_connect.ExampleConnector dataConnect, + }) : _financialRepository = financialRepository, + _dataConnect = dataConnect; final data_connect.FinancialRepositoryMock _financialRepository; + final data_connect.ExampleConnector _dataConnect; /// Fetches the current bill amount by aggregating open invoices. @override @@ -39,12 +44,22 @@ class BillingRepositoryImpl implements BillingRepository { /// Fetches the history of paid invoices. @override Future> getInvoiceHistory() async { - final List invoices = await _financialRepository.getInvoices( - 'current_business', - ); - return invoices - .where((Invoice i) => i.status == InvoiceStatus.paid) - .toList(); + final String? businessId = + data_connect.ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + return []; + } + + final fdc.QueryResult result = + await _dataConnect + .listInvoicesByBusinessId( + businessId: businessId, + ) + .limit(10) + .execute(); + + return result.data.invoices.map(_mapInvoice).toList(); } /// Fetches pending invoices (Open or Disputed). @@ -66,15 +81,156 @@ class BillingRepositoryImpl implements BillingRepository { @override Future getSavingsAmount() async { // Simulating savings calculation (e.g., comparing to market rates). - await Future.delayed(const Duration(milliseconds: 500)); - return 320.00; + await Future.delayed(const Duration(milliseconds: 0)); + return 0.0; } /// Fetches the breakdown of spending. @override - Future> getSpendingBreakdown() async { - // Assuming breakdown is based on the current period's invoice items. - // We fetch items for a dummy invoice ID representing the current period. - return _financialRepository.getInvoiceItems('current_period_invoice'); + Future> getSpendingBreakdown(BillingPeriod period) async { + final String? businessId = + data_connect.ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + return []; + } + + final DateTime now = DateTime.now(); + final DateTime start; + final DateTime end; + if (period == BillingPeriod.week) { + final int daysFromMonday = now.weekday - DateTime.monday; + final DateTime monday = DateTime( + now.year, + now.month, + now.day, + ).subtract(Duration(days: daysFromMonday)); + start = DateTime(monday.year, monday.month, monday.day); + end = DateTime(monday.year, monday.month, monday.day + 6, 23, 59, 59, 999); + } else { + start = DateTime(now.year, now.month, 1); + end = DateTime(now.year, now.month + 1, 0, 23, 59, 59, 999); + } + + final fdc.QueryResult< + data_connect.ListShiftRolesByBusinessAndDatesSummaryData, + data_connect.ListShiftRolesByBusinessAndDatesSummaryVariables> result = + await _dataConnect + .listShiftRolesByBusinessAndDatesSummary( + businessId: businessId, + start: _toTimestamp(start), + end: _toTimestamp(end), + ) + .execute(); + + final List + shiftRoles = result.data.shiftRoles; + if (shiftRoles.isEmpty) { + return []; + } + + final Map summary = {}; + for (final data_connect.ListShiftRolesByBusinessAndDatesSummaryShiftRoles role + in shiftRoles) { + final String roleId = role.roleId; + final String roleName = role.role.name; + final double hours = role.hours ?? 0.0; + final double totalValue = role.totalValue ?? 0.0; + final _RoleSummary? existing = summary[roleId]; + if (existing == null) { + summary[roleId] = _RoleSummary( + roleId: roleId, + roleName: roleName, + totalHours: hours, + totalValue: totalValue, + ); + } else { + summary[roleId] = existing.copyWith( + totalHours: existing.totalHours + hours, + totalValue: existing.totalValue + totalValue, + ); + } + } + + return summary.values + .map( + (_RoleSummary item) => InvoiceItem( + id: item.roleId, + invoiceId: item.roleId, + staffId: item.roleName, + workHours: item.totalHours, + rate: item.totalHours > 0 ? item.totalValue / item.totalHours : 0, + amount: item.totalValue, + ), + ) + .toList(); + } + + fdc.Timestamp _toTimestamp(DateTime dateTime) { + final int seconds = dateTime.millisecondsSinceEpoch ~/ 1000; + final int nanoseconds = + (dateTime.millisecondsSinceEpoch % 1000) * 1000000; + return fdc.Timestamp(nanoseconds, seconds); + } + + Invoice _mapInvoice(data_connect.ListInvoicesByBusinessIdInvoices invoice) { + return Invoice( + id: invoice.id, + eventId: invoice.orderId, + businessId: invoice.businessId, + status: _mapInvoiceStatus(invoice.status), + totalAmount: invoice.amount, + workAmount: invoice.amount, + addonsAmount: invoice.otherCharges ?? 0, + invoiceNumber: invoice.invoiceNumber, + issueDate: invoice.issueDate.toDateTime(), + ); + } + + InvoiceStatus _mapInvoiceStatus( + data_connect.EnumValue status, + ) { + if (status is data_connect.Known) { + switch (status.value) { + case data_connect.InvoiceStatus.PAID: + return InvoiceStatus.paid; + case data_connect.InvoiceStatus.OVERDUE: + return InvoiceStatus.overdue; + case data_connect.InvoiceStatus.DISPUTED: + return InvoiceStatus.disputed; + case data_connect.InvoiceStatus.APPROVED: + return InvoiceStatus.verified; + case data_connect.InvoiceStatus.PENDING_REVIEW: + case data_connect.InvoiceStatus.PENDING: + case data_connect.InvoiceStatus.DRAFT: + return InvoiceStatus.open; + } + } + return InvoiceStatus.open; + } +} + +class _RoleSummary { + const _RoleSummary({ + required this.roleId, + required this.roleName, + required this.totalHours, + required this.totalValue, + }); + + final String roleId; + final String roleName; + final double totalHours; + final double totalValue; + + _RoleSummary copyWith({ + double? totalHours, + double? totalValue, + }) { + return _RoleSummary( + roleId: roleId, + roleName: roleName, + totalHours: totalHours ?? this.totalHours, + totalValue: totalValue ?? this.totalValue, + ); } } diff --git a/apps/mobile/packages/features/client/billing/lib/src/domain/models/billing_period.dart b/apps/mobile/packages/features/client/billing/lib/src/domain/models/billing_period.dart new file mode 100644 index 00000000..a3ea057b --- /dev/null +++ b/apps/mobile/packages/features/client/billing/lib/src/domain/models/billing_period.dart @@ -0,0 +1,4 @@ +enum BillingPeriod { + week, + month, +} diff --git a/apps/mobile/packages/features/client/billing/lib/src/domain/repositories/billing_repository.dart b/apps/mobile/packages/features/client/billing/lib/src/domain/repositories/billing_repository.dart index 298f3967..4a9300d3 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/domain/repositories/billing_repository.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/domain/repositories/billing_repository.dart @@ -1,4 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; +import '../models/billing_period.dart'; /// Repository interface for billing related operations. /// @@ -19,5 +20,5 @@ abstract class BillingRepository { Future getSavingsAmount(); /// Fetches invoice items for spending breakdown analysis. - Future> getSpendingBreakdown(); + Future> getSpendingBreakdown(BillingPeriod period); } diff --git a/apps/mobile/packages/features/client/billing/lib/src/domain/usecases/get_spending_breakdown.dart b/apps/mobile/packages/features/client/billing/lib/src/domain/usecases/get_spending_breakdown.dart index 5c2240ac..09193e70 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/domain/usecases/get_spending_breakdown.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/domain/usecases/get_spending_breakdown.dart @@ -1,17 +1,20 @@ import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; +import '../models/billing_period.dart'; import '../repositories/billing_repository.dart'; /// Use case for fetching the spending breakdown items. /// /// This use case encapsulates the logic for retrieving the spending breakdown by category or item. /// It delegates the data retrieval to the [BillingRepository]. -class GetSpendingBreakdownUseCase extends NoInputUseCase> { +class GetSpendingBreakdownUseCase + extends UseCase> { /// Creates a [GetSpendingBreakdownUseCase]. GetSpendingBreakdownUseCase(this._repository); final BillingRepository _repository; @override - Future> call() => _repository.getSpendingBreakdown(); + Future> call(BillingPeriod period) => + _repository.getSpendingBreakdown(period); } diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_bloc.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_bloc.dart index e9553796..dc72ab2f 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_bloc.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_bloc.dart @@ -1,5 +1,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:krow_domain/krow_domain.dart'; +import '../../domain/models/billing_period.dart'; import '../../domain/usecases/get_current_bill_amount.dart'; import '../../domain/usecases/get_invoice_history.dart'; import '../../domain/usecases/get_pending_invoices.dart'; @@ -26,6 +27,7 @@ class BillingBloc extends Bloc { _getSpendingBreakdown = getSpendingBreakdown, super(const BillingState()) { on(_onLoadStarted); + on(_onPeriodChanged); } final GetCurrentBillAmountUseCase _getCurrentBillAmount; @@ -45,7 +47,7 @@ class BillingBloc extends Bloc { _getSavingsAmount.call(), _getPendingInvoices.call(), _getInvoiceHistory.call(), - _getSpendingBreakdown.call(), + _getSpendingBreakdown.call(state.period), ]); final double currentBill = results[0] as double; @@ -62,11 +64,15 @@ class BillingBloc extends Bloc { .map(_mapInvoiceToUiModel) .toList(); final List uiSpendingBreakdown = _mapSpendingItemsToUiModel(spendingItems); + final double periodTotal = uiSpendingBreakdown.fold( + 0.0, + (double sum, SpendingBreakdownItem item) => sum + item.amount, + ); emit( state.copyWith( status: BillingStatus.success, - currentBill: currentBill, + currentBill: periodTotal, savings: savings, pendingInvoices: uiPendingInvoices, invoiceHistory: uiInvoiceHistory, @@ -83,37 +89,66 @@ class BillingBloc extends Bloc { } } + Future _onPeriodChanged( + BillingPeriodChanged event, + Emitter emit, + ) async { + try { + final List spendingItems = + await _getSpendingBreakdown.call(event.period); + final List uiSpendingBreakdown = + _mapSpendingItemsToUiModel(spendingItems); + final double periodTotal = uiSpendingBreakdown.fold( + 0.0, + (double sum, SpendingBreakdownItem item) => sum + item.amount, + ); + emit( + state.copyWith( + period: event.period, + spendingBreakdown: uiSpendingBreakdown, + currentBill: periodTotal, + ), + ); + } catch (e) { + emit( + state.copyWith( + status: BillingStatus.failure, + errorMessage: e.toString(), + ), + ); + } + } + BillingInvoice _mapInvoiceToUiModel(Invoice invoice) { // In a real app, fetches related Event/Business names via ID. // For now, mapping available fields and hardcoding missing UI placeholders. // Preserving "Existing Behavior" means we show something. + final String dateLabel = invoice.issueDate == null + ? '2024-01-24' + : invoice.issueDate!.toIso8601String().split('T').first; + final String titleLabel = invoice.invoiceNumber ?? invoice.id; return BillingInvoice( - id: invoice.id, + id: titleLabel, title: 'Invoice #${invoice.id}', // Placeholder as Invoice lacks title locationAddress: 'Location for ${invoice.eventId}', // Placeholder for address clientName: 'Client ${invoice.businessId}', // Placeholder for client name - date: '2024-01-24', // Placeholder date + date: dateLabel, totalAmount: invoice.totalAmount, workersCount: 5, // Placeholder count totalHours: invoice.workAmount / 25.0, // Estimating hours from amount - status: invoice.status.name, + status: invoice.status.name.toUpperCase(), ); } List _mapSpendingItemsToUiModel( List items, ) { - // Aggregating items by some logic. - // Since InvoiceItem doesn't have category, we mock it based on staffId or similar. - final Map aggregation = {}; + final Map aggregation = + {}; for (final InvoiceItem item in items) { - // Mocking category derivation - final String category = item.staffId.hashCode % 2 == 0 - ? 'Server Staff' - : 'Bar Staff'; - + final String category = item.staffId; final SpendingBreakdownItem? existing = aggregation[category]; if (existing != null) { aggregation[category] = SpendingBreakdownItem( diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_event.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_event.dart index 661ecd9e..f27060dc 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_event.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_event.dart @@ -1,4 +1,5 @@ import 'package:equatable/equatable.dart'; +import '../../domain/models/billing_period.dart'; /// Base class for all billing events. abstract class BillingEvent extends Equatable { @@ -14,3 +15,12 @@ class BillingLoadStarted extends BillingEvent { /// Creates a [BillingLoadStarted] event. const BillingLoadStarted(); } + +class BillingPeriodChanged extends BillingEvent { + const BillingPeriodChanged(this.period); + + final BillingPeriod period; + + @override + List get props => [period]; +} diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_state.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_state.dart index c2da7008..d983728d 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_state.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/blocs/billing_state.dart @@ -1,4 +1,5 @@ import 'package:equatable/equatable.dart'; +import '../../domain/models/billing_period.dart'; import '../models/billing_invoice_model.dart'; import '../models/spending_breakdown_model.dart'; @@ -27,6 +28,7 @@ class BillingState extends Equatable { this.pendingInvoices = const [], this.invoiceHistory = const [], this.spendingBreakdown = const [], + this.period = BillingPeriod.week, this.errorMessage, }); @@ -48,6 +50,9 @@ class BillingState extends Equatable { /// Breakdown of spending by category. final List spendingBreakdown; + /// Selected period for the breakdown. + final BillingPeriod period; + /// Error message if loading failed. final String? errorMessage; @@ -59,6 +64,7 @@ class BillingState extends Equatable { List? pendingInvoices, List? invoiceHistory, List? spendingBreakdown, + BillingPeriod? period, String? errorMessage, }) { return BillingState( @@ -68,6 +74,7 @@ class BillingState extends Equatable { pendingInvoices: pendingInvoices ?? this.pendingInvoices, invoiceHistory: invoiceHistory ?? this.invoiceHistory, spendingBreakdown: spendingBreakdown ?? this.spendingBreakdown, + period: period ?? this.period, errorMessage: errorMessage ?? this.errorMessage, ); } @@ -80,6 +87,7 @@ class BillingState extends Equatable { pendingInvoices, invoiceHistory, spendingBreakdown, + period, errorMessage, ]; } diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/invoice_history_section.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/invoice_history_section.dart index 19f97c47..d42bda3f 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/invoice_history_section.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/invoice_history_section.dart @@ -22,22 +22,7 @@ class InvoiceHistorySection extends StatelessWidget { t.client_billing.invoice_history, style: UiTypography.title2b.textPrimary, ), - GestureDetector( - onTap: () {}, - child: Row( - children: [ - Text( - t.client_billing.view_all, - style: UiTypography.footnote2b.textPrimary, - ), - const Icon( - UiIcons.chevronRight, - size: 16, - color: UiColors.primary, - ), - ], - ), - ), + const SizedBox.shrink(), ], ), const SizedBox(height: UiConstants.space2), @@ -114,32 +99,34 @@ class _InvoiceItem extends StatelessWidget { '\$${invoice.totalAmount.toStringAsFixed(2)}', style: UiTypography.body2b.textPrimary, ), - const _PaidBadge(), + _StatusBadge(status: invoice.status), ], ), - const SizedBox(width: UiConstants.space2), - const Icon(UiIcons.download, size: 16, color: UiColors.iconSecondary), + const SizedBox.shrink(), ], ), ); } } -class _PaidBadge extends StatelessWidget { - const _PaidBadge(); +class _StatusBadge extends StatelessWidget { + const _StatusBadge({required this.status}); + + final String status; @override Widget build(BuildContext context) { + final bool isPaid = status.toUpperCase() == 'PAID'; return Container( padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), decoration: BoxDecoration( - color: UiColors.tagSuccess, + color: isPaid ? UiColors.tagSuccess : UiColors.tagPending, borderRadius: BorderRadius.circular(4), ), child: Text( - t.client_billing.paid_badge, + isPaid ? t.client_billing.paid_badge : t.client_billing.pending_badge, style: UiTypography.titleUppercase4b.copyWith( - color: UiColors.iconSuccess, + color: isPaid ? UiColors.iconSuccess : UiColors.textWarning, ), ), ); diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/payment_method_card.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/payment_method_card.dart index 531dc4cf..6c846212 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/payment_method_card.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/payment_method_card.dart @@ -1,111 +1,160 @@ import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; +import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; /// Card showing the current payment method. -class PaymentMethodCard extends StatelessWidget { +class PaymentMethodCard extends StatefulWidget { /// Creates a [PaymentMethodCard]. const PaymentMethodCard({super.key}); + @override + State createState() => _PaymentMethodCardState(); +} + +class _PaymentMethodCardState extends State { + late final Future _accountsFuture = + _loadAccounts(); + + Future _loadAccounts() async { + final String? businessId = + dc.ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + return null; + } + + final fdc.QueryResult result = + await dc.ExampleConnector.instance + .getAccountsByOwnerId(ownerId: businessId) + .execute(); + return result.data; + } + @override Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.all(UiConstants.space4), - decoration: BoxDecoration( - color: UiColors.white, - borderRadius: UiConstants.radiusLg, - border: Border.all(color: UiColors.border), - boxShadow: [ - BoxShadow( - color: UiColors.black.withValues(alpha: 0.04), - blurRadius: 8, - offset: const Offset(0, 2), + return FutureBuilder( + future: _accountsFuture, + builder: (BuildContext context, + AsyncSnapshot snapshot) { + final List accounts = + snapshot.data?.accounts ?? + []; + final dc.GetAccountsByOwnerIdAccounts? account = + accounts.isNotEmpty ? accounts.first : null; + final String bankLabel = + account?.bank.isNotEmpty == true ? account!.bank : '----'; + final String last4 = + account?.last4.isNotEmpty == true ? account!.last4 : '----'; + final bool isPrimary = account?.isPrimary ?? false; + final String expiryLabel = _formatExpiry(account?.expiryTime); + + return Container( + padding: const EdgeInsets.all(UiConstants.space4), + decoration: BoxDecoration( + color: UiColors.white, + borderRadius: UiConstants.radiusLg, + border: Border.all(color: UiColors.border), + boxShadow: [ + BoxShadow( + color: UiColors.black.withValues(alpha: 0.04), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], ), - ], - ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + child: Column( children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ Text( t.client_billing.payment_method, style: UiTypography.title2b.textPrimary, ), - GestureDetector( - onTap: () {}, - child: Row( - children: [ - const Icon(UiIcons.add, size: 14, color: UiColors.primary), - const SizedBox(width: 4), - Text( - t.client_billing.add_payment, - style: UiTypography.footnote2b.textPrimary, - ), - ], - ), - ), + const SizedBox.shrink(), ], ), - const SizedBox(height: UiConstants.space3), - Container( - padding: const EdgeInsets.all(UiConstants.space3), - decoration: BoxDecoration( - color: UiColors.bgSecondary, - borderRadius: UiConstants.radiusMd, - ), - child: Row( - children: [ + if (account != null) ...[ + const SizedBox(height: UiConstants.space3), Container( - width: 40, - height: 28, + padding: const EdgeInsets.all(UiConstants.space3), decoration: BoxDecoration( - color: UiColors.primary, - borderRadius: BorderRadius.circular(4), + color: UiColors.bgSecondary, + borderRadius: UiConstants.radiusMd, ), - child: const Center( - child: Text( - 'VISA', - style: TextStyle( - color: UiColors.white, - fontSize: 10, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - const SizedBox(width: UiConstants.space3), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + child: Row( children: [ - Text('•••• 4242', style: UiTypography.body2b.textPrimary), - Text( - t.client_billing.expires(date: '12/25'), - style: UiTypography.footnote2r.textSecondary, + Container( + width: 40, + height: 28, + decoration: BoxDecoration( + color: UiColors.primary, + borderRadius: BorderRadius.circular(4), + ), + child: Center( + child: Text( + bankLabel, + style: const TextStyle( + color: UiColors.white, + fontSize: 10, + fontWeight: FontWeight.bold, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), ), + const SizedBox(width: UiConstants.space3), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '•••• $last4', + style: UiTypography.body2b.textPrimary, + ), + Text( + t.client_billing.expires(date: expiryLabel), + style: UiTypography.footnote2r.textSecondary, + ), + ], + ), + ), + if (isPrimary) + Container( + padding: const EdgeInsets.symmetric( + horizontal: 6, + vertical: 2, + ), + decoration: BoxDecoration( + color: UiColors.accent, + borderRadius: BorderRadius.circular(4), + ), + child: Text( + t.client_billing.default_badge, + style: UiTypography.titleUppercase4b.textPrimary, + ), + ), ], ), ), - Container( - padding: const EdgeInsets.symmetric( - horizontal: 6, - vertical: 2, - ), - decoration: BoxDecoration( - color: UiColors.accent, - borderRadius: BorderRadius.circular(4), - ), - child: Text( - t.client_billing.default_badge, - style: UiTypography.titleUppercase4b.textPrimary, - ), - ), ], - ), + ], ), - ], - ), + ); + }, ); } + + String _formatExpiry(fdc.Timestamp? expiryTime) { + if (expiryTime == null) { + return 'N/A'; + } + final DateTime date = expiryTime.toDateTime(); + final String month = date.month.toString().padLeft(2, '0'); + final String year = (date.year % 100).toString().padLeft(2, '0'); + return '$month/$year'; + } } diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/savings_card.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/savings_card.dart index 18ea1dfd..cc455c67 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/savings_card.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/savings_card.dart @@ -50,25 +50,7 @@ class SavingsCard extends StatelessWidget { style: UiTypography.footnote2r.textSecondary, ), const SizedBox(height: UiConstants.space2), - SizedBox( - height: 28, - child: ElevatedButton( - onPressed: () {}, - style: ElevatedButton.styleFrom( - backgroundColor: UiColors.primary, - foregroundColor: UiColors.white, - elevation: 0, - padding: const EdgeInsets.symmetric( - horizontal: UiConstants.space3, - ), - shape: RoundedRectangleBorder( - borderRadius: UiConstants.radiusMd, - ), - textStyle: UiTypography.footnote2b, - ), - child: Text(t.client_billing.view_details), - ), - ), + const SizedBox.shrink(), ], ), ), diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/spending_breakdown_card.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/spending_breakdown_card.dart index 8e7e268d..e409c04e 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/spending_breakdown_card.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/spending_breakdown_card.dart @@ -2,8 +2,10 @@ import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import '../../domain/models/billing_period.dart'; import '../blocs/billing_bloc.dart'; import '../blocs/billing_state.dart'; +import '../blocs/billing_event.dart'; import '../models/spending_breakdown_model.dart'; /// Card showing the spending breakdown for the current period. @@ -92,6 +94,13 @@ class _SpendingBreakdownCardState extends State indicatorSize: TabBarIndicatorSize.tab, labelPadding: const EdgeInsets.symmetric(horizontal: 12), dividerColor: Colors.transparent, + onTap: (int index) { + final BillingPeriod period = + index == 0 ? BillingPeriod.week : BillingPeriod.month; + context.read().add( + BillingPeriodChanged(period), + ); + }, tabs: [ Tab(text: t.client_billing.week), Tab(text: t.client_billing.month), diff --git a/apps/mobile/packages/features/client/billing/pubspec.yaml b/apps/mobile/packages/features/client/billing/pubspec.yaml index 7b8ad3dc..d8165fe9 100644 --- a/apps/mobile/packages/features/client/billing/pubspec.yaml +++ b/apps/mobile/packages/features/client/billing/pubspec.yaml @@ -25,12 +25,13 @@ dependencies: path: ../../../domain krow_core: path: ../../../core + krow_data_connect: + path: ../../../data_connect # UI lucide_icons: ^0.257.0 - intl: ^0.20.1 - - krow_data_connect: any + intl: ^0.20.0 + firebase_data_connect: ^0.2.2+1 dev_dependencies: flutter_test: sdk: flutter diff --git a/apps/mobile/packages/features/client/client_coverage/lib/src/coverage_module.dart b/apps/mobile/packages/features/client/client_coverage/lib/src/coverage_module.dart index 4c2f1397..19e3bd5a 100644 --- a/apps/mobile/packages/features/client/client_coverage/lib/src/coverage_module.dart +++ b/apps/mobile/packages/features/client/client_coverage/lib/src/coverage_module.dart @@ -1,17 +1,20 @@ -import 'package:flutter/material.dart'; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_data_connect/krow_data_connect.dart'; import 'data/repositories_impl/coverage_repository_impl.dart'; import 'domain/repositories/coverage_repository.dart'; import 'domain/usecases/get_coverage_stats_usecase.dart'; import 'domain/usecases/get_shifts_for_date_usecase.dart'; import 'presentation/blocs/coverage_bloc.dart'; +import 'presentation/pages/coverage_page.dart'; /// Modular module for the coverage feature. class CoverageModule extends Module { @override void binds(Injector i) { // Repositories - i.addSingleton(CoverageRepositoryImpl.new); + i.addSingleton( + () => CoverageRepositoryImpl(dataConnect: ExampleConnector.instance), + ); // Use Cases i.addSingleton(GetShiftsForDateUseCase.new); @@ -28,10 +31,6 @@ class CoverageModule extends Module { @override void routes(RouteManager r) { - r.child("/", child: (_) => const SizedBox( - child: Center(child: Text('Feature not yet implemented')), - )); - /// TODO: FEATURE_NOT_YET_IMPLEMENTED - // r.child('/', child: (_) => const CoveragePage()); + r.child('/', child: (_) => const CoveragePage()); } } diff --git a/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart b/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart index fdee9b3f..fa29d536 100644 --- a/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart +++ b/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart @@ -1,3 +1,5 @@ +import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; import '../../domain/repositories/coverage_repository.dart'; import '../../domain/ui_entities/coverage_entities.dart'; @@ -13,82 +15,58 @@ import '../../domain/ui_entities/coverage_entities.dart'; /// - Returns domain entities from `domain/ui_entities`. class CoverageRepositoryImpl implements CoverageRepository { /// Creates a [CoverageRepositoryImpl]. - CoverageRepositoryImpl(); + CoverageRepositoryImpl({required dc.ExampleConnector dataConnect}) + : _dataConnect = dataConnect; + + final dc.ExampleConnector _dataConnect; /// Fetches shifts for a specific date. @override Future> getShiftsForDate({required DateTime date}) async { - // Simulate network delay - await Future.delayed(const Duration(milliseconds: 500)); - - // Mock data - in production, this would come from data_connect - final DateTime today = DateTime.now(); - final bool isToday = date.year == today.year && - date.month == today.month && - date.day == today.day; - - if (!isToday) { - // Return empty list for non-today dates + final String? businessId = + dc.ClientSessionStore.instance.session?.business?.id; + print('Coverage: now=${DateTime.now().toIso8601String()}'); + if (businessId == null || businessId.isEmpty) { + print('Coverage: missing businessId for date=${date.toIso8601String()}'); return []; } - return [ - CoverageShift( - id: '1', - title: 'Banquet Server', - location: 'Grand Ballroom', - startTime: '16:00', - workersNeeded: 10, - date: date, - workers: const [ - CoverageWorker( - name: 'Sarah Wilson', - status: 'confirmed', - checkInTime: '15:55', - ), - CoverageWorker( - name: 'Mike Ross', - status: 'confirmed', - checkInTime: '16:00', - ), - CoverageWorker( - name: 'Jane Doe', - status: 'confirmed', - checkInTime: null, - ), - CoverageWorker( - name: 'John Smith', - status: 'late', - checkInTime: null, - ), - ], - ), - CoverageShift( - id: '2', - title: 'Bartender', - location: 'Lobby Bar', - startTime: '17:00', - workersNeeded: 4, - date: date, - workers: const [ - CoverageWorker( - name: 'Emily Blunt', - status: 'confirmed', - checkInTime: '16:45', - ), - CoverageWorker( - name: 'Chris Evans', - status: 'confirmed', - checkInTime: '16:50', - ), - CoverageWorker( - name: 'Tom Holland', - status: 'confirmed', - checkInTime: null, - ), - ], - ), - ]; + final DateTime start = DateTime(date.year, date.month, date.day); + final DateTime end = + DateTime(date.year, date.month, date.day, 23, 59, 59, 999); + print( + 'Coverage: request businessId=$businessId dayStart=${start.toIso8601String()} dayEnd=${end.toIso8601String()}', + ); + final fdc.QueryResult< + dc.ListShiftRolesByBusinessAndDateRangeData, + dc.ListShiftRolesByBusinessAndDateRangeVariables> shiftRolesResult = + await _dataConnect + .listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: _toTimestamp(start), + end: _toTimestamp(end), + ) + .execute(); + + final fdc.QueryResult< + dc.ListStaffsApplicationsByBusinessForDayData, + dc.ListStaffsApplicationsByBusinessForDayVariables> applicationsResult = + await _dataConnect + .listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: _toTimestamp(start), + dayEnd: _toTimestamp(end), + ) + .execute(); + print( + 'Coverage: ${date.toIso8601String()} staffsApplications=${applicationsResult.data.applications.length}', + ); + + return _mapCoverageShifts( + shiftRolesResult.data.shiftRoles, + applicationsResult.data.applications, + date, + ); } /// Fetches coverage statistics for a specific date. @@ -120,4 +98,128 @@ class CoverageRepositoryImpl implements CoverageRepository { late: late, ); } + + fdc.Timestamp _toTimestamp(DateTime dateTime) { + final int seconds = dateTime.millisecondsSinceEpoch ~/ 1000; + final int nanoseconds = + (dateTime.millisecondsSinceEpoch % 1000) * 1000000; + return fdc.Timestamp(nanoseconds, seconds); + } + + List _mapCoverageShifts( + List shiftRoles, + List applications, + DateTime date, + ) { + if (shiftRoles.isEmpty && applications.isEmpty) { + return []; + } + + final Map groups = {}; + for (final dc.ListShiftRolesByBusinessAndDateRangeShiftRoles shiftRole + in shiftRoles) { + final String key = '${shiftRole.shiftId}:${shiftRole.roleId}'; + groups[key] = _CoverageGroup( + shiftId: shiftRole.shiftId, + roleId: shiftRole.roleId, + title: shiftRole.role.name, + location: shiftRole.shift.location ?? '', + startTime: _formatTime(shiftRole.startTime) ?? '00:00', + workersNeeded: shiftRole.count, + date: shiftRole.shift.date?.toDateTime() ?? date, + workers: [], + ); + } + + for (final dc.ListStaffsApplicationsByBusinessForDayApplications app + in applications) { + final String key = '${app.shiftId}:${app.roleId}'; + final _CoverageGroup existing = groups[key] ?? + _CoverageGroup( + shiftId: app.shiftId, + roleId: app.roleId, + title: app.shiftRole.role.name, + location: app.shiftRole.shift.location ?? '', + startTime: '00:00', + workersNeeded: 0, + date: date, + workers: [], + ); + + existing.workers.add( + CoverageWorker( + name: app.staff.fullName, + status: _mapWorkerStatus(app.status), + checkInTime: _formatTime(app.checkInTime), + ), + ); + groups[key] = existing; + } + + return groups.values + .map( + (_CoverageGroup group) => CoverageShift( + id: '${group.shiftId}:${group.roleId}', + title: group.title, + location: group.location, + startTime: group.startTime, + workersNeeded: group.workersNeeded, + date: group.date, + workers: group.workers, + ), + ) + .toList(); + } + + String _mapWorkerStatus( + dc.EnumValue status, + ) { + if (status is dc.Known) { + switch (status.value) { + case dc.ApplicationStatus.LATE: + return 'late'; + case dc.ApplicationStatus.CHECKED_IN: + case dc.ApplicationStatus.CHECKED_OUT: + case dc.ApplicationStatus.ACCEPTED: + case dc.ApplicationStatus.CONFIRMED: + case dc.ApplicationStatus.PENDING: + case dc.ApplicationStatus.REJECTED: + case dc.ApplicationStatus.NO_SHOW: + return 'confirmed'; + } + } + return 'confirmed'; + } + + String? _formatTime(fdc.Timestamp? timestamp) { + if (timestamp == null) { + return null; + } + final DateTime date = timestamp.toDateTime(); + final String hour = date.hour.toString().padLeft(2, '0'); + final String minute = date.minute.toString().padLeft(2, '0'); + return '$hour:$minute'; + } +} + +class _CoverageGroup { + _CoverageGroup({ + required this.shiftId, + required this.roleId, + required this.title, + required this.location, + required this.startTime, + required this.workersNeeded, + required this.date, + required this.workers, + }); + + final String shiftId; + final String roleId; + final String title; + final String location; + final String startTime; + final int workersNeeded; + final DateTime date; + final List workers; } diff --git a/apps/mobile/packages/features/client/client_coverage/lib/src/presentation/widgets/coverage_header.dart b/apps/mobile/packages/features/client/client_coverage/lib/src/presentation/widgets/coverage_header.dart index f1f1f5cb..6c9513bb 100644 --- a/apps/mobile/packages/features/client/client_coverage/lib/src/presentation/widgets/coverage_header.dart +++ b/apps/mobile/packages/features/client/client_coverage/lib/src/presentation/widgets/coverage_header.dart @@ -53,7 +53,7 @@ class CoverageHeader extends StatelessWidget { gradient: LinearGradient( colors: [ UiColors.primary, - UiColors.accent, + UiColors.primary, ], begin: Alignment.topLeft, end: Alignment.bottomRight, diff --git a/apps/mobile/packages/features/client/create_order/lib/src/create_order_module.dart b/apps/mobile/packages/features/client/create_order/lib/src/create_order_module.dart index f539b1bf..f317863d 100644 --- a/apps/mobile/packages/features/client/create_order/lib/src/create_order_module.dart +++ b/apps/mobile/packages/features/client/create_order/lib/src/create_order_module.dart @@ -41,7 +41,7 @@ class ClientCreateOrderModule extends Module { i.addLazySingleton(CreateRapidOrderUseCase.new); // BLoCs - i.addSingleton(ClientCreateOrderBloc.new); + i.add(ClientCreateOrderBloc.new); i.add(RapidOrderBloc.new); i.add( () => OneTimeOrderBloc( diff --git a/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart b/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart index 0239e73a..19b08b29 100644 --- a/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart +++ b/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart @@ -17,8 +17,95 @@ class HomeRepositoryImpl implements HomeRepositoryInterface { HomeRepositoryImpl(this._mock, this._dataConnect); @override - Future getDashboardData() { - return _mock.getDashboardData(); + Future getDashboardData() async { + final String? businessId = ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + return const HomeDashboardData( + weeklySpending: 0, + next7DaysSpending: 0, + weeklyShifts: 0, + next7DaysScheduled: 0, + totalNeeded: 0, + totalFilled: 0, + ); + } + + final DateTime now = DateTime.now(); + final int daysFromMonday = now.weekday - DateTime.monday; + final DateTime monday = + DateTime(now.year, now.month, now.day).subtract(Duration(days: daysFromMonday)); + final DateTime weekRangeStart = DateTime(monday.year, monday.month, monday.day); + final DateTime weekRangeEnd = + DateTime(monday.year, monday.month, monday.day + 13, 23, 59, 59, 999); + final fdc.QueryResult< + GetCompletedShiftsByBusinessIdData, + GetCompletedShiftsByBusinessIdVariables> completedResult = + await _dataConnect + .getCompletedShiftsByBusinessId( + businessId: businessId, + dateFrom: _toTimestamp(weekRangeStart), + dateTo: _toTimestamp(weekRangeEnd), + ) + .execute(); + print( + 'Home spending: businessId=$businessId dateFrom=${weekRangeStart.toIso8601String()} ' + 'dateTo=${weekRangeEnd.toIso8601String()} shifts=${completedResult.data.shifts.length}', + ); + + double weeklySpending = 0.0; + double next7DaysSpending = 0.0; + int weeklyShifts = 0; + int next7DaysScheduled = 0; + for (final GetCompletedShiftsByBusinessIdShifts shift + in completedResult.data.shifts) { + final DateTime? shiftDate = shift.date?.toDateTime(); + if (shiftDate == null) { + continue; + } + final int offset = shiftDate.difference(weekRangeStart).inDays; + if (offset < 0 || offset > 13) { + continue; + } + final double cost = shift.cost ?? 0.0; + if (offset <= 6) { + weeklySpending += cost; + weeklyShifts += 1; + } else { + next7DaysSpending += cost; + next7DaysScheduled += 1; + } + } + + final DateTime start = DateTime(now.year, now.month, now.day); + final DateTime end = DateTime(now.year, now.month, now.day, 23, 59, 59, 999); + + final fdc.QueryResult< + ListShiftRolesByBusinessAndDateRangeData, + ListShiftRolesByBusinessAndDateRangeVariables> result = + await _dataConnect + .listShiftRolesByBusinessAndDateRange( + businessId: businessId, + start: _toTimestamp(start), + end: _toTimestamp(end), + ) + .execute(); + + int totalNeeded = 0; + int totalFilled = 0; + for (final ListShiftRolesByBusinessAndDateRangeShiftRoles shiftRole + in result.data.shiftRoles) { + totalNeeded += shiftRole.count; + totalFilled += shiftRole.assigned ?? 0; + } + + return HomeDashboardData( + weeklySpending: weeklySpending, + next7DaysSpending: next7DaysSpending, + weeklyShifts: weeklyShifts, + next7DaysScheduled: next7DaysScheduled, + totalNeeded: totalNeeded, + totalFilled: totalFilled, + ); } @override diff --git a/apps/mobile/packages/features/client/home/lib/src/presentation/blocs/client_home_state.dart b/apps/mobile/packages/features/client/home/lib/src/presentation/blocs/client_home_state.dart index cee3337e..f92cc85d 100644 --- a/apps/mobile/packages/features/client/home/lib/src/presentation/blocs/client_home_state.dart +++ b/apps/mobile/packages/features/client/home/lib/src/presentation/blocs/client_home_state.dart @@ -21,10 +21,16 @@ class ClientHomeState extends Equatable { this.widgetOrder = const [ 'actions', 'reorder', + 'coverage', + 'spending', + 'liveActivity', ], this.widgetVisibility = const { 'actions': true, 'reorder': true, + 'coverage': true, + 'spending': true, + 'liveActivity': true, }, this.isEditMode = false, this.errorMessage, diff --git a/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/dashboard_widget_builder.dart b/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/dashboard_widget_builder.dart index d5d13ec8..83a333d7 100644 --- a/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/dashboard_widget_builder.dart +++ b/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/dashboard_widget_builder.dart @@ -94,7 +94,9 @@ class DashboardWidgetBuilder extends StatelessWidget { : 0, ); case 'liveActivity': - return LiveActivityWidget(onViewAllPressed: () {}); + return LiveActivityWidget( + onViewAllPressed: () => Modular.to.navigate('/client-main/coverage/'), + ); default: return const SizedBox.shrink(); } diff --git a/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/live_activity_widget.dart b/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/live_activity_widget.dart index 47bbcfb9..1c91a655 100644 --- a/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/live_activity_widget.dart +++ b/apps/mobile/packages/features/client/home/lib/src/presentation/widgets/live_activity_widget.dart @@ -1,44 +1,107 @@ import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; +import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; import 'coverage_dashboard.dart'; /// A widget that displays live activity information. -class LiveActivityWidget extends StatelessWidget { +class LiveActivityWidget extends StatefulWidget { /// Callback when "View all" is pressed. final VoidCallback onViewAllPressed; /// Creates a [LiveActivityWidget]. const LiveActivityWidget({super.key, required this.onViewAllPressed}); + @override + State createState() => _LiveActivityWidgetState(); +} + +class _LiveActivityWidgetState extends State { + late final Future<_LiveActivityData> _liveActivityFuture = + _loadLiveActivity(); + + Future<_LiveActivityData> _loadLiveActivity() async { + final String? businessId = + dc.ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + return _LiveActivityData.empty(); + } + + final DateTime now = DateTime.now(); + final DateTime start = DateTime(now.year, now.month, now.day); + final DateTime end = DateTime(now.year, now.month, now.day, 23, 59, 59, 999); + final fdc.QueryResult result = + await dc.ExampleConnector.instance + .listStaffsApplicationsByBusinessForDay( + businessId: businessId, + dayStart: _toTimestamp(start), + dayEnd: _toTimestamp(end), + ) + .execute(); + + if (result.data.applications.isEmpty) { + return _LiveActivityData.empty(); + } + + final Map aggregates = + {}; + for (final dc.ListStaffsApplicationsByBusinessForDayApplications app + in result.data.applications) { + final String key = '${app.shiftId}:${app.roleId}'; + final _LiveShiftAggregate aggregate = aggregates[key] ?? + _LiveShiftAggregate( + workersNeeded: app.shiftRole.count, + assigned: app.shiftRole.assigned ?? 0, + cost: app.shiftRole.shift.cost ?? 0, + ); + aggregates[key] = aggregate; + } + + int totalNeeded = 0; + int totalAssigned = 0; + double totalCost = 0; + for (final _LiveShiftAggregate aggregate in aggregates.values) { + totalNeeded += aggregate.workersNeeded; + totalAssigned += aggregate.assigned; + totalCost += aggregate.cost; + } + + int lateCount = 0; + int checkedInCount = 0; + for (final dc.ListStaffsApplicationsByBusinessForDayApplications app + in result.data.applications) { + if (app.checkInTime != null) { + checkedInCount += 1; + } + if (app.status is dc.Known && + (app.status as dc.Known).value == + dc.ApplicationStatus.LATE) { + lateCount += 1; + } + } + + return _LiveActivityData( + totalNeeded: totalNeeded, + totalAssigned: totalAssigned, + totalCost: totalCost, + checkedInCount: checkedInCount, + lateCount: lateCount, + ); + } + + fdc.Timestamp _toTimestamp(DateTime dateTime) { + final int seconds = dateTime.millisecondsSinceEpoch ~/ 1000; + final int nanoseconds = + (dateTime.millisecondsSinceEpoch % 1000) * 1000000; + return fdc.Timestamp(nanoseconds, seconds); + } + @override Widget build(BuildContext context) { final TranslationsClientHomeEn i18n = t.client_home; - // Mock data - final List> shifts = >[ - { - 'workersNeeded': 5, - 'filled': 4, - 'hourlyRate': 20.0, - 'status': 'OPEN', - 'date': DateTime.now().toIso8601String().split('T')[0], - }, - { - 'workersNeeded': 5, - 'filled': 5, - 'hourlyRate': 22.0, - 'status': 'FILLED', - 'date': DateTime.now().toIso8601String().split('T')[0], - }, - ]; - final List> applications = >[ - {'status': 'CONFIRMED', 'checkInTime': '09:00'}, - {'status': 'CONFIRMED', 'checkInTime': '09:05'}, - {'status': 'CONFIRMED'}, - {'status': 'LATE'}, - ]; - return Column( children: [ Row( @@ -51,7 +114,7 @@ class LiveActivityWidget extends StatelessWidget { ), ), GestureDetector( - onTap: onViewAllPressed, + onTap: widget.onViewAllPressed, child: Text( i18n.dashboard.view_all, style: UiTypography.footnote1m.copyWith( @@ -62,8 +125,82 @@ class LiveActivityWidget extends StatelessWidget { ], ), const SizedBox(height: UiConstants.space2), - CoverageDashboard(shifts: shifts, applications: applications), + FutureBuilder<_LiveActivityData>( + future: _liveActivityFuture, + builder: (BuildContext context, + AsyncSnapshot<_LiveActivityData> snapshot) { + final _LiveActivityData data = + snapshot.data ?? _LiveActivityData.empty(); + final List> shifts = + >[ + { + 'workersNeeded': data.totalNeeded, + 'filled': data.totalAssigned, + 'hourlyRate': data.totalAssigned == 0 + ? 0.0 + : data.totalCost / data.totalAssigned, + 'status': 'OPEN', + 'date': DateTime.now().toIso8601String().split('T')[0], + }, + ]; + final List> applications = + >[]; + for (int i = 0; i < data.checkedInCount; i += 1) { + applications.add( + { + 'status': 'CONFIRMED', + 'checkInTime': '09:00', + }, + ); + } + for (int i = 0; i < data.lateCount; i += 1) { + applications.add({'status': 'LATE'}); + } + return CoverageDashboard( + shifts: shifts, + applications: applications, + ); + }, + ), ], ); } } + +class _LiveActivityData { + const _LiveActivityData({ + required this.totalNeeded, + required this.totalAssigned, + required this.totalCost, + required this.checkedInCount, + required this.lateCount, + }); + + final int totalNeeded; + final int totalAssigned; + final double totalCost; + final int checkedInCount; + final int lateCount; + + factory _LiveActivityData.empty() { + return const _LiveActivityData( + totalNeeded: 0, + totalAssigned: 0, + totalCost: 0, + checkedInCount: 0, + lateCount: 0, + ); + } +} + +class _LiveShiftAggregate { + _LiveShiftAggregate({ + required this.workersNeeded, + required this.assigned, + required this.cost, + }); + + final int workersNeeded; + final int assigned; + final double cost; +} diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart index 97a9bc24..3b618cd3 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart @@ -4,6 +4,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'package:krow_domain/krow_domain.dart' as domain; +import '../../domain/ui_entities/auth_mode.dart'; import '../../domain/repositories/auth_repository_interface.dart'; @@ -67,6 +68,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { /// Signs out the current user. @override Future signOut() { + StaffSessionStore.instance.clear(); return firebaseAuth.signOut(); } @@ -75,6 +77,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { Future verifyOtp({ required String verificationId, required String smsCode, + required AuthMode mode, }) async { final PhoneAuthCredential credential = PhoneAuthProvider.credential( verificationId: verificationId, @@ -86,33 +89,87 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { throw Exception('Phone verification failed, no Firebase user received.'); } - final QueryResult response = await dataConnect.getUserById( - id: firebaseUser.uid, - ).execute(); + final QueryResult response = + await dataConnect.getUserById( + id: firebaseUser.uid, + ).execute(); final GetUserByIdUser? user = response.data.user; - if (user == null) { - await firebaseAuth.signOut(); - throw Exception('Authenticated user profile not found in database.'); - } - if (user.userRole != 'STAFF') { - await firebaseAuth.signOut(); - throw Exception('User is not authorized for this app.'); + + GetStaffByUserIdStaffs? staffRecord; + + if (mode == AuthMode.signup) { + if (user == null) { + await dataConnect + .createUser( + id: firebaseUser.uid, + role: UserBaseRole.USER, + ) + .userRole('STAFF') + .execute(); + } else { + if (user.userRole != 'STAFF') { + await firebaseAuth.signOut(); + throw Exception('User is not authorized for this app.'); + } + final QueryResult + staffResponse = await dataConnect.getStaffByUserId( + userId: firebaseUser.uid, + ).execute(); + if (staffResponse.data.staffs.isNotEmpty) { + await firebaseAuth.signOut(); + throw Exception( + 'This user already has a staff profile. Please log in.', + ); + } + } + } else { + if (user == null) { + await firebaseAuth.signOut(); + throw Exception('Authenticated user profile not found in database.'); + } + if (user.userRole != 'STAFF') { + await firebaseAuth.signOut(); + throw Exception('User is not authorized for this app.'); + } + + final QueryResult + staffResponse = await dataConnect.getStaffByUserId( + userId: firebaseUser.uid, + ).execute(); + if (staffResponse.data.staffs.isEmpty) { + await firebaseAuth.signOut(); + throw Exception( + 'Your account is not registered yet. Please register first.', + ); + } + staffRecord = staffResponse.data.staffs.first; } - final String email = user.email ?? ''; - if (email.isEmpty) { - await firebaseAuth.signOut(); - throw Exception('User email is missing in profile data.'); - } + final String email = user?.email ?? ''; - //TO-DO: validate if user has staff account, else logout, throw message and login //TO-DO: create(registration) user and staff account //TO-DO: save user data locally - return domain.User( - id: user.id, + final domain.User domainUser = domain.User( + id: firebaseUser.uid, email: email, phone: firebaseUser.phoneNumber, - role: user.role.stringValue, + role: user?.role.stringValue ?? 'USER', ); + final domain.Staff? domainStaff = staffRecord == null + ? null + : domain.Staff( + id: staffRecord.id, + authProviderId: staffRecord.userId, + name: staffRecord.fullName, + email: staffRecord.email ?? '', + phone: staffRecord.phone, + status: domain.StaffStatus.completedProfile, + address: staffRecord.addres, + avatar: staffRecord.photoUrl, + ); + StaffSessionStore.instance.setSession( + StaffSession(user: domainUser, staff: domainStaff), + ); + return domainUser; } } diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/domain/arguments/verify_otp_arguments.dart b/apps/mobile/packages/features/staff/authentication/lib/src/domain/arguments/verify_otp_arguments.dart index 74053d31..ac7cd4ef 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/domain/arguments/verify_otp_arguments.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/domain/arguments/verify_otp_arguments.dart @@ -1,4 +1,5 @@ import 'package:krow_core/core.dart'; +import '../ui_entities/auth_mode.dart'; /// Represents the arguments required for the [VerifyOtpUseCase]. /// @@ -11,14 +12,18 @@ class VerifyOtpArguments extends UseCaseArgument { /// The one-time password (OTP) sent to the user's phone. final String smsCode; + /// The authentication mode (login or signup). + final AuthMode mode; + /// Creates a [VerifyOtpArguments] instance. /// /// Both [verificationId] and [smsCode] are required. const VerifyOtpArguments({ required this.verificationId, required this.smsCode, + required this.mode, }); @override - List get props => [verificationId, smsCode]; + List get props => [verificationId, smsCode, mode]; } diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/domain/repositories/auth_repository_interface.dart b/apps/mobile/packages/features/staff/authentication/lib/src/domain/repositories/auth_repository_interface.dart index 19cfcb2e..b893e705 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/domain/repositories/auth_repository_interface.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/domain/repositories/auth_repository_interface.dart @@ -1,4 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; +import '../ui_entities/auth_mode.dart'; /// Interface for authentication repository. abstract interface class AuthRepositoryInterface { @@ -11,6 +12,7 @@ abstract interface class AuthRepositoryInterface { Future verifyOtp({ required String verificationId, required String smsCode, + required AuthMode mode, }); /// Signs out the current user. diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/domain/usecases/verify_otp_usecase.dart b/apps/mobile/packages/features/staff/authentication/lib/src/domain/usecases/verify_otp_usecase.dart index 5e11a01d..0c359968 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/domain/usecases/verify_otp_usecase.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/domain/usecases/verify_otp_usecase.dart @@ -19,6 +19,7 @@ class VerifyOtpUseCase implements UseCase { return _repository.verifyOtp( verificationId: arguments.verificationId, smsCode: arguments.smsCode, + mode: arguments.mode, ); } } diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_bloc.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_bloc.dart index 5044b5ce..bf605543 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_bloc.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_bloc.dart @@ -93,6 +93,7 @@ class AuthBloc extends Bloc implements Disposable { VerifyOtpArguments( verificationId: event.verificationId, smsCode: event.smsCode, + mode: event.mode, ), ); emit(state.copyWith(status: AuthStatus.authenticated, user: user)); diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_event.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_event.dart index 2b0c3f65..f26c339a 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_event.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/auth_event.dart @@ -33,10 +33,17 @@ class AuthOtpSubmitted extends AuthEvent { /// The SMS code (OTP) entered by the user. final String smsCode; - const AuthOtpSubmitted({required this.verificationId, required this.smsCode}); + /// The authentication mode (login or signup). + final AuthMode mode; + + const AuthOtpSubmitted({ + required this.verificationId, + required this.smsCode, + required this.mode, + }); @override - List get props => [verificationId, smsCode]; + List get props => [verificationId, smsCode, mode]; } /// Event for clearing any authentication error in the state. diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/profile_setup/profile_setup_bloc.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/profile_setup/profile_setup_bloc.dart index 94ff1f20..93d8b44f 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/profile_setup/profile_setup_bloc.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/blocs/profile_setup/profile_setup_bloc.dart @@ -1,5 +1,9 @@ -import 'package:flutter/foundation.dart'; +import 'package:firebase_auth/firebase_auth.dart' as auth; +import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; +import 'package:krow_domain/krow_domain.dart'; + import 'profile_setup_event.dart'; import 'profile_setup_state.dart'; @@ -8,8 +12,12 @@ export 'profile_setup_state.dart'; /// BLoC responsible for managing the profile setup state and logic. class ProfileSetupBloc extends Bloc { - /// Creates a [ProfileSetupBloc] with an initial state. - ProfileSetupBloc() : super(const ProfileSetupState()) { + ProfileSetupBloc({ + required auth.FirebaseAuth firebaseAuth, + required dc.ExampleConnector dataConnect, + }) : _firebaseAuth = firebaseAuth, + _dataConnect = dataConnect, + super(const ProfileSetupState()) { on(_onFullNameChanged); on(_onBioChanged); on(_onLocationsChanged); @@ -19,6 +27,9 @@ class ProfileSetupBloc extends Bloc { on(_onSubmitted); } + final auth.FirebaseAuth _firebaseAuth; + final dc.ExampleConnector _dataConnect; + /// Handles the [ProfileSetupFullNameChanged] event. void _onFullNameChanged( ProfileSetupFullNameChanged event, @@ -75,17 +86,44 @@ class ProfileSetupBloc extends Bloc { emit(state.copyWith(status: ProfileSetupStatus.loading)); try { - // In a real app, we would send this data to a UseCase - debugPrint('Submitting Profile:'); - debugPrint('Name: ${state.fullName}'); - debugPrint('Bio: ${state.bio}'); - debugPrint('Locations: ${state.preferredLocations}'); - debugPrint('Distance: ${state.maxDistanceMiles}'); - debugPrint('Skills: ${state.skills}'); - debugPrint('Industries: ${state.industries}'); + final auth.User? firebaseUser = _firebaseAuth.currentUser; + if (firebaseUser == null) { + throw Exception('User not authenticated.'); + } - // Mocking profile creation delay - await Future.delayed(const Duration(milliseconds: 1500)); + final dc.StaffSession? session = dc.StaffSessionStore.instance.session; + final String email = session?.user.email ?? ''; + final String? phone = firebaseUser.phoneNumber; + + final fdc.OperationResult + result = await _dataConnect + .createStaff( + userId: firebaseUser.uid, + fullName: state.fullName, + ) + .bio(state.bio.isEmpty ? null : state.bio) + .preferredLocations(state.preferredLocations) + .maxDistanceMiles(state.maxDistanceMiles.toInt()) + .industries(state.industries) + .skills(state.skills) + .email(email.isEmpty ? null : email) + .phone(phone) + .execute(); + + final String staffId = result.data.staff_insert.id ; + final Staff staff = Staff( + id: staffId, + authProviderId: firebaseUser.uid, + name: state.fullName, + email: email, + phone: phone, + status: StaffStatus.completedProfile, + ); + if (session != null) { + dc.StaffSessionStore.instance.setSession( + dc.StaffSession(user: session.user, staff: staff), + ); + } emit(state.copyWith(status: ProfileSetupStatus.success)); } catch (e) { diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart index 8fcdc3fc..b58ed1bf 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart @@ -50,7 +50,13 @@ class PhoneVerificationPage extends StatelessWidget { }) { BlocProvider.of( context, - ).add(AuthOtpSubmitted(verificationId: verificationId, smsCode: otp)); + ).add( + AuthOtpSubmitted( + verificationId: verificationId, + smsCode: otp, + mode: mode, + ), + ); } /// Handles the request to resend the verification code using the phone number in the state. @@ -72,6 +78,19 @@ class PhoneVerificationPage extends StatelessWidget { } else { Modular.to.pushWorkerHome(); } + } else if (state.status == AuthStatus.error && + state.mode == AuthMode.signup) { + final String message = state.errorMessage ?? ''; + if (message.contains('staff profile')) { + Modular.to.pushReplacementNamed( + './phone-verification', + arguments: { + 'mode': AuthMode.login.name, + }, + ); + } else if (message.contains('not authorized')) { + Modular.to.pop(); + } } }, child: BlocBuilder( diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/profile_setup_page/profile_setup_experience.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/profile_setup_page/profile_setup_experience.dart index 73612bdc..ac4273c1 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/profile_setup_page/profile_setup_experience.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/profile_setup_page/profile_setup_experience.dart @@ -1,5 +1,6 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; +import 'package:krow_domain/krow_domain.dart'; import 'package:staff_authentication/src/presentation/widgets/common/section_title_subtitle.dart'; import 'package:staff_authentication/staff_authentication.dart'; @@ -17,28 +18,6 @@ class ProfileSetupExperience extends StatelessWidget { /// Callback for when industries change. final ValueChanged> onIndustriesChanged; - static const List _allSkillKeys = [ - 'food_service', - 'bartending', - 'warehouse', - 'retail', - 'events', - 'customer_service', - 'cleaning', - 'security', - 'driving', - 'cooking', - ]; - - static const List _allIndustryKeys = [ - 'hospitality', - 'food_service', - 'warehouse', - 'events', - 'retail', - 'healthcare', - ]; - /// Creates a [ProfileSetupExperience] widget. const ProfileSetupExperience({ super.key, @@ -92,15 +71,15 @@ class ProfileSetupExperience extends StatelessWidget { Wrap( spacing: UiConstants.space2, runSpacing: UiConstants.space2, - children: _allSkillKeys.map((String key) { - final bool isSelected = skills.contains(key); + children: ExperienceSkill.values.map((ExperienceSkill skill) { + final bool isSelected = skills.contains(skill.value); // Dynamic translation access - final String label = _getSkillLabel(key); + final String label = _getSkillLabel(skill); return UiChip( label: label, isSelected: isSelected, - onTap: () => _toggleSkill(skill: key), + onTap: () => _toggleSkill(skill: skill.value), leadingIcon: isSelected ? UiIcons.check : null, variant: UiChipVariant.primary, ); @@ -118,14 +97,14 @@ class ProfileSetupExperience extends StatelessWidget { Wrap( spacing: UiConstants.space2, runSpacing: UiConstants.space2, - children: _allIndustryKeys.map((String key) { - final bool isSelected = industries.contains(key); - final String label = _getIndustryLabel(key); + children: Industry.values.map((Industry industry) { + final bool isSelected = industries.contains(industry.value); + final String label = _getIndustryLabel(industry); return UiChip( label: label, isSelected: isSelected, - onTap: () => _toggleIndustry(industry: key), + onTap: () => _toggleIndustry(industry: industry.value), leadingIcon: isSelected ? UiIcons.check : null, variant: isSelected ? UiChipVariant.accent @@ -137,72 +116,74 @@ class ProfileSetupExperience extends StatelessWidget { ); } - String _getSkillLabel(String key) { - switch (key) { - case 'food_service': + String _getSkillLabel(ExperienceSkill skill) { + switch (skill) { + case ExperienceSkill.foodService: return t .staff_authentication .profile_setup_page .experience .skills .food_service; - case 'bartending': + case ExperienceSkill.bartending: return t .staff_authentication .profile_setup_page .experience .skills .bartending; - case 'warehouse': + case ExperienceSkill.warehouse: return t .staff_authentication .profile_setup_page .experience .skills .warehouse; - case 'retail': + case ExperienceSkill.retail: return t .staff_authentication .profile_setup_page .experience .skills .retail; - case 'events': + // Note: 'events' was removed from enum in favor of 'event_setup' or industry. + // Using 'events' translation for eventSetup if available or fallback. + case ExperienceSkill.eventSetup: return t .staff_authentication .profile_setup_page .experience .skills .events; - case 'customer_service': + case ExperienceSkill.customerService: return t .staff_authentication .profile_setup_page .experience .skills .customer_service; - case 'cleaning': + case ExperienceSkill.cleaning: return t .staff_authentication .profile_setup_page .experience .skills .cleaning; - case 'security': + case ExperienceSkill.security: return t .staff_authentication .profile_setup_page .experience .skills .security; - case 'driving': + case ExperienceSkill.driving: return t .staff_authentication .profile_setup_page .experience .skills .driving; - case 'cooking': + case ExperienceSkill.cooking: return t .staff_authentication .profile_setup_page @@ -210,48 +191,48 @@ class ProfileSetupExperience extends StatelessWidget { .skills .cooking; default: - return key; + return skill.value; } } - String _getIndustryLabel(String key) { - switch (key) { - case 'hospitality': + String _getIndustryLabel(Industry industry) { + switch (industry) { + case Industry.hospitality: return t .staff_authentication .profile_setup_page .experience .industries .hospitality; - case 'food_service': + case Industry.foodService: return t .staff_authentication .profile_setup_page .experience .industries .food_service; - case 'warehouse': + case Industry.warehouse: return t .staff_authentication .profile_setup_page .experience .industries .warehouse; - case 'events': + case Industry.events: return t .staff_authentication .profile_setup_page .experience .industries .events; - case 'retail': + case Industry.retail: return t .staff_authentication .profile_setup_page .experience .industries .retail; - case 'healthcare': + case Industry.healthcare: return t .staff_authentication .profile_setup_page @@ -259,7 +240,7 @@ class ProfileSetupExperience extends StatelessWidget { .industries .healthcare; default: - return key; + return industry.value; } } } diff --git a/apps/mobile/packages/features/staff/authentication/lib/staff_authentication.dart b/apps/mobile/packages/features/staff/authentication/lib/staff_authentication.dart index 9177a01c..19421456 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/staff_authentication.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/staff_authentication.dart @@ -47,7 +47,12 @@ class StaffAuthenticationModule extends Module { verifyOtpUseCase: i.get(), ), ); - i.add(ProfileSetupBloc.new); + i.add( + () => ProfileSetupBloc( + firebaseAuth: firebase.FirebaseAuth.instance, + dataConnect: ExampleConnector.instance, + ), + ); } @override diff --git a/apps/mobile/packages/features/staff/availability/analysis_options.yaml b/apps/mobile/packages/features/staff/availability/analysis_options.yaml new file mode 100644 index 00000000..a932a962 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/analysis_options.yaml @@ -0,0 +1,5 @@ +include: package:flutter_lints/flutter.yaml + +linter: + rules: + public_member_api_docs: false 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 new file mode 100644 index 00000000..69d7594c --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/data/repositories/availability_repository_impl.dart @@ -0,0 +1,164 @@ +import 'package:krow_data_connect/krow_data_connect.dart' hide AvailabilitySlot; +import 'package:krow_domain/krow_domain.dart'; +import '../../domain/repositories/availability_repository.dart'; +import 'package:intl/intl.dart'; + +/// Implementation of [AvailabilityRepository]. +/// +/// Uses [StaffRepositoryMock] from data_connect to fetch and store data. +class AvailabilityRepositoryImpl implements AvailabilityRepository { + final StaffRepositoryMock _dataSource; + + // Mock User ID - in real app invoke AuthUseCase to get current user + final String _userId = 'mock_user_123'; + + static const List> _slotDefinitions = [ + { + 'id': 'morning', + 'label': 'Morning', + 'timeRange': '4:00 AM - 12:00 PM', + }, + { + 'id': 'afternoon', + 'label': 'Afternoon', + 'timeRange': '12:00 PM - 6:00 PM', + }, + { + 'id': 'evening', + 'label': 'Evening', + 'timeRange': '6:00 PM - 12:00 AM', + }, + ]; + + AvailabilityRepositoryImpl({StaffRepositoryMock? dataSource}) + : _dataSource = dataSource ?? StaffRepositoryMock(); + + @override + Future> getAvailability( + DateTime start, DateTime end) async { + final rawData = await _dataSource.getAvailability(_userId, start, end); + final List days = []; + + // Loop through each day in range + for (int i = 0; i <= end.difference(start).inDays; i++) { + final date = start.add(Duration(days: i)); + final dateKey = DateFormat('yyyy-MM-dd').format(date); + + final dayData = rawData[dateKey]; + + if (dayData != null) { + days.add(_mapFromData(date, dayData)); + } else { + // Default: Available M-F, Not Sat-Sun (matching prototype logic) + final isWeekend = date.weekday == DateTime.saturday || date.weekday == DateTime.sunday; + // Prototype: Sat/Sun false + + days.add(DayAvailability( + date: date, + isAvailable: !isWeekend, + slots: _generateDefaultSlots(isEnabled: !isWeekend), + )); + } + } + return days; + } + + @override + Future updateDayAvailability( + DayAvailability availability) async { + final dateKey = DateFormat('yyyy-MM-dd').format(availability.date); + final data = _mapToData(availability); + + await _dataSource.updateAvailability(_userId, dateKey, data); + return availability; + } + + @override + Future> applyQuickSet( + DateTime start, DateTime end, String type) async { + final List updatedDays = []; + + for (int i = 0; i <= end.difference(start).inDays; i++) { + final date = start.add(Duration(days: i)); + bool isAvailable = false; + + switch (type) { + case 'all': + isAvailable = true; + break; + case 'weekdays': + isAvailable = date.weekday != DateTime.saturday && date.weekday != DateTime.sunday; + break; + case 'weekends': + isAvailable = date.weekday == DateTime.saturday || date.weekday == DateTime.sunday; + break; + case 'clear': + isAvailable = false; + break; + } + + // Keep existing slot preferences, just toggle main switch? + // Or reset slots too? Prototype behavior: just sets map[day] = bool. + // But it implies slots are active if day is active? + // For now, allow slots to be default true if day is enabled. + + final day = DayAvailability( + date: date, + isAvailable: isAvailable, + slots: _generateDefaultSlots(isEnabled: isAvailable), + ); + + await updateDayAvailability(day); + updatedDays.add(day); + } + return updatedDays; + } + + // --- Helpers --- + + List _generateDefaultSlots({bool isEnabled = true}) { + return _slotDefinitions.map((def) { + return AvailabilitySlot( + id: def['id']!, + label: def['label']!, + timeRange: def['timeRange']!, + isAvailable: true, // Default slots to true + ); + }).toList(); + } + + DayAvailability _mapFromData(DateTime date, Map data) { + final isAvailable = data['isAvailable'] as bool? ?? false; + final Map slotsMap = data['slots'] ?? {}; + + final slots = _slotDefinitions.map((def) { + final slotId = def['id']!; + final slotEnabled = slotsMap[slotId] as bool? ?? true; // Default true if not stored + + return AvailabilitySlot( + id: slotId, + label: def['label']!, + timeRange: def['timeRange']!, + isAvailable: slotEnabled, + ); + }).toList(); + + return DayAvailability( + date: date, + isAvailable: isAvailable, + slots: slots, + ); + } + + Map _mapToData(DayAvailability day) { + Map slotsMap = {}; + for (var slot in day.slots) { + slotsMap[slot.id] = slot.isAvailable; + } + + return { + 'isAvailable': day.isAvailable, + 'slots': slotsMap, + }; + } +} 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 new file mode 100644 index 00000000..3678be8d --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/repositories/availability_repository.dart @@ -0,0 +1,12 @@ +import 'package:krow_domain/krow_domain.dart'; + +abstract class AvailabilityRepository { + /// Fetches availability for a given date range (usually a week). + Future> getAvailability(DateTime start, DateTime end); + + /// Updates the availability for a specific day. + Future updateDayAvailability(DayAvailability availability); + + /// Applies a preset configuration (e.g. All Week, Weekdays only) to a range. + Future> applyQuickSet(DateTime start, DateTime end, String type); +} 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 new file mode 100644 index 00000000..6ff4735e --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/apply_quick_set_usecase.dart @@ -0,0 +1,28 @@ +import 'package:krow_core/core.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. +class ApplyQuickSetUseCase extends UseCase> { + final AvailabilityRepository repository; + + ApplyQuickSetUseCase(this.repository); + + /// [type] can be 'all', 'weekdays', 'weekends', 'clear' + @override + Future> call(ApplyQuickSetParams params) { + final end = params.start.add(const Duration(days: 6)); + return repository.applyQuickSet(params.start, end, params.type); + } +} + +/// Parameters for [ApplyQuickSetUseCase]. +class ApplyQuickSetParams extends UseCaseArgument { + final DateTime start; + final String type; + + const ApplyQuickSetParams(this.start, this.type); + + @override + List get props => [start, type]; +} 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 new file mode 100644 index 00000000..b9b03a28 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/get_weekly_availability_usecase.dart @@ -0,0 +1,30 @@ +import 'package:krow_core/core.dart'; +import 'package:krow_domain/krow_domain.dart'; +import '../repositories/availability_repository.dart'; + +/// Use case to fetch availability for a specific week. +/// +/// This encapsulates the logic of calculating the week range and fetching data +/// from the repository. +class GetWeeklyAvailabilityUseCase extends UseCase> { + final AvailabilityRepository repository; + + GetWeeklyAvailabilityUseCase(this.repository); + + @override + Future> call(GetWeeklyAvailabilityParams params) async { + // Calculate end of week (assuming start is start of week) + final end = params.start.add(const Duration(days: 6)); + return repository.getAvailability(params.start, end); + } +} + +/// Parameters for [GetWeeklyAvailabilityUseCase]. +class GetWeeklyAvailabilityParams extends UseCaseArgument { + final DateTime start; + + const GetWeeklyAvailabilityParams(this.start); + + @override + List get props => [start]; +} 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 new file mode 100644 index 00000000..a3e32543 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/domain/usecases/update_day_availability_usecase.dart @@ -0,0 +1,25 @@ +import 'package:krow_core/core.dart'; +import 'package:krow_domain/krow_domain.dart'; +import '../repositories/availability_repository.dart'; + +/// Use case to update the availability configuration for a specific day. +class UpdateDayAvailabilityUseCase extends UseCase { + final AvailabilityRepository repository; + + UpdateDayAvailabilityUseCase(this.repository); + + @override + Future call(UpdateDayAvailabilityParams params) { + return repository.updateDayAvailability(params.availability); + } +} + +/// Parameters for [UpdateDayAvailabilityUseCase]. +class UpdateDayAvailabilityParams extends UseCaseArgument { + final DayAvailability availability; + + const UpdateDayAvailabilityParams(this.availability); + + @override + List get props => [availability]; +} 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 new file mode 100644 index 00000000..4073db48 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_bloc.dart @@ -0,0 +1,136 @@ +import 'package:flutter_bloc/flutter_bloc.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'; +import 'availability_event.dart'; +import 'availability_state.dart'; + +class AvailabilityBloc extends Bloc { + final GetWeeklyAvailabilityUseCase getWeeklyAvailability; + final UpdateDayAvailabilityUseCase updateDayAvailability; + final ApplyQuickSetUseCase applyQuickSet; + + AvailabilityBloc({ + required this.getWeeklyAvailability, + required this.updateDayAvailability, + required this.applyQuickSet, + }) : super(AvailabilityInitial()) { + on(_onLoadAvailability); + on(_onSelectDate); + on(_onNavigateWeek); + on(_onToggleDayStatus); + on(_onToggleSlotStatus); + on(_onPerformQuickSet); + } + + Future _onLoadAvailability( + LoadAvailability event, + Emitter emit, + ) async { + emit(AvailabilityLoading()); + try { + final days = await getWeeklyAvailability( + GetWeeklyAvailabilityParams(event.weekStart)); + emit(AvailabilityLoaded( + days: days, + currentWeekStart: event.weekStart, + selectedDate: event.preselectedDate ?? + (days.isNotEmpty ? days.first.date : DateTime.now()), + )); + } catch (e) { + emit(AvailabilityError(e.toString())); + } + } + + void _onSelectDate(SelectDate event, Emitter emit) { + if (state is AvailabilityLoaded) { + emit((state as AvailabilityLoaded).copyWith(selectedDate: event.date)); + } + } + + Future _onNavigateWeek( + NavigateWeek event, + Emitter emit, + ) async { + if (state is AvailabilityLoaded) { + final currentState = state as AvailabilityLoaded; + final newWeekStart = currentState.currentWeekStart + .add(Duration(days: event.direction * 7)); + + final diff = currentState.selectedDate.difference(currentState.currentWeekStart).inDays; + final newSelectedDate = newWeekStart.add(Duration(days: diff)); + + add(LoadAvailability(newWeekStart, preselectedDate: newSelectedDate)); + } + } + + Future _onToggleDayStatus( + ToggleDayStatus event, + Emitter emit, + ) async { + if (state is AvailabilityLoaded) { + final currentState = state as AvailabilityLoaded; + + final newDay = event.day.copyWith(isAvailable: !event.day.isAvailable); + final updatedDays = currentState.days.map((d) { + return d.date == event.day.date ? newDay : d; + }).toList(); + + emit(currentState.copyWith(days: updatedDays)); + + try { + await updateDayAvailability(UpdateDayAvailabilityParams(newDay)); + } catch (e) { + emit(currentState.copyWith(days: currentState.days)); + } + } + } + + Future _onToggleSlotStatus( + ToggleSlotStatus event, + Emitter emit, + ) async { + if (state is AvailabilityLoaded) { + final currentState = state as AvailabilityLoaded; + + final updatedSlots = event.day.slots.map((s) { + if (s.id == event.slotId) { + return s.copyWith(isAvailable: !s.isAvailable); + } + return s; + }).toList(); + + final newDay = event.day.copyWith(slots: updatedSlots); + + final updatedDays = currentState.days.map((d) { + return d.date == event.day.date ? newDay : d; + }).toList(); + + emit(currentState.copyWith(days: updatedDays)); + + try { + await updateDayAvailability(UpdateDayAvailabilityParams(newDay)); + } catch (e) { + emit(currentState.copyWith(days: currentState.days)); + } + } + } + + Future _onPerformQuickSet( + PerformQuickSet event, + Emitter emit, + ) async { + if (state is AvailabilityLoaded) { + final currentState = state as AvailabilityLoaded; + + try { + final newDays = await applyQuickSet( + ApplyQuickSetParams(currentState.currentWeekStart, event.type)); + emit(currentState.copyWith(days: newDays)); + } catch (e) { + // Handle error + } + } + } +} 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 new file mode 100644 index 00000000..e6074504 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_event.dart @@ -0,0 +1,54 @@ +import 'package:equatable/equatable.dart'; +import 'package:krow_domain/krow_domain.dart'; + +abstract class AvailabilityEvent extends Equatable { + const AvailabilityEvent(); + @override + List get props => []; +} + +class LoadAvailability extends AvailabilityEvent { + final DateTime weekStart; + final DateTime? preselectedDate; // Maintain selection after reload + + const LoadAvailability(this.weekStart, {this.preselectedDate}); + + @override + List get props => [weekStart, preselectedDate]; +} + +class SelectDate extends AvailabilityEvent { + final DateTime date; + const SelectDate(this.date); + @override + List get props => [date]; +} + +class ToggleDayStatus extends AvailabilityEvent { + final DayAvailability day; + const ToggleDayStatus(this.day); + @override + List get props => [day]; +} + +class ToggleSlotStatus extends AvailabilityEvent { + final DayAvailability day; + final String slotId; + const ToggleSlotStatus(this.day, this.slotId); + @override + List get props => [day, slotId]; +} + +class NavigateWeek extends AvailabilityEvent { + final int direction; // -1 or 1 + const NavigateWeek(this.direction); + @override + List get props => [direction]; +} + +class PerformQuickSet extends AvailabilityEvent { + final String type; // all, weekdays, weekends, clear + const PerformQuickSet(this.type); + @override + List get props => [type]; +} 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 new file mode 100644 index 00000000..5c8b52ba --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/blocs/availability_state.dart @@ -0,0 +1,58 @@ +import 'package:equatable/equatable.dart'; +import 'package:krow_domain/krow_domain.dart'; + +abstract class AvailabilityState extends Equatable { + const AvailabilityState(); + @override + List get props => []; +} + +class AvailabilityInitial extends AvailabilityState {} + +class AvailabilityLoading extends AvailabilityState {} + +class AvailabilityLoaded extends AvailabilityState { + final List days; + final DateTime currentWeekStart; + final DateTime selectedDate; + + const AvailabilityLoaded({ + required this.days, + required this.currentWeekStart, + required this.selectedDate, + }); + + /// Helper to get the currently selected day's availability object + DayAvailability get selectedDayAvailability { + return days.firstWhere( + (d) => isSameDay(d.date, selectedDate), + orElse: () => DayAvailability(date: selectedDate), // Fallback + ); + } + + AvailabilityLoaded copyWith({ + List? days, + DateTime? currentWeekStart, + DateTime? selectedDate, + }) { + return AvailabilityLoaded( + days: days ?? this.days, + currentWeekStart: currentWeekStart ?? this.currentWeekStart, + selectedDate: selectedDate ?? this.selectedDate, + ); + } + + static bool isSameDay(DateTime a, DateTime b) { + return a.year == b.year && a.month == b.month && a.day == b.day; + } + + @override + List get props => [days, currentWeekStart, selectedDate]; +} + +class AvailabilityError extends AvailabilityState { + final String message; + const AvailabilityError(this.message); + @override + List get props => [message]; +} diff --git a/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page.dart b/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page.dart new file mode 100644 index 00000000..97c43cd4 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page.dart @@ -0,0 +1,783 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_modular/flutter_modular.dart'; +import 'package:intl/intl.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +class AvailabilityPage extends StatefulWidget { + const AvailabilityPage({super.key}); + + @override + State createState() => _AvailabilityPageState(); +} + +class _AvailabilityPageState extends State { + late DateTime _currentWeekStart; + late DateTime _selectedDate; + + // Mock Availability State + // Map of day name (lowercase) to availability status + Map _availability = { + 'monday': true, + 'tuesday': true, + 'wednesday': true, + 'thursday': true, + 'friday': true, + 'saturday': false, + 'sunday': false, + }; + + // Map of day name to time slot map + Map> _timeSlotAvailability = { + 'monday': {'morning': true, 'afternoon': true, 'evening': true}, + 'tuesday': {'morning': true, 'afternoon': true, 'evening': true}, + 'wednesday': {'morning': true, 'afternoon': true, 'evening': true}, + 'thursday': {'morning': true, 'afternoon': true, 'evening': true}, + 'friday': {'morning': true, 'afternoon': true, 'evening': true}, + 'saturday': {'morning': false, 'afternoon': false, 'evening': false}, + 'sunday': {'morning': false, 'afternoon': false, 'evening': false}, + }; + + final List _dayNames = [ + 'sunday', + 'monday', + 'tuesday', + 'wednesday', + 'thursday', + 'friday', + 'saturday', + ]; + + final List> _timeSlots = [ + { + 'slotId': 'morning', + 'label': 'Morning', + 'timeRange': '4:00 AM - 12:00 PM', + 'icon': LucideIcons.sunrise, + 'bg': const Color(0xFFE6EBF9), // bg-[#0032A0]/10 + 'iconColor': const Color(0xFF0032A0), + }, + { + 'slotId': 'afternoon', + 'label': 'Afternoon', + 'timeRange': '12:00 PM - 6:00 PM', + 'icon': LucideIcons.sun, + 'bg': const Color(0xFFCCD6EC), // bg-[#0032A0]/20 + 'iconColor': const Color(0xFF0032A0), + }, + { + 'slotId': 'evening', + 'label': 'Evening', + 'timeRange': '6:00 PM - 12:00 AM', + 'icon': LucideIcons.moon, + 'bg': const Color(0xFFEBEDEE), // bg-[#333F48]/10 + 'iconColor': const Color(0xFF333F48), + }, + ]; + + @override + void initState() { + super.initState(); + final today = DateTime.now(); + + // Dart equivalent for Monday start: + final day = today.weekday; // Mon=1, Sun=7 + final diff = day - 1; + _currentWeekStart = today.subtract(Duration(days: diff)); + // Reset time to midnight + _currentWeekStart = DateTime( + _currentWeekStart.year, + _currentWeekStart.month, + _currentWeekStart.day, + ); + + _selectedDate = today; + } + + List _getWeekDates() { + return List.generate( + 7, + (index) => _currentWeekStart.add(Duration(days: index)), + ); + } + + String _formatDay(DateTime date) { + return DateFormat('EEE').format(date); + } + + bool _isToday(DateTime date) { + final now = DateTime.now(); + return date.year == now.year && + date.month == now.month && + date.day == now.day; + } + + bool _isSelected(DateTime date) { + return date.year == _selectedDate.year && + date.month == _selectedDate.month && + date.day == _selectedDate.day; + } + + void _navigateWeek(int direction) { + setState(() { + _currentWeekStart = _currentWeekStart.add(Duration(days: direction * 7)); + }); + } + + void _toggleDayAvailability(String dayName) { + setState(() { + _availability[dayName] = !(_availability[dayName] ?? false); + // React code also updates mutation. We mock this. + // NOTE: In prototype we mock it. Refactor will move this to BLoC. + }); + } + + String _getDayKey(DateTime date) { + // DateTime.weekday: Mon=1...Sun=7. + // _dayNames array: 0=Sun, 1=Mon... + // Dart weekday: 7 is Sunday. 7 % 7 = 0. + return _dayNames[date.weekday % 7]; + } + + void _toggleTimeSlot(String slotId) { + final dayKey = _getDayKey(_selectedDate); + final currentDaySlots = + _timeSlotAvailability[dayKey] ?? + {'morning': true, 'afternoon': true, 'evening': true}; + final newValue = !(currentDaySlots[slotId] ?? true); + + setState(() { + _timeSlotAvailability[dayKey] = {...currentDaySlots, slotId: newValue}; + }); + } + + bool _isTimeSlotActive(String slotId) { + final dayKey = _getDayKey(_selectedDate); + final daySlots = _timeSlotAvailability[dayKey]; + if (daySlots == null) return true; + return daySlots[slotId] != false; + } + + String _getMonthYear() { + final middleDate = _currentWeekStart.add(const Duration(days: 3)); + return DateFormat('MMMM yyyy').format(middleDate); + } + + void _quickSet(String type) { + Map newAvailability = {}; + + switch (type) { + case 'all': + for (var day in _dayNames) newAvailability[day] = true; + break; + case 'weekdays': + for (var day in _dayNames) + newAvailability[day] = (day != 'saturday' && day != 'sunday'); + break; + case 'weekends': + for (var day in _dayNames) + newAvailability[day] = (day == 'saturday' || day == 'sunday'); + break; + case 'clear': + for (var day in _dayNames) newAvailability[day] = false; + break; + } + + setState(() { + _availability = newAvailability; + }); + } + + @override + Widget build(BuildContext context) { + final selectedDayKey = _getDayKey(_selectedDate); + final isSelectedDayAvailable = _availability[selectedDayKey] ?? false; + final weekDates = _getWeekDates(); + + return Scaffold( + backgroundColor: const Color( + 0xFFFAFBFC, + ), // slate-50 to white gradient approximation + body: SingleChildScrollView( + padding: const EdgeInsets.only(bottom: 100), + child: Column( + children: [ + _buildHeader(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + _buildQuickSet(), + const SizedBox(height: 24), + _buildWeekNavigation(weekDates), + const SizedBox(height: 24), + _buildSelectedDayAvailability( + selectedDayKey, + isSelectedDayAvailable, + ), + const SizedBox(height: 24), + _buildInfoCard(), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildHeader() { + return Container( + padding: const EdgeInsets.fromLTRB(20, 60, 20, 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + icon: const Icon( + LucideIcons.arrowLeft, + color: AppColors.krowCharcoal, + ), + onPressed: () => Modular.to.pop(), + ), + const SizedBox(width: 12), + Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + border: Border.all( + color: AppColors.krowBlue.withOpacity(0.2), + width: 2, + ), + shape: BoxShape.circle, + ), + child: Center( + child: CircleAvatar( + backgroundColor: AppColors.krowBlue.withOpacity( + 0.1, + ), + radius: 18, + child: const Text( + 'K', // Mock initial + style: TextStyle( + color: AppColors.krowBlue, + fontWeight: FontWeight.bold, + fontSize: 14, + ), + ), + ), + ), + ), + const SizedBox(width: 12), + const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'My Availability', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: AppColors.krowCharcoal, + ), + ), + Text( + 'Set when you can work', + style: TextStyle( + fontSize: 14, + color: AppColors.krowMuted, + ), + ), + ], + ), + ], + ), + ], + ), + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.1), + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.calendar, + color: AppColors.krowBlue, + size: 20, + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildQuickSet() { + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Quick Set Availability', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF333F48), + ), + ), + const SizedBox(height: 12), + Row( + children: [ + Expanded( + child: _buildQuickSetButton('All Week', () => _quickSet('all')), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + 'Weekdays', + () => _quickSet('weekdays'), + ), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + 'Weekends', + () => _quickSet('weekends'), + ), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + 'Clear All', + () => _quickSet('clear'), + isDestructive: true, + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildQuickSetButton( + String label, + VoidCallback onTap, { + bool isDestructive = false, + }) { + return SizedBox( + height: 32, + child: OutlinedButton( + onPressed: onTap, + style: OutlinedButton.styleFrom( + padding: EdgeInsets.zero, + side: BorderSide( + color: isDestructive + ? Colors.red.withOpacity(0.2) + : AppColors.krowBlue.withOpacity(0.2), + ), + backgroundColor: + Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + foregroundColor: isDestructive ? Colors.red : AppColors.krowBlue, + ), + child: Text( + label, + style: const TextStyle(fontSize: 10, fontWeight: FontWeight.w500), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ); + } + + Widget _buildWeekNavigation(List weekDates) { + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + children: [ + // Nav Header + Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _buildNavButton( + LucideIcons.chevronLeft, + () => _navigateWeek(-1), + ), + Text( + _getMonthYear(), + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: AppColors.krowCharcoal, + ), + ), + _buildNavButton( + LucideIcons.chevronRight, + () => _navigateWeek(1), + ), + ], + ), + ), + // Days Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: weekDates.map((date) => _buildDayItem(date)).toList(), + ), + ], + ), + ); + } + + Widget _buildNavButton(IconData icon, VoidCallback onTap) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 32, + height: 32, + decoration: const BoxDecoration( + color: Color(0xFFF1F5F9), // slate-100 + shape: BoxShape.circle, + ), + child: Icon(icon, size: 20, color: AppColors.krowMuted), + ), + ); + } + + Widget _buildDayItem(DateTime date) { + final isSelected = _isSelected(date); + final dayKey = _getDayKey(date); + final isAvailable = _availability[dayKey] ?? false; + final isToday = _isToday(date); + + return Expanded( + child: GestureDetector( + onTap: () => setState(() => _selectedDate = date), + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 2), + padding: const EdgeInsets.symmetric(vertical: 12), + decoration: BoxDecoration( + color: isSelected + ? AppColors.krowBlue + : (isAvailable + ? const Color(0xFFECFDF5) + : const Color(0xFFF8FAFC)), // emerald-50 or slate-50 + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: isSelected + ? AppColors.krowBlue + : (isAvailable + ? const Color(0xFFA7F3D0) + : Colors.transparent), // emerald-200 + ), + boxShadow: isSelected + ? [ + BoxShadow( + color: AppColors.krowBlue.withOpacity(0.3), + blurRadius: 8, + offset: const Offset(0, 4), + ), + ] + : null, + ), + child: Stack( + clipBehavior: Clip.none, + alignment: Alignment.center, + children: [ + Column( + children: [ + Text( + date.day.toString().padLeft(2, '0'), + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: isSelected + ? Colors.white + : (isAvailable + ? const Color(0xFF047857) + : AppColors.krowMuted), // emerald-700 + ), + ), + const SizedBox(height: 2), + Text( + _formatDay(date), + style: TextStyle( + fontSize: 10, + color: isSelected + ? Colors.white.withOpacity(0.8) + : (isAvailable + ? const Color(0xFF047857) + : AppColors.krowMuted), + ), + ), + ], + ), + if (isToday && !isSelected) + Positioned( + bottom: -8, + child: Container( + width: 6, + height: 6, + decoration: const BoxDecoration( + color: AppColors.krowBlue, + shape: BoxShape.circle, + ), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildSelectedDayAvailability( + String selectedDayKey, + bool isAvailable, + ) { + final dateStr = DateFormat('EEEE, MMM d').format(_selectedDate); + + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + children: [ + // Header Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + dateStr, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: AppColors.krowCharcoal, + ), + ), + Text( + isAvailable ? 'You are available' : 'Not available', + style: const TextStyle( + fontSize: 14, + color: AppColors.krowMuted, + ), + ), + ], + ), + Switch( + value: isAvailable, + onChanged: (val) => _toggleDayAvailability(selectedDayKey), + activeColor: AppColors.krowBlue, + ), + ], + ), + + const SizedBox(height: 16), + + // Time Slots + ..._timeSlots.map((slot) { + final isActive = _isTimeSlotActive(slot['slotId']); + // Determine styles based on state + final isEnabled = + isAvailable; // If day is off, slots are disabled visually + + // Container style + Color bgColor; + Color borderColor; + + if (!isEnabled) { + bgColor = const Color(0xFFF8FAFC); // slate-50 + borderColor = const Color(0xFFF1F5F9); // slate-100 + } else if (isActive) { + bgColor = AppColors.krowBlue.withOpacity(0.05); + borderColor = AppColors.krowBlue.withOpacity(0.2); + } else { + bgColor = const Color(0xFFF8FAFC); // slate-50 + borderColor = const Color(0xFFE2E8F0); // slate-200 + } + + // Text colors + final titleColor = (isEnabled && isActive) + ? AppColors.krowCharcoal + : AppColors.krowMuted; + final subtitleColor = (isEnabled && isActive) + ? AppColors.krowMuted + : Colors.grey.shade400; + + return GestureDetector( + onTap: isEnabled ? () => _toggleTimeSlot(slot['slotId']) : null, + child: AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: bgColor, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: borderColor, width: 2), + ), + child: Row( + children: [ + // Icon + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: slot['bg'], + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + slot['icon'], + color: slot['iconColor'], + size: 20, + ), + ), + const SizedBox(width: 12), + // Text + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + slot['label'], + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: titleColor, + ), + ), + Text( + slot['timeRange'], + style: TextStyle( + fontSize: 12, + color: subtitleColor, + ), + ), + ], + ), + ), + // Checkbox indicator + if (isEnabled && isActive) + Container( + width: 24, + height: 24, + decoration: const BoxDecoration( + color: AppColors.krowBlue, + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.check, + size: 16, + color: Colors.white, + ), + ) + else if (isEnabled && !isActive) + Container( + width: 24, + height: 24, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: const Color(0xFFCBD5E1), + width: 2, + ), // slate-300 + ), + ), + ], + ), + ), + ); + }).toList(), + ], + ), + ); + } + + Widget _buildInfoCard() { + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.05), + borderRadius: BorderRadius.circular(12), + ), + child: const Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(LucideIcons.clock, size: 20, color: AppColors.krowBlue), + SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Auto-Match uses your availability', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: AppColors.krowCharcoal, + ), + ), + SizedBox(height: 2), + Text( + "When enabled, you'll only be matched with shifts during your available times.", + style: TextStyle(fontSize: 12, color: AppColors.krowMuted), + ), + ], + ), + ), + ], + ), + ); + } +} + +class AppColors { + static const Color krowBlue = Color(0xFF0A39DF); + static const Color krowYellow = Color(0xFFFFED4A); + static const Color krowCharcoal = Color(0xFF121826); + static const Color krowMuted = Color(0xFF6A7382); + static const Color krowBorder = Color(0xFFE3E6E9); + static const Color krowBackground = Color(0xFFFAFBFC); + + static const Color white = Colors.white; + static const Color black = Colors.black; +} diff --git a/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page_new.dart b/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page_new.dart new file mode 100644 index 00000000..ef684b8b --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/presentation/pages/availability_page_new.dart @@ -0,0 +1,693 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_modular/flutter_modular.dart' hide ModularWatchExtension; +import 'package:intl/intl.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +import '../blocs/availability_bloc.dart'; +import '../blocs/availability_event.dart'; +import '../blocs/availability_state.dart'; +import 'package:krow_domain/krow_domain.dart'; + +class AvailabilityPage extends StatefulWidget { + const AvailabilityPage({super.key}); + + @override + State createState() => _AvailabilityPageState(); +} + +class _AvailabilityPageState extends State { + final AvailabilityBloc _bloc = Modular.get(); + + @override + void initState() { + super.initState(); + _calculateInitialWeek(); + } + + void _calculateInitialWeek() { + final today = DateTime.now(); + final day = today.weekday; // Mon=1, Sun=7 + final diff = day - 1; // Assuming Monday start + DateTime currentWeekStart = today.subtract(Duration(days: diff)); + currentWeekStart = DateTime( + currentWeekStart.year, + currentWeekStart.month, + currentWeekStart.day, + ); + _bloc.add(LoadAvailability(currentWeekStart)); + } + + @override + Widget build(BuildContext context) { + return BlocProvider.value( + value: _bloc, + child: Scaffold( + backgroundColor: AppColors.krowBackground, + body: BlocBuilder( + builder: (context, state) { + if (state is AvailabilityLoading) { + return const Center(child: CircularProgressIndicator()); + } else if (state is AvailabilityLoaded) { + return SingleChildScrollView( + padding: const EdgeInsets.only(bottom: 100), + child: Column( + children: [ + _buildHeader(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + _buildQuickSet(context), + const SizedBox(height: 24), + _buildWeekNavigation(context, state), + const SizedBox(height: 24), + _buildSelectedDayAvailability( + context, + state.selectedDayAvailability, + ), + const SizedBox(height: 24), + _buildInfoCard(), + ], + ), + ), + ], + ), + ); + } else if (state is AvailabilityError) { + return Center(child: Text('Error: ${state.message}')); + } + return const SizedBox.shrink(); + }, + ), + ), + ); + } + + Widget _buildHeader() { + return Container( + padding: const EdgeInsets.fromLTRB(20, 60, 20, 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + icon: const Icon( + LucideIcons.arrowLeft, + color: AppColors.krowCharcoal, + ), + onPressed: () => Modular.to.pop(), + ), + const SizedBox(width: 12), + Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + border: Border.all( + color: AppColors.krowBlue.withOpacity(0.2), + width: 2, + ), + shape: BoxShape.circle, + ), + child: Center( + child: CircleAvatar( + backgroundColor: AppColors.krowBlue.withOpacity( + 0.1, + ), + radius: 18, + child: const Text( + 'K', // Mock initial + style: TextStyle( + color: AppColors.krowBlue, + fontWeight: FontWeight.bold, + fontSize: 14, + ), + ), + ), + ), + ), + const SizedBox(width: 12), + const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'My Availability', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: AppColors.krowCharcoal, + ), + ), + Text( + 'Set when you can work', + style: TextStyle( + fontSize: 14, + color: AppColors.krowMuted, + ), + ), + ], + ), + ], + ), + ], + ), + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.1), + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.calendar, + color: AppColors.krowBlue, + size: 20, + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildQuickSet(BuildContext context) { + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Quick Set Availability', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF333F48), + ), + ), + const SizedBox(height: 12), + Row( + children: [ + Expanded( + child: _buildQuickSetButton( + context, + 'All Week', + 'all', + ), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + context, + 'Weekdays', + 'weekdays', + ), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + context, + 'Weekends', + 'weekends', + ), + ), + const SizedBox(width: 8), + Expanded( + child: _buildQuickSetButton( + context, + 'Clear All', + 'clear', + isDestructive: true, + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildQuickSetButton( + BuildContext context, + String label, + String type, { + bool isDestructive = false, + }) { + return SizedBox( + height: 32, + child: OutlinedButton( + onPressed: () => context.read().add(PerformQuickSet(type)), + style: OutlinedButton.styleFrom( + padding: EdgeInsets.zero, + side: BorderSide( + color: isDestructive + ? Colors.red.withOpacity(0.2) + : AppColors.krowBlue.withOpacity(0.2), + ), + backgroundColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + foregroundColor: isDestructive ? Colors.red : AppColors.krowBlue, + ), + child: Text( + label, + style: const TextStyle(fontSize: 10, fontWeight: FontWeight.w500), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ); + } + + Widget _buildWeekNavigation(BuildContext context, AvailabilityLoaded state) { + // Middle date for month display + final middleDate = state.currentWeekStart.add(const Duration(days: 3)); + final monthYear = DateFormat('MMMM yyyy').format(middleDate); + + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + children: [ + // Nav Header + Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _buildNavButton( + LucideIcons.chevronLeft, + () => context.read().add(const NavigateWeek(-1)), + ), + Text( + monthYear, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: AppColors.krowCharcoal, + ), + ), + _buildNavButton( + LucideIcons.chevronRight, + () => context.read().add(const NavigateWeek(1)), + ), + ], + ), + ), + // Days Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: state.days.map((day) => _buildDayItem(context, day, state.selectedDate)).toList(), + ), + ], + ), + ); + } + + Widget _buildNavButton(IconData icon, VoidCallback onTap) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 32, + height: 32, + decoration: const BoxDecoration( + color: Color(0xFFF1F5F9), // slate-100 + shape: BoxShape.circle, + ), + child: Icon(icon, size: 20, color: AppColors.krowMuted), + ), + ); + } + + Widget _buildDayItem(BuildContext context, DayAvailability day, DateTime selectedDate) { + final isSelected = AvailabilityLoaded.isSameDay(day.date, selectedDate); + final isAvailable = day.isAvailable; + final isToday = AvailabilityLoaded.isSameDay(day.date, DateTime.now()); + + return Expanded( + child: GestureDetector( + onTap: () => context.read().add(SelectDate(day.date)), + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 2), + padding: const EdgeInsets.symmetric(vertical: 12), + decoration: BoxDecoration( + color: isSelected + ? AppColors.krowBlue + : (isAvailable + ? const Color(0xFFECFDF5) + : const Color(0xFFF8FAFC)), // emerald-50 or slate-50 + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: isSelected + ? AppColors.krowBlue + : (isAvailable + ? const Color(0xFFA7F3D0) + : Colors.transparent), // emerald-200 + ), + boxShadow: isSelected + ? [ + BoxShadow( + color: AppColors.krowBlue.withOpacity(0.3), + blurRadius: 8, + offset: const Offset(0, 4), + ), + ] + : null, + ), + child: Stack( + clipBehavior: Clip.none, + alignment: Alignment.center, + children: [ + Column( + children: [ + Text( + day.date.day.toString().padLeft(2, '0'), + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: isSelected + ? Colors.white + : (isAvailable + ? const Color(0xFF047857) + : AppColors.krowMuted), // emerald-700 + ), + ), + const SizedBox(height: 2), + Text( + DateFormat('EEE').format(day.date), + style: TextStyle( + fontSize: 10, + color: isSelected + ? Colors.white.withOpacity(0.8) + : (isAvailable + ? const Color(0xFF047857) + : AppColors.krowMuted), + ), + ), + ], + ), + if (isToday && !isSelected) + Positioned( + bottom: -8, + child: Container( + width: 6, + height: 6, + decoration: const BoxDecoration( + color: AppColors.krowBlue, + shape: BoxShape.circle, + ), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildSelectedDayAvailability( + BuildContext context, + DayAvailability day, + ) { + final dateStr = DateFormat('EEEE, MMM d').format(day.date); + final isAvailable = day.isAvailable; + + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + children: [ + // Header Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + dateStr, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: AppColors.krowCharcoal, + ), + ), + Text( + isAvailable ? 'You are available' : 'Not available', + style: const TextStyle( + fontSize: 14, + color: AppColors.krowMuted, + ), + ), + ], + ), + Switch( + value: isAvailable, + onChanged: (val) => context.read().add(ToggleDayStatus(day)), + activeColor: AppColors.krowBlue, + ), + ], + ), + + const SizedBox(height: 16), + + // Time Slots (only from Domain) + ...day.slots.map((slot) { + // Get UI config for this slot ID + final uiConfig = _getSlotUiConfig(slot.id); + + return _buildTimeSlotItem(context, day, slot, uiConfig); + }).toList(), + ], + ), + ); + } + + Map _getSlotUiConfig(String slotId) { + switch (slotId) { + case 'morning': + return { + 'icon': LucideIcons.sunrise, + 'bg': const Color(0xFFE6EBF9), // bg-[#0032A0]/10 + 'iconColor': const Color(0xFF0032A0), + }; + case 'afternoon': + return { + 'icon': LucideIcons.sun, + 'bg': const Color(0xFFCCD6EC), // bg-[#0032A0]/20 + 'iconColor': const Color(0xFF0032A0), + }; + case 'evening': + return { + 'icon': LucideIcons.moon, + 'bg': const Color(0xFFEBEDEE), // bg-[#333F48]/10 + 'iconColor': const Color(0xFF333F48), + }; + default: + return { + 'icon': LucideIcons.clock, + 'bg': Colors.grey.shade100, + 'iconColor': Colors.grey, + }; + } + } + + Widget _buildTimeSlotItem( + BuildContext context, + DayAvailability day, + AvailabilitySlot slot, + Map uiConfig + ) { + // Determine styles based on state + final isEnabled = day.isAvailable; + final isActive = slot.isAvailable; + + // Container style + Color bgColor; + Color borderColor; + + if (!isEnabled) { + bgColor = const Color(0xFFF8FAFC); // slate-50 + borderColor = const Color(0xFFF1F5F9); // slate-100 + } else if (isActive) { + bgColor = AppColors.krowBlue.withOpacity(0.05); + borderColor = AppColors.krowBlue.withOpacity(0.2); + } else { + bgColor = const Color(0xFFF8FAFC); // slate-50 + borderColor = const Color(0xFFE2E8F0); // slate-200 + } + + // Text colors + final titleColor = (isEnabled && isActive) + ? AppColors.krowCharcoal + : AppColors.krowMuted; + final subtitleColor = (isEnabled && isActive) + ? AppColors.krowMuted + : Colors.grey.shade400; + + return GestureDetector( + onTap: isEnabled ? () => context.read().add(ToggleSlotStatus(day, slot.id)) : null, + child: AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: bgColor, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: borderColor, width: 2), + ), + child: Row( + children: [ + // Icon + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: uiConfig['bg'], + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + uiConfig['icon'], + color: uiConfig['iconColor'], + size: 20, + ), + ), + const SizedBox(width: 12), + // Text + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + slot.label, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: titleColor, + ), + ), + Text( + slot.timeRange, + style: TextStyle( + fontSize: 12, + color: subtitleColor, + ), + ), + ], + ), + ), + // Checkbox indicator + if (isEnabled && isActive) + Container( + width: 24, + height: 24, + decoration: const BoxDecoration( + color: AppColors.krowBlue, + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.check, + size: 16, + color: Colors.white, + ), + ) + else if (isEnabled && !isActive) + Container( + width: 24, + height: 24, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: const Color(0xFFCBD5E1), + width: 2, + ), // slate-300 + ), + ), + ], + ), + ), + ); + } + + Widget _buildInfoCard() { + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.05), + borderRadius: BorderRadius.circular(12), + ), + child: const Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(LucideIcons.clock, size: 20, color: AppColors.krowBlue), + SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Auto-Match uses your availability', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: AppColors.krowCharcoal, + ), + ), + SizedBox(height: 2), + Text( + "When enabled, you'll only be matched with shifts during your available times.", + style: TextStyle(fontSize: 12, color: AppColors.krowMuted), + ), + ], + ), + ), + ], + ), + ); + } +} + +class AppColors { + static const Color krowBlue = Color(0xFF0A39DF); + static const Color krowYellow = Color(0xFFFFED4A); + static const Color krowCharcoal = Color(0xFF121826); + static const Color krowMuted = Color(0xFF6A7382); + static const Color krowBorder = Color(0xFFE3E6E9); + static const Color krowBackground = Color(0xFFFAFBFC); + + static const Color white = Colors.white; + static const Color black = Colors.black; +} diff --git a/apps/mobile/packages/features/staff/availability/lib/src/staff_availability_module.dart b/apps/mobile/packages/features/staff/availability/lib/src/staff_availability_module.dart new file mode 100644 index 00000000..199f0d10 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/src/staff_availability_module.dart @@ -0,0 +1,33 @@ +import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_data_connect/krow_data_connect.dart'; +import 'data/repositories/availability_repository_impl.dart'; +import 'domain/repositories/availability_repository.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'; +import 'presentation/blocs/availability_bloc.dart'; +import 'presentation/pages/availability_page.dart'; + +class StaffAvailabilityModule extends Module { + @override + void binds(i) { + // Data Sources + i.add(StaffRepositoryMock.new); + + // Repository + i.add(AvailabilityRepositoryImpl.new); + + // UseCases + i.add(GetWeeklyAvailabilityUseCase.new); + i.add(UpdateDayAvailabilityUseCase.new); + i.add(ApplyQuickSetUseCase.new); + + // BLoC + i.add(AvailabilityBloc.new); + } + + @override + void routes(r) { + r.child('/', child: (_) => const AvailabilityPage()); + } +} diff --git a/apps/mobile/packages/features/staff/availability/lib/staff_availability.dart b/apps/mobile/packages/features/staff/availability/lib/staff_availability.dart new file mode 100644 index 00000000..07f01569 --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/lib/staff_availability.dart @@ -0,0 +1,3 @@ +library staff_availability; + +export 'src/staff_availability_module.dart'; diff --git a/apps/mobile/packages/features/staff/availability/pubspec.yaml b/apps/mobile/packages/features/staff/availability/pubspec.yaml new file mode 100644 index 00000000..1b20e6bd --- /dev/null +++ b/apps/mobile/packages/features/staff/availability/pubspec.yaml @@ -0,0 +1,35 @@ +name: staff_availability +description: Staff Availability Feature +version: 0.0.1 +publish_to: 'none' +resolution: workspace + +environment: + sdk: '>=3.0.0 <4.0.0' + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + flutter_bloc: ^8.1.3 + equatable: ^2.0.5 + intl: ^0.20.0 + lucide_icons: ^0.257.0 + flutter_modular: ^6.3.2 + + # Internal packages + core_localization: + path: ../../../core_localization + design_system: + path: ../../../design_system + krow_domain: + path: ../../../domain + krow_data_connect: + path: ../../../data_connect + krow_core: + path: ../../../core + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^3.0.0 diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories/clock_in_repository_impl.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories/clock_in_repository_impl.dart new file mode 100644 index 00000000..ef8e4211 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories/clock_in_repository_impl.dart @@ -0,0 +1,115 @@ +import 'package:krow_data_connect/krow_data_connect.dart'; +import 'package:krow_domain/krow_domain.dart'; +import 'package:intl/intl.dart'; +import '../../domain/repositories/clock_in_repository_interface.dart'; + +/// Implementation of [ClockInRepositoryInterface]. +/// +/// Delegates shift data retrieval to [ShiftsRepositoryMock] and manages purely +/// local state for attendance (check-in/out) for the prototype phase. +class ClockInRepositoryImpl implements ClockInRepositoryInterface { + final ShiftsRepositoryMock _shiftsMock; + + // Local state for the session (mocking backend state) + bool _isCheckedIn = false; + DateTime? _checkInTime; + DateTime? _checkOutTime; + String? _activeShiftId; + + ClockInRepositoryImpl({ShiftsRepositoryMock? shiftsMock}) + : _shiftsMock = shiftsMock ?? ShiftsRepositoryMock(); + + @override + Future getTodaysShift() async { + final shifts = await _shiftsMock.getMyShifts(); + + if (shifts.isEmpty) return null; + + final now = DateTime.now(); + final todayStr = DateFormat('yyyy-MM-dd').format(now); + + // Find a shift effectively for today, or mock one + try { + return shifts.firstWhere((s) => s.date == todayStr); + } catch (_) { + final original = shifts.first; + // Mock "today's" shift based on the first available shift + return Shift( + id: original.id, + title: original.title, + clientName: original.clientName, + logoUrl: original.logoUrl, + hourlyRate: original.hourlyRate, + location: original.location, + locationAddress: original.locationAddress, + date: todayStr, + startTime: original.startTime, // Use original times or calculate + endTime: original.endTime, + createdDate: original.createdDate, + status: 'assigned', + latitude: original.latitude, + longitude: original.longitude, + description: original.description, + managers: original.managers, + ); + } + } + + @override + Future> getAttendanceStatus() async { + await Future.delayed(const Duration(milliseconds: 300)); + return _getCurrentStatusMap(); + } + + @override + Future> clockIn({required String shiftId, String? notes}) async { + await Future.delayed(const Duration(seconds: 1)); // Simulate network + + _isCheckedIn = true; + _checkInTime = DateTime.now(); + _activeShiftId = shiftId; + _checkOutTime = null; // Reset for new check-in? Or keep for history? + // Simple mock logic: reset check-out on new check-in. + + return _getCurrentStatusMap(); + } + + @override + Future> clockOut({String? notes, int? breakTimeMinutes}) async { + await Future.delayed(const Duration(seconds: 1)); // Simulate network + + _isCheckedIn = false; + _checkOutTime = DateTime.now(); + + return _getCurrentStatusMap(); + } + + @override + Future>> getActivityLog() async { + await Future.delayed(const Duration(milliseconds: 500)); + // Mock data + return [ + { + 'date': DateTime.now().subtract(const Duration(days: 1)), + 'start': '09:00 AM', + 'end': '05:00 PM', + 'hours': '8h', + }, + { + 'date': DateTime.now().subtract(const Duration(days: 2)), + 'start': '09:00 AM', + 'end': '05:00 PM', + 'hours': '8h', + }, + ]; + } + + Map _getCurrentStatusMap() { + return { + 'isCheckedIn': _isCheckedIn, + 'checkInTime': _checkInTime, + 'checkOutTime': _checkOutTime, + 'activeShiftId': _activeShiftId, + }; + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart new file mode 100644 index 00000000..bf7cb9d2 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart @@ -0,0 +1,19 @@ +import 'package:krow_core/core.dart'; + +/// Represents the arguments required for the [ClockInUseCase]. +class ClockInArguments extends UseCaseArgument { + /// The ID of the shift to clock in to. + final String shiftId; + + /// Optional notes provided by the user during clock-in. + final String? notes; + + /// Creates a [ClockInArguments] instance. + const ClockInArguments({ + required this.shiftId, + this.notes, + }); + + @override + List get props => [shiftId, notes]; +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart new file mode 100644 index 00000000..9b7fd324 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart @@ -0,0 +1,19 @@ +import 'package:krow_core/core.dart'; + +/// Represents the arguments required for the [ClockOutUseCase]. +class ClockOutArguments extends UseCaseArgument { + /// Optional notes provided by the user during clock-out. + final String? notes; + + /// Optional break time in minutes. + final int? breakTimeMinutes; + + /// Creates a [ClockOutArguments] instance. + const ClockOutArguments({ + this.notes, + this.breakTimeMinutes, + }); + + @override + List get props => [notes, breakTimeMinutes]; +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository.dart new file mode 100644 index 00000000..c27c665f --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository.dart @@ -0,0 +1,39 @@ +import 'package:krow_domain/krow_domain.dart'; + +/// Repository interface for Clock In/Out functionality +abstract class ClockInRepository { + + /// Retrieves the shift assigned to the user for the current day. + /// Returns null if no shift is assigned for today. + Future getTodaysShift(); + + /// Gets the current attendance status (e.g., checked in or not, times). + /// This helps in restoring the UI state if the app was killed. + Future getAttendanceStatus(); + + /// Checks the user in for the specified [shiftId]. + /// Returns the updated [AttendanceStatus]. + Future clockIn({required String shiftId, String? notes}); + + /// Checks the user out for the currently active shift. + /// Optionally accepts [breakTimeMinutes] if tracked. + Future clockOut({String? notes, int? breakTimeMinutes}); + + /// Retrieves a list of recent clock-in/out activities. + Future>> getActivityLog(); +} + +/// Simple entity to hold attendance state +class AttendanceStatus { + final bool isCheckedIn; + final DateTime? checkInTime; + final DateTime? checkOutTime; + final String? activeShiftId; + + const AttendanceStatus({ + this.isCheckedIn = false, + this.checkInTime, + this.checkOutTime, + this.activeShiftId, + }); +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository_interface.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository_interface.dart new file mode 100644 index 00000000..5049987e --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/repositories/clock_in_repository_interface.dart @@ -0,0 +1,35 @@ +import 'package:krow_domain/krow_domain.dart'; + +/// Interface for the Clock In feature repository. +/// +/// Defines the methods for managing clock-in/out operations and retrieving +/// related shift and attendance data. +abstract interface class ClockInRepositoryInterface { + /// Retrieves the shift scheduled for today. + Future getTodaysShift(); + + /// Retrieves the current attendance status (check-in time, check-out time, etc.). + /// + /// Returns a Map containing: + /// - 'isCheckedIn': bool + /// - 'checkInTime': DateTime? + /// - 'checkOutTime': DateTime? + Future> getAttendanceStatus(); + + /// Clocks the user in for a specific shift. + Future> clockIn({ + required String shiftId, + String? notes, + }); + + /// Clocks the user out of the current shift. + Future> clockOut({ + String? notes, + int? breakTimeMinutes, + }); + + /// Retrieves the history of clock-in/out activity. + /// + /// Returns a list of maps, where each map represents an activity entry. + Future>> getActivityLog(); +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_in_usecase.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_in_usecase.dart new file mode 100644 index 00000000..a99ae43e --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_in_usecase.dart @@ -0,0 +1,18 @@ +import 'package:krow_core/core.dart'; +import '../repositories/clock_in_repository_interface.dart'; +import '../arguments/clock_in_arguments.dart'; + +/// Use case for clocking in a user. +class ClockInUseCase implements UseCase> { + final ClockInRepositoryInterface _repository; + + ClockInUseCase(this._repository); + + @override + Future> call(ClockInArguments arguments) { + return _repository.clockIn( + shiftId: arguments.shiftId, + notes: arguments.notes, + ); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_out_usecase.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_out_usecase.dart new file mode 100644 index 00000000..dbea2b26 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/clock_out_usecase.dart @@ -0,0 +1,18 @@ +import 'package:krow_core/core.dart'; +import '../repositories/clock_in_repository_interface.dart'; +import '../arguments/clock_out_arguments.dart'; + +/// Use case for clocking out a user. +class ClockOutUseCase implements UseCase> { + final ClockInRepositoryInterface _repository; + + ClockOutUseCase(this._repository); + + @override + Future> call(ClockOutArguments arguments) { + return _repository.clockOut( + notes: arguments.notes, + breakTimeMinutes: arguments.breakTimeMinutes, + ); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_activity_log_usecase.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_activity_log_usecase.dart new file mode 100644 index 00000000..04b908dc --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_activity_log_usecase.dart @@ -0,0 +1,14 @@ +import 'package:krow_core/core.dart'; +import '../repositories/clock_in_repository_interface.dart'; + +/// Use case for retrieving the activity log. +class GetActivityLogUseCase implements NoInputUseCase>> { + final ClockInRepositoryInterface _repository; + + GetActivityLogUseCase(this._repository); + + @override + Future>> call() { + return _repository.getActivityLog(); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_attendance_status_usecase.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_attendance_status_usecase.dart new file mode 100644 index 00000000..e0722339 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_attendance_status_usecase.dart @@ -0,0 +1,14 @@ +import 'package:krow_core/core.dart'; +import '../repositories/clock_in_repository_interface.dart'; + +/// Use case for getting the current attendance status (check-in/out times). +class GetAttendanceStatusUseCase implements NoInputUseCase> { + final ClockInRepositoryInterface _repository; + + GetAttendanceStatusUseCase(this._repository); + + @override + Future> call() { + return _repository.getAttendanceStatus(); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_todays_shift_usecase.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_todays_shift_usecase.dart new file mode 100644 index 00000000..54477dc0 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/usecases/get_todays_shift_usecase.dart @@ -0,0 +1,15 @@ +import 'package:krow_core/core.dart'; +import 'package:krow_domain/krow_domain.dart'; +import '../repositories/clock_in_repository_interface.dart'; + +/// Use case for retrieving the user's scheduled shift for today. +class GetTodaysShiftUseCase implements NoInputUseCase { + final ClockInRepositoryInterface _repository; + + GetTodaysShiftUseCase(this._repository); + + @override + Future call() { + return _repository.getTodaysShift(); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_bloc.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_bloc.dart new file mode 100644 index 00000000..e934e636 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_bloc.dart @@ -0,0 +1,129 @@ +import 'package:flutter_bloc/flutter_bloc.dart'; +import '../../domain/usecases/get_todays_shift_usecase.dart'; +import '../../domain/usecases/get_attendance_status_usecase.dart'; +import '../../domain/usecases/clock_in_usecase.dart'; +import '../../domain/usecases/clock_out_usecase.dart'; +import '../../domain/usecases/get_activity_log_usecase.dart'; +import '../../domain/arguments/clock_in_arguments.dart'; +import '../../domain/arguments/clock_out_arguments.dart'; +import 'clock_in_event.dart'; +import 'clock_in_state.dart'; + +class ClockInBloc extends Bloc { + final GetTodaysShiftUseCase _getTodaysShift; + final GetAttendanceStatusUseCase _getAttendanceStatus; + final ClockInUseCase _clockIn; + final ClockOutUseCase _clockOut; + final GetActivityLogUseCase _getActivityLog; + + ClockInBloc({ + required GetTodaysShiftUseCase getTodaysShift, + required GetAttendanceStatusUseCase getAttendanceStatus, + required ClockInUseCase clockIn, + required ClockOutUseCase clockOut, + required GetActivityLogUseCase getActivityLog, + }) : _getTodaysShift = getTodaysShift, + _getAttendanceStatus = getAttendanceStatus, + _clockIn = clockIn, + _clockOut = clockOut, + _getActivityLog = getActivityLog, + super(ClockInState(selectedDate: DateTime.now())) { + on(_onLoaded); + on(_onDateSelected); + on(_onCheckIn); + on(_onCheckOut); + on(_onModeChanged); + } + + AttendanceStatus _mapToStatus(Map map) { + return AttendanceStatus( + isCheckedIn: map['isCheckedIn'] as bool? ?? false, + checkInTime: map['checkInTime'] as DateTime?, + checkOutTime: map['checkOutTime'] as DateTime?, + activeShiftId: map['activeShiftId'] as String?, + ); + } + + Future _onLoaded( + ClockInPageLoaded event, + Emitter emit, + ) async { + emit(state.copyWith(status: ClockInStatus.loading)); + try { + final shift = await _getTodaysShift(); + final statusMap = await _getAttendanceStatus(); + final activity = await _getActivityLog(); + + emit(state.copyWith( + status: ClockInStatus.success, + todayShift: shift, + attendance: _mapToStatus(statusMap), + activityLog: activity, + )); + } catch (e) { + emit(state.copyWith( + status: ClockInStatus.failure, + errorMessage: e.toString(), + )); + } + } + + void _onDateSelected( + DateSelected event, + Emitter emit, + ) { + emit(state.copyWith(selectedDate: event.date)); + } + + void _onModeChanged( + CheckInModeChanged event, + Emitter emit, + ) { + emit(state.copyWith(checkInMode: event.mode)); + } + + Future _onCheckIn( + CheckInRequested event, + Emitter emit, + ) async { + emit(state.copyWith(status: ClockInStatus.actionInProgress)); + try { + final newStatusMap = await _clockIn( + ClockInArguments(shiftId: event.shiftId, notes: event.notes), + ); + emit(state.copyWith( + status: ClockInStatus.success, + attendance: _mapToStatus(newStatusMap), + )); + } catch (e) { + emit(state.copyWith( + status: ClockInStatus.failure, + errorMessage: e.toString(), + )); + } + } + + Future _onCheckOut( + CheckOutRequested event, + Emitter emit, + ) async { + emit(state.copyWith(status: ClockInStatus.actionInProgress)); + try { + final newStatusMap = await _clockOut( + ClockOutArguments( + notes: event.notes, + breakTimeMinutes: 0, // Should be passed from event if supported + ), + ); + emit(state.copyWith( + status: ClockInStatus.success, + attendance: _mapToStatus(newStatusMap), + )); + } catch (e) { + emit(state.copyWith( + status: ClockInStatus.failure, + errorMessage: e.toString(), + )); + } + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_event.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_event.dart new file mode 100644 index 00000000..d35647fb --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_event.dart @@ -0,0 +1,48 @@ +import 'package:equatable/equatable.dart'; + +abstract class ClockInEvent extends Equatable { + const ClockInEvent(); + + @override + List get props => []; +} + +class ClockInPageLoaded extends ClockInEvent {} + +class DateSelected extends ClockInEvent { + final DateTime date; + + const DateSelected(this.date); + + @override + List get props => [date]; +} + +class CheckInRequested extends ClockInEvent { + final String shiftId; + final String? notes; + + const CheckInRequested({required this.shiftId, this.notes}); + + @override + List get props => [shiftId, notes]; +} + +class CheckOutRequested extends ClockInEvent { + final String? notes; + final int? breakTimeMinutes; + + const CheckOutRequested({this.notes, this.breakTimeMinutes}); + + @override + List get props => [notes, breakTimeMinutes]; +} + +class CheckInModeChanged extends ClockInEvent { + final String mode; + + const CheckInModeChanged(this.mode); + + @override + List get props => [mode]; +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_state.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_state.dart new file mode 100644 index 00000000..8e6fe30c --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/bloc/clock_in_state.dart @@ -0,0 +1,73 @@ +import 'package:equatable/equatable.dart'; +import 'package:krow_domain/krow_domain.dart'; + +enum ClockInStatus { initial, loading, success, failure, actionInProgress } + +/// View model representing the user's current attendance state. +class AttendanceStatus extends Equatable { + final bool isCheckedIn; + final DateTime? checkInTime; + final DateTime? checkOutTime; + final String? activeShiftId; + + const AttendanceStatus({ + this.isCheckedIn = false, + this.checkInTime, + this.checkOutTime, + this.activeShiftId, + }); + + @override + List get props => [isCheckedIn, checkInTime, checkOutTime, activeShiftId]; +} + +class ClockInState extends Equatable { + final ClockInStatus status; + final Shift? todayShift; + final AttendanceStatus attendance; + final List> activityLog; + final DateTime selectedDate; + final String checkInMode; + final String? errorMessage; + + const ClockInState({ + this.status = ClockInStatus.initial, + this.todayShift, + this.attendance = const AttendanceStatus(), + this.activityLog = const [], + required this.selectedDate, + this.checkInMode = 'swipe', + this.errorMessage, + }); + + ClockInState copyWith({ + ClockInStatus? status, + Shift? todayShift, + AttendanceStatus? attendance, + List>? activityLog, + DateTime? selectedDate, + String? checkInMode, + String? errorMessage, + }) { + return ClockInState( + status: status ?? this.status, + todayShift: todayShift ?? this.todayShift, + attendance: attendance ?? this.attendance, + activityLog: activityLog ?? this.activityLog, + selectedDate: selectedDate ?? this.selectedDate, + checkInMode: checkInMode ?? this.checkInMode, + errorMessage: errorMessage, + ); + } + + @override + List get props => [ + status, + todayShift, + attendance, + activityLog, + selectedDate, + checkInMode, + errorMessage, + ]; +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/pages/clock_in_page.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/pages/clock_in_page.dart new file mode 100644 index 00000000..1ca438d7 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/pages/clock_in_page.dart @@ -0,0 +1,774 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_modular/flutter_modular.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import 'package:krow_domain/krow_domain.dart'; +import '../theme/app_colors.dart'; +import '../bloc/clock_in_bloc.dart'; +import '../bloc/clock_in_event.dart'; +import '../bloc/clock_in_state.dart'; +import '../widgets/attendance_card.dart'; +import '../widgets/date_selector.dart'; +import '../widgets/swipe_to_check_in.dart'; +import '../widgets/lunch_break_modal.dart'; +import '../widgets/commute_tracker.dart'; + +class ClockInPage extends StatefulWidget { + const ClockInPage({super.key}); + + @override + State createState() => _ClockInPageState(); +} + +class _ClockInPageState extends State { + late final ClockInBloc _bloc; + + @override + void initState() { + super.initState(); + _bloc = Modular.get(); + _bloc.add(ClockInPageLoaded()); + } + + @override + Widget build(BuildContext context) { + return BlocProvider.value( + value: _bloc, + child: BlocConsumer( + listener: (context, state) { + if (state.status == ClockInStatus.failure && state.errorMessage != null) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(state.errorMessage!)), + ); + } + }, + builder: (context, state) { + if (state.status == ClockInStatus.loading && state.todayShift == null) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + final todayShift = state.todayShift; + final checkInTime = state.attendance.checkInTime; + final checkOutTime = state.attendance.checkOutTime; + final isCheckedIn = state.attendance.isCheckedIn; + + // Format times for display + final checkInStr = checkInTime != null + ? DateFormat('h:mm a').format(checkInTime) + : '--:-- --'; + final checkOutStr = checkOutTime != null + ? DateFormat('h:mm a').format(checkOutTime) + : '--:-- --'; + + return Scaffold( + body: Container( + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Color(0xFFF8FAFC), // slate-50 + Colors.white, + ], + ), + ), + child: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.only(bottom: 100), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildHeader(), + + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + children: [ + // Commute Tracker (shows before date selector when applicable) + if (todayShift != null) + CommuteTracker( + shift: todayShift, + hasLocationConsent: false, // Mock value + isCommuteModeOn: false, // Mock value + distanceMeters: 500, // Mock value for demo + etaMinutes: 8, // Mock value for demo + ), + + // Date Selector + DateSelector( + selectedDate: state.selectedDate, + onSelect: (date) => _bloc.add(DateSelected(date)), + shiftDates: [ + DateFormat('yyyy-MM-dd').format(DateTime.now()), + ], + ), + const SizedBox(height: 20), + + // Today Attendance Section + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Today Attendance", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: AppColors.krowCharcoal, + ), + ), + ), + const SizedBox(height: 12), + GridView.count( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + crossAxisCount: 2, + mainAxisSpacing: 12, + crossAxisSpacing: 12, + childAspectRatio: 1.0, + children: [ + AttendanceCard( + type: AttendanceType.checkin, + title: "Check In", + value: checkInStr, + subtitle: checkInTime != null + ? "On Time" + : "Pending", + scheduledTime: "09:00 AM", + ), + AttendanceCard( + type: AttendanceType.checkout, + title: "Check Out", + value: checkOutStr, + subtitle: checkOutTime != null + ? "Go Home" + : "Pending", + scheduledTime: "05:00 PM", + ), + AttendanceCard( + type: AttendanceType.breaks, + title: "Break Time", + value: "00:30 min", + subtitle: "Scheduled 00:30 min", + ), + const AttendanceCard( + type: AttendanceType.days, + title: "Total Days", + value: "28", + subtitle: "Working Days", + ), + ], + ), + const SizedBox(height: 24), + + // Your Activity Header + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Your Activity", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: AppColors.krowCharcoal, + ), + ), + GestureDetector( + onTap: () { + debugPrint('Navigating to shifts...'); + }, + child: const Row( + children: [ + Text( + "View all", + style: TextStyle( + color: AppColors.krowBlue, + fontWeight: FontWeight.w500, + ), + ), + Icon( + LucideIcons.chevronRight, + size: 16, + color: AppColors.krowBlue, + ), + ], + ), + ), + ], + ), + const SizedBox(height: 12), + + // Check-in Mode Toggle + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Check-in Method", + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF334155), // slate-700 + ), + ), + ), + const SizedBox(height: 8), + Container( + padding: const EdgeInsets.all(4), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), // slate-100 + borderRadius: BorderRadius.circular(12), + ), + child: Row( + children: [ + _buildModeTab("Swipe", LucideIcons.mapPin, 'swipe', state.checkInMode), + _buildModeTab("NFC Tap", LucideIcons.wifi, 'nfc', state.checkInMode), + ], + ), + ), + const SizedBox(height: 16), + + // Selected Shift Info Card + if (todayShift != null) + Container( + padding: const EdgeInsets.all(12), + margin: const EdgeInsets.only(bottom: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: const Color(0xFFE2E8F0), + ), // slate-200 + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "TODAY'S SHIFT", + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w600, + color: AppColors.krowBlue, + letterSpacing: 0.5, + ), + ), + const SizedBox(height: 2), + Text( + todayShift.title, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), // slate-800 + ), + ), + Text( + "${todayShift.clientName} • ${todayShift.location}", + style: const TextStyle( + fontSize: 12, + color: Color(0xFF64748B), // slate-500 + ), + ), + ], + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + const Text( + "9:00 AM - 5:00 PM", + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF475569), // slate-600 + ), + ), + Text( + "\$${todayShift.hourlyRate}/hr", + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: AppColors.krowBlue, + ), + ), + ], + ), + ], + ), + ), + + // Swipe To Check In / Checked Out State / No Shift State + if (todayShift != null && checkOutTime == null) ...[ + SwipeToCheckIn( + isCheckedIn: isCheckedIn, + mode: state.checkInMode, + isLoading: state.status == ClockInStatus.actionInProgress, + onCheckIn: () async { + // Show NFC dialog if mode is 'nfc' + if (state.checkInMode == 'nfc') { + await _showNFCDialog(context); + } else { + _bloc.add(CheckInRequested(shiftId: todayShift.id)); + } + }, + onCheckOut: () { + showDialog( + context: context, + builder: (context) => LunchBreakDialog( + onComplete: () { + Navigator.of(context).pop(); // Close dialog first + _bloc.add(const CheckOutRequested()); + }, + ), + ); + }, + ), + ] else if (todayShift != null && checkOutTime != null) ...[ + // Shift Completed State + Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: const Color(0xFFECFDF5), // emerald-50 + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: const Color(0xFFA7F3D0), + ), // emerald-200 + ), + child: Column( + children: [ + Container( + width: 48, + height: 48, + decoration: const BoxDecoration( + color: Color(0xFFD1FAE5), // emerald-100 + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.check, + color: Color(0xFF059669), // emerald-600 + size: 24, + ), + ), + const SizedBox(height: 12), + const Text( + "Shift Completed!", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Color(0xFF065F46), // emerald-800 + ), + ), + const SizedBox(height: 4), + const Text( + "Great work today", + style: TextStyle( + fontSize: 14, + color: Color(0xFF059669), // emerald-600 + ), + ), + ], + ), + ), + ] else ...[ + // No Shift State + Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), // slate-100 + borderRadius: BorderRadius.circular(16), + ), + child: Column( + children: [ + const Text( + "No confirmed shifts for today", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Color(0xFF475569), // slate-600 + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 4), + const Text( + "Accept a shift to clock in", + style: TextStyle( + fontSize: 14, + color: Color(0xFF64748B), // slate-500 + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ], + + // Checked In Banner + if (isCheckedIn && checkInTime != null) ...[ + const SizedBox(height: 12), + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFFECFDF5), // emerald-50 + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: const Color(0xFFA7F3D0), + ), // emerald-200 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Checked in at", + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF059669), + ), + ), + Text( + DateFormat('h:mm a').format(checkInTime), + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF065F46), + ), + ), + ], + ), + Container( + width: 40, + height: 40, + decoration: const BoxDecoration( + color: Color(0xFFD1FAE5), + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.check, + color: Color(0xFF059669), + ), + ), + ], + ), + ), + ], + + const SizedBox(height: 16), + + // Recent Activity List + ...state.activityLog.map( + (activity) => Container( + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFFF8F9FA), + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: const Color(0xFFF1F5F9), + ), // slate-100 + ), + child: Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: AppColors.krowBlue.withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + LucideIcons.mapPin, + color: AppColors.krowBlue, + size: 20, + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + DateFormat( + 'MMM d', + ).format(activity['date'] as DateTime), + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF0F172A), // slate-900 + ), + ), + Text( + "${activity['start']} - ${activity['end']}", + style: const TextStyle( + fontSize: 12, + color: Color(0xFF64748B), // slate-500 + ), + ), + ], + ), + ), + Text( + activity['hours'] as String, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: AppColors.krowBlue, + ), + ), + ], + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + }, + ), + ); + } + + Widget _buildModeTab(String label, IconData icon, String value, String currentMode) { + final isSelected = currentMode == value; + return Expanded( + child: GestureDetector( + onTap: () => _bloc.add(CheckInModeChanged(value)), + child: Container( + padding: const EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + color: isSelected ? Colors.white : Colors.transparent, + borderRadius: BorderRadius.circular(8), + boxShadow: isSelected + ? [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ] + : [], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + icon, + size: 16, + color: isSelected ? Colors.black : Colors.grey, + ), + const SizedBox(width: 6), + Text( + label, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: isSelected ? Colors.black : Colors.grey, + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildHeader() { + return Padding( + padding: const EdgeInsets.fromLTRB(20, 24, 20, 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Container( + width: 48, + height: 48, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: AppColors.krowBlue.withOpacity(0.2), + width: 2, + ), + ), + child: CircleAvatar( + backgroundColor: AppColors.krowBlue.withOpacity(0.1), + child: const Text( + 'K', + style: TextStyle( + color: AppColors.krowBlue, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + const SizedBox(width: 12), + const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Good Morning', + style: TextStyle(color: AppColors.krowMuted, fontSize: 12), + ), + Text( + 'Krower', + style: TextStyle( + color: AppColors.krowCharcoal, + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + Text( + 'Warehouse Assistant', + style: TextStyle(color: AppColors.krowMuted, fontSize: 12), + ), + ], + ), + ], + ), + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular( + 20, + ), // Rounded full for this page per design + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: const Icon( + LucideIcons.bell, + color: AppColors.krowMuted, + size: 20, + ), + ), + ], + ), + ); + } + + Future _showNFCDialog(BuildContext context) async { + bool scanned = false; + + // Using a local navigator context since we are in a dialog + await showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext dialogContext) { + return StatefulBuilder( + builder: (context, setState) { + return AlertDialog( + title: Text(scanned ? 'Tag Scanned!' : 'Scan NFC Tag'), + content: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 96, + height: 96, + decoration: BoxDecoration( + color: scanned + ? Colors.green.shade50 + : Colors.blue.shade50, + shape: BoxShape.circle, + ), + child: Icon( + scanned ? LucideIcons.check : LucideIcons.nfc, + size: 48, + color: scanned + ? Colors.green.shade600 + : Colors.blue.shade600, + ), + ), + const SizedBox(height: 24), + Text( + scanned ? 'Processing check-in...' : 'Ready to scan', + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 8), + Text( + scanned + ? 'Please wait...' + : 'Hold your phone near the NFC tag at the clock-in station', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.grey.shade600), + ), + if (!scanned) ...[ + const SizedBox(height: 24), + SizedBox( + width: double.infinity, + height: 56, + child: ElevatedButton.icon( + onPressed: () async { + setState(() { + scanned = true; + }); + // Simulate NFC scan delay + await Future.delayed( + const Duration(milliseconds: 1000), + ); + if (!context.mounted) return; + Navigator.of(dialogContext).pop(); + // Trigger BLoC event + // Need to access the bloc from the outer context or via passed reference + // Since _bloc is a field of the page state, we can use it if we are inside the page class + // But this dialog is just a function call. + // It's safer to just return a result + }, + icon: const Icon(LucideIcons.nfc, size: 24), + label: const Text( + 'Tap to Scan', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0047FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + ), + ), + ], + ], + ), + ); + }, + ); + }, + ); + + // After dialog closes, trigger the event if scan was successful (simulated) + // In real app, we would check the dialog result + if (scanned && _bloc.state.todayShift != null) { + _bloc.add(CheckInRequested(shiftId: _bloc.state.todayShift!.id)); + } + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/theme/app_colors.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/theme/app_colors.dart new file mode 100644 index 00000000..a41fe11f --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/theme/app_colors.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +class AppColors { + static const Color krowBlue = Color(0xFF0A39DF); + static const Color krowYellow = Color(0xFFFFED4A); + static const Color krowCharcoal = Color(0xFF121826); + static const Color krowMuted = Color(0xFF6A7382); + static const Color krowBorder = Color(0xFFE3E6E9); + static const Color krowBackground = Color(0xFFFAFBFC); + + static const Color white = Colors.white; + static const Color black = Colors.black; +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/attendance_card.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/attendance_card.dart new file mode 100644 index 00000000..4efc0f62 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/attendance_card.dart @@ -0,0 +1,129 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +enum AttendanceType { checkin, checkout, breaks, days } + +class AttendanceCard extends StatelessWidget { + final AttendanceType type; + final String title; + final String value; + final String subtitle; + final String? scheduledTime; + + const AttendanceCard({ + super.key, + required this.type, + required this.title, + required this.value, + required this.subtitle, + this.scheduledTime, + }); + + @override + Widget build(BuildContext context) { + final styles = _getStyles(type); + + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade100), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 36, + height: 36, + decoration: BoxDecoration( + color: styles.bgColor, + borderRadius: BorderRadius.circular(12), + ), + child: Icon(styles.icon, size: 16, color: styles.iconColor), + ), + const SizedBox(height: 12), + Text( + title, + style: const TextStyle( + fontSize: 12, + color: Color(0xFF64748B), // slate-500 + ), + ), + const SizedBox(height: 4), + Text( + value, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Color(0xFF0F172A), // slate-900 + ), + ), + if (scheduledTime != null) ...[ + const SizedBox(height: 2), + Text( + "Scheduled: $scheduledTime", + style: const TextStyle( + fontSize: 10, + color: Color(0xFF94A3B8), // slate-400 + ), + ), + ], + const SizedBox(height: 2), + Text( + subtitle, + style: const TextStyle(fontSize: 12, color: Color(0xFF0032A0)), + ), + ], + ), + ); + } + + _AttendanceStyle _getStyles(AttendanceType type) { + switch (type) { + case AttendanceType.checkin: + return _AttendanceStyle( + icon: LucideIcons.logIn, + bgColor: const Color(0xFF0032A0).withOpacity(0.1), + iconColor: const Color(0xFF0032A0), + ); + case AttendanceType.checkout: + return _AttendanceStyle( + icon: LucideIcons.logOut, + bgColor: const Color(0xFF333F48).withOpacity(0.1), + iconColor: const Color(0xFF333F48), + ); + case AttendanceType.breaks: + return _AttendanceStyle( + icon: LucideIcons.coffee, + bgColor: const Color(0xFFF9E547).withOpacity(0.2), + iconColor: const Color(0xFF4C460D), + ); + case AttendanceType.days: + return _AttendanceStyle( + icon: LucideIcons.calendar, + bgColor: Colors.green.withOpacity(0.1), + iconColor: Colors.green, + ); + } + } +} + +class _AttendanceStyle { + final IconData icon; + final Color bgColor; + final Color iconColor; + + _AttendanceStyle({ + required this.icon, + required this.bgColor, + required this.iconColor, + }); +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/commute_tracker.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/commute_tracker.dart new file mode 100644 index 00000000..e9701fe0 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/commute_tracker.dart @@ -0,0 +1,542 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../theme/app_colors.dart'; +import 'package:krow_domain/krow_domain.dart'; + +enum CommuteMode { + lockedNoShift, + needsConsent, + preShiftCommuteAllowed, + commuteModeActive, + arrivedCanClockIn, +} + +class CommuteTracker extends StatefulWidget { + final Shift? shift; + final Function(CommuteMode)? onModeChange; + final bool hasLocationConsent; + final bool isCommuteModeOn; + final double? distanceMeters; + final int? etaMinutes; + + const CommuteTracker({ + super.key, + this.shift, + this.onModeChange, + this.hasLocationConsent = false, + this.isCommuteModeOn = false, + this.distanceMeters, + this.etaMinutes, + }); + + @override + State createState() => _CommuteTrackerState(); +} + +class _CommuteTrackerState extends State { + bool _localHasConsent = false; + bool _localIsCommuteOn = false; + + @override + void initState() { + super.initState(); + _localHasConsent = widget.hasLocationConsent; + _localIsCommuteOn = widget.isCommuteModeOn; + } + + CommuteMode _getAppMode() { + if (widget.shift == null) return CommuteMode.lockedNoShift; + + // For demo purposes, check if we're within 24 hours of shift + final now = DateTime.now(); + final shiftStart = DateTime.parse( + '${widget.shift!.date} ${widget.shift!.startTime}', + ); + final hoursUntilShift = shiftStart.difference(now).inHours; + final inCommuteWindow = hoursUntilShift <= 24 && hoursUntilShift >= 0; + + if (_localIsCommuteOn) { + // Check if arrived (mock: if distance < 200m) + if (widget.distanceMeters != null && widget.distanceMeters! <= 200) { + return CommuteMode.arrivedCanClockIn; + } + return CommuteMode.commuteModeActive; + } + + if (inCommuteWindow) { + return _localHasConsent + ? CommuteMode.preShiftCommuteAllowed + : CommuteMode.needsConsent; + } + + return CommuteMode.lockedNoShift; + } + + String _formatDistance(double meters) { + final miles = meters / 1609.34; + return miles < 0.1 + ? '${meters.round()} m' + : '${miles.toStringAsFixed(1)} mi'; + } + + int _getMinutesUntilShift() { + if (widget.shift == null) return 0; + final now = DateTime.now(); + final shiftStart = DateTime.parse( + '${widget.shift!.date} ${widget.shift!.startTime}', + ); + return shiftStart.difference(now).inMinutes; + } + + @override + Widget build(BuildContext context) { + final mode = _getAppMode(); + + // Notify parent of mode change + WidgetsBinding.instance.addPostFrameCallback((_) { + widget.onModeChange?.call(mode); + }); + + switch (mode) { + case CommuteMode.lockedNoShift: + return const SizedBox.shrink(); + + case CommuteMode.needsConsent: + return _buildConsentCard(); + + case CommuteMode.preShiftCommuteAllowed: + return _buildPreShiftCard(); + + case CommuteMode.commuteModeActive: + return _buildActiveCommuteScreen(); + + case CommuteMode.arrivedCanClockIn: + return _buildArrivedCard(); + } + } + + Widget _buildConsentCard() { + return Container( + margin: const EdgeInsets.only(bottom: 20), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + gradient: const LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFFEFF6FF), // blue-50 + Color(0xFFECFEFF), // cyan-50 + ], + ), + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 32, + height: 32, + decoration: const BoxDecoration( + color: Color(0xFF2563EB), // blue-600 + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.mapPin, + size: 16, + color: Colors.white, + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Enable Commute Tracking?', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF0F172A), // slate-900 + ), + ), + const SizedBox(height: 4), + Text( + 'Share location 1hr before shift so your manager can see you\'re on the way.', + style: TextStyle( + fontSize: 12, + color: Color(0xFF475569), // slate-600 + ), + ), + ], + ), + ), + ], + ), + const SizedBox(height: 12), + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + setState(() => _localHasConsent = false); + }, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 8), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: const Text('Not Now', style: TextStyle(fontSize: 12)), + ), + ), + const SizedBox(width: 8), + Expanded( + child: ElevatedButton( + onPressed: () { + setState(() => _localHasConsent = true); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), // blue-600 + padding: const EdgeInsets.symmetric(vertical: 8), + ), + child: const Text( + 'Enable', + style: TextStyle(fontSize: 12, color: Colors.white), + ), + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildPreShiftCard() { + return Container( + margin: const EdgeInsets.only(bottom: 20), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Row( + children: [ + Container( + width: 32, + height: 32, + decoration: const BoxDecoration( + color: Color(0xFFF1F5F9), // slate-100 + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.navigation, + size: 16, + color: Color(0xFF475569), // slate-600 + ), + ), + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Text( + 'On My Way', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF0F172A), // slate-900 + ), + ), + const SizedBox(width: 8), + Row( + children: [ + const Icon( + LucideIcons.clock, + size: 12, + color: Color(0xFF64748B), // slate-500 + ), + const SizedBox(width: 2), + Text( + 'Shift starts in ${_getMinutesUntilShift()} min', + style: const TextStyle( + fontSize: 11, + color: Color(0xFF64748B), // slate-500 + ), + ), + ], + ), + ], + ), + const Text( + 'Track arrival', + style: TextStyle( + fontSize: 10, + color: Color(0xFF64748B), // slate-500 + ), + ), + ], + ), + ), + Switch( + value: _localIsCommuteOn, + onChanged: (value) { + setState(() => _localIsCommuteOn = value); + }, + activeColor: AppColors.krowBlue, + ), + ], + ), + ); + } + + Widget _buildActiveCommuteScreen() { + return Container( + height: MediaQuery.of(context).size.height, + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFF2563EB), // blue-600 + Color(0xFF0891B2), // cyan-600 + ], + ), + ), + child: SafeArea( + child: Column( + children: [ + Expanded( + child: Center( + child: Padding( + padding: const EdgeInsets.all(20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + TweenAnimationBuilder( + tween: Tween(begin: 1.0, end: 1.1), + duration: const Duration(seconds: 1), + curve: Curves.easeInOut, + builder: (context, double scale, child) { + return Transform.scale( + scale: scale, + child: Container( + width: 96, + height: 96, + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.2), + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.navigation, + size: 48, + color: Colors.white, + ), + ), + ); + }, + onEnd: () { + // Restart animation + setState(() {}); + }, + ), + const SizedBox(height: 24), + const Text( + 'On My Way', + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(height: 8), + Text( + 'Your manager can see you\'re heading to the site', + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade100, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 32), + if (widget.distanceMeters != null) ...[ + Container( + width: double.infinity, + constraints: const BoxConstraints(maxWidth: 300), + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: Colors.white.withOpacity(0.2), + ), + ), + child: Column( + children: [ + Text( + 'Distance to Site', + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade100, + ), + ), + const SizedBox(height: 4), + Text( + _formatDistance(widget.distanceMeters!), + style: const TextStyle( + fontSize: 36, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ], + ), + ), + if (widget.etaMinutes != null) ...[ + const SizedBox(height: 12), + Container( + width: double.infinity, + constraints: const BoxConstraints(maxWidth: 300), + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: Colors.white.withOpacity(0.2), + ), + ), + child: Column( + children: [ + Text( + 'Estimated Arrival', + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade100, + ), + ), + const SizedBox(height: 4), + Text( + '${widget.etaMinutes} min', + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ], + ), + ), + ], + ], + const SizedBox(height: 32), + Text( + 'Most app features are locked while commute mode is on. You\'ll be able to clock in once you arrive.', + style: TextStyle( + fontSize: 12, + color: Colors.blue.shade100, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.all(20), + child: OutlinedButton( + onPressed: () { + setState(() => _localIsCommuteOn = false); + }, + style: OutlinedButton.styleFrom( + foregroundColor: Colors.white, + side: BorderSide(color: Colors.white.withOpacity(0.3)), + padding: const EdgeInsets.symmetric(vertical: 16), + minimumSize: const Size(double.infinity, 48), + ), + child: const Text('Turn Off Commute Mode'), + ), + ), + ], + ), + ), + ); + } + + Widget _buildArrivedCard() { + return Container( + margin: const EdgeInsets.only(bottom: 20), + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + gradient: const LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFFECFDF5), // emerald-50 + Color(0xFFD1FAE5), // green-50 + ], + ), + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: Column( + children: [ + Container( + width: 64, + height: 64, + decoration: const BoxDecoration( + color: Color(0xFF10B981), // emerald-500 + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.checkCircle, + size: 32, + color: Colors.white, + ), + ), + const SizedBox(height: 16), + const Text( + 'You\'ve Arrived! 🎉', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Color(0xFF0F172A), // slate-900 + ), + ), + const SizedBox(height: 8), + const Text( + 'You\'re at the shift location. Ready to clock in?', + style: TextStyle( + fontSize: 14, + color: Color(0xFF475569), // slate-600 + ), + textAlign: TextAlign.center, + ), + ], + ), + ); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/date_selector.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/date_selector.dart new file mode 100644 index 00000000..320ba176 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/date_selector.dart @@ -0,0 +1,114 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class DateSelector extends StatelessWidget { + final DateTime selectedDate; + final ValueChanged onSelect; + final List shiftDates; + + const DateSelector({ + super.key, + required this.selectedDate, + required this.onSelect, + this.shiftDates = const [], + }); + + @override + Widget build(BuildContext context) { + final today = DateTime.now(); + final dates = List.generate(7, (index) { + return today.add(Duration(days: index - 3)); + }); + + return SizedBox( + height: 80, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: dates.map((date) { + final isSelected = _isSameDay(date, selectedDate); + final isToday = _isSameDay(date, today); + final hasShift = shiftDates.contains(_formatDateIso(date)); + + return Expanded( + child: GestureDetector( + onTap: () => onSelect(date), + child: AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: const EdgeInsets.symmetric(horizontal: 4), + decoration: BoxDecoration( + color: isSelected ? const Color(0xFF0032A0) : Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: isSelected + ? [ + BoxShadow( + color: const Color(0xFF0032A0).withOpacity(0.3), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ] + : [], + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + DateFormat('d').format(date), + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: isSelected + ? Colors.white + : const Color(0xFF0F172A), + ), + ), + const SizedBox(height: 2), + Text( + DateFormat('E').format(date), + style: TextStyle( + fontSize: 12, + color: isSelected + ? Colors.white.withOpacity(0.8) + : const Color(0xFF94A3B8), + ), + ), + const SizedBox(height: 4), + if (hasShift) + Container( + width: 6, + height: 6, + decoration: BoxDecoration( + color: isSelected + ? Colors.white + : const Color(0xFF0032A0), + shape: BoxShape.circle, + ), + ) + else if (isToday && !isSelected) + Container( + width: 6, + height: 6, + decoration: BoxDecoration( + color: Colors.grey.shade300, + shape: BoxShape.circle, + ), + ) + else + const SizedBox(height: 6), + ], + ), + ), + ), + ); + }).toList(), + ), + ); + } + + bool _isSameDay(DateTime a, DateTime b) { + return a.year == b.year && a.month == b.month && a.day == b.day; + } + + String _formatDateIso(DateTime date) { + return DateFormat('yyyy-MM-dd').format(date); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/lunch_break_modal.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/lunch_break_modal.dart new file mode 100644 index 00000000..3061de20 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/lunch_break_modal.dart @@ -0,0 +1,312 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +class LunchBreakDialog extends StatefulWidget { + final VoidCallback onComplete; + + const LunchBreakDialog({super.key, required this.onComplete}); + + @override + State createState() => _LunchBreakDialogState(); +} + +class _LunchBreakDialogState extends State { + int _step = 1; + bool? _tookLunch; + // ignore: unused_field + String? _breakStart = '12:00pm'; + // ignore: unused_field + String? _breakEnd = '12:30pm'; + // ignore: unused_field + String? _noLunchReason; + // ignore: unused_field + String _additionalNotes = ''; + + final List _timeOptions = _generateTimeOptions(); + final List _noLunchReasons = [ + 'Unpredictable Workflows', + 'Poor Time Management', + 'Lack of coverage or short Staff', + 'No Lunch Area', + 'Other (Please specify)', + ]; + + static List _generateTimeOptions() { + List options = []; + for (int h = 0; h < 24; h++) { + for (int m = 0; m < 60; m += 15) { + final hour = h % 12 == 0 ? 12 : h % 12; + final ampm = h < 12 ? 'am' : 'pm'; + final timeStr = '$hour:${m.toString().padLeft(2, '0')}$ampm'; + options.add(timeStr); + } + } + return options; + } + + @override + Widget build(BuildContext context) { + return Dialog( + backgroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + child: _buildCurrentStep(), + ), + ); + } + + Widget _buildCurrentStep() { + switch (_step) { + case 1: + return _buildStep1(); + case 2: + return _buildStep2(); + case 102: // 2b: No lunch reason + return _buildStep2b(); + case 3: + return _buildStep3(); + case 4: + return _buildStep4(); + default: + return const SizedBox.shrink(); + } + } + + Widget _buildStep1() { + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 80, + height: 80, + decoration: BoxDecoration( + color: Colors.grey.shade100, + shape: BoxShape.circle, + ), + child: const Icon( + LucideIcons.coffee, + size: 40, + color: Color(0xFF6A7382), + ), + ), + const SizedBox(height: 24), + const Text( + "Did You Take\na Lunch?", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Color(0xFF121826), + ), + ), + const SizedBox(height: 24), + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + setState(() { + _tookLunch = false; + _step = 102; // Go to No Lunch Reason + }); + }, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + side: BorderSide(color: Colors.grey.shade300), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text( + "No", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Color(0xFF121826), + ), + ), + ), + ), + const SizedBox(width: 16), + Expanded( + child: ElevatedButton( + onPressed: () { + setState(() { + _tookLunch = true; + _step = 2; // Go to Time Input + }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0032A0), + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text( + "Yes", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white, + ), + ), + ), + ), + ], + ), + ], + ), + ); + } + + Widget _buildStep2() { + // Time input + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + "When did you take lunch?", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 24), + // Mock Inputs + Row( + children: [ + Expanded( + child: DropdownButtonFormField( + value: _breakStart, + items: _timeOptions.map((t) => DropdownMenuItem(value: t, child: Text(t))).toList(), + onChanged: (v) => setState(() => _breakStart = v), + decoration: const InputDecoration(labelText: 'Start'), + ), + ), + const SizedBox(width: 16), + Expanded( + child: DropdownButtonFormField( + value: _breakEnd, + items: _timeOptions.map((t) => DropdownMenuItem(value: t, child: Text(t))).toList(), + onChanged: (v) => setState(() => _breakEnd = v), + decoration: const InputDecoration(labelText: 'End'), + ), + ), + ], + ), + + const SizedBox(height: 24), + ElevatedButton( + onPressed: () { + setState(() => _step = 3); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0032A0), + minimumSize: const Size(double.infinity, 48), + ), + child: const Text("Next", style: TextStyle(color: Colors.white)), + ), + ], + )); + } + + Widget _buildStep2b() { + // No lunch reason + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + "Why didn't you take lunch?", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + ..._noLunchReasons.map((reason) => RadioListTile( + title: Text(reason), + value: reason, + groupValue: _noLunchReason, + onChanged: (val) => setState(() => _noLunchReason = val), + )), + + const SizedBox(height: 24), + ElevatedButton( + onPressed: () { + setState(() => _step = 3); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0032A0), + minimumSize: const Size(double.infinity, 48), + ), + child: const Text("Next", style: TextStyle(color: Colors.white)), + ), + ], + )); + } + + Widget _buildStep3() { + // Additional Notes + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + "Additional Notes", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + TextField( + onChanged: (v) => _additionalNotes = v, + decoration: const InputDecoration( + hintText: 'Add any details...', + border: OutlineInputBorder(), + ), + maxLines: 3, + ), + + const SizedBox(height: 24), + ElevatedButton( + onPressed: () { + setState(() => _step = 4); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0032A0), + minimumSize: const Size(double.infinity, 48), + ), + child: const Text("Submit", style: TextStyle(color: Colors.white)), + ), + ], + )); + } + + Widget _buildStep4() { + // Success + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon(LucideIcons.checkCircle, size: 64, color: Colors.green), + const SizedBox(height: 24), + const Text( + "Break Logged!", + style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 24), + ElevatedButton( + onPressed: widget.onComplete, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF0032A0), + minimumSize: const Size(double.infinity, 48), + ), + child: const Text("Close", style: TextStyle(color: Colors.white)), + ), + ], + )); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/swipe_to_check_in.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/swipe_to_check_in.dart new file mode 100644 index 00000000..fef53472 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/swipe_to_check_in.dart @@ -0,0 +1,223 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +class SwipeToCheckIn extends StatefulWidget { + final VoidCallback? onCheckIn; + final VoidCallback? onCheckOut; + final bool isLoading; + final String mode; // 'swipe' or 'nfc' + final bool isCheckedIn; + + const SwipeToCheckIn({ + super.key, + this.onCheckIn, + this.onCheckOut, + this.isLoading = false, + this.mode = 'swipe', + this.isCheckedIn = false, + }); + + @override + State createState() => _SwipeToCheckInState(); +} + +class _SwipeToCheckInState extends State + with SingleTickerProviderStateMixin { + double _dragValue = 0.0; + final double _handleSize = 48.0; + bool _isComplete = false; + + @override + void didUpdateWidget(SwipeToCheckIn oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.isCheckedIn != oldWidget.isCheckedIn) { + setState(() { + _isComplete = false; + _dragValue = 0.0; + }); + } + } + + void _onDragUpdate(DragUpdateDetails details, double maxWidth) { + if (_isComplete || widget.isLoading) return; + setState(() { + _dragValue = (_dragValue + details.delta.dx).clamp( + 0.0, + maxWidth - _handleSize - 8, + ); + }); + } + + void _onDragEnd(DragEndDetails details, double maxWidth) { + if (_isComplete || widget.isLoading) return; + final threshold = (maxWidth - _handleSize - 8) * 0.8; + if (_dragValue > threshold) { + setState(() { + _dragValue = maxWidth - _handleSize - 8; + _isComplete = true; + }); + Future.delayed(const Duration(milliseconds: 300), () { + if (widget.isCheckedIn) { + widget.onCheckOut?.call(); + } else { + widget.onCheckIn?.call(); + } + }); + } else { + setState(() { + _dragValue = 0.0; + }); + } + } + + @override + Widget build(BuildContext context) { + final baseColor = widget.isCheckedIn + ? const Color(0xFF10B981) + : const Color(0xFF0032A0); + + if (widget.mode == 'nfc') { + return GestureDetector( + onTap: () { + if (widget.isLoading) return; + // Simulate completion for NFC tap + Future.delayed(const Duration(milliseconds: 300), () { + if (widget.isCheckedIn) { + widget.onCheckOut?.call(); + } else { + widget.onCheckIn?.call(); + } + }); + }, + child: Container( + height: 56, + decoration: BoxDecoration( + color: baseColor, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: baseColor.withOpacity(0.4), + blurRadius: 25, + offset: const Offset(0, 10), + spreadRadius: -5, + ), + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon(LucideIcons.wifi, color: Colors.white), + const SizedBox(width: 12), + Text( + widget.isLoading + ? (widget.isCheckedIn + ? "Checking out..." + : "Checking in...") + : (widget.isCheckedIn ? "NFC Check Out" : "NFC Check In"), + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + ], + ), + ), + ); + } + + return LayoutBuilder( + builder: (context, constraints) { + final maxWidth = constraints.maxWidth; + final maxDrag = maxWidth - _handleSize - 8; + + // Calculate background color based on drag + final progress = _dragValue / maxDrag; + final startColor = widget.isCheckedIn + ? const Color(0xFF10B981) + : const Color(0xFF0032A0); + final endColor = widget.isCheckedIn + ? const Color(0xFF0032A0) + : const Color(0xFF10B981); + final currentColor = + Color.lerp(startColor, endColor, progress) ?? startColor; + + return Container( + height: 56, + decoration: BoxDecoration( + color: currentColor, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Stack( + children: [ + Center( + child: Opacity( + opacity: 1.0 - progress, + child: Text( + widget.isCheckedIn + ? "Swipe to Check Out" + : "Swipe to Check In", + style: TextStyle( + color: Colors.white.withOpacity(0.8), + fontWeight: FontWeight.w600, + fontSize: 18, + ), + ), + ), + ), + if (_isComplete) + Center( + child: Text( + widget.isCheckedIn ? "Check Out!" : "Check In!", + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.w600, + fontSize: 18, + ), + ), + ), + Positioned( + left: 4 + _dragValue, + top: 4, + child: GestureDetector( + onHorizontalDragUpdate: (d) => _onDragUpdate(d, maxWidth), + onHorizontalDragEnd: (d) => _onDragEnd(d, maxWidth), + child: Container( + width: _handleSize, + height: _handleSize, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 2, + offset: const Offset(0, 1), + ), + ], + ), + child: Center( + child: Icon( + _isComplete + ? LucideIcons.check + : LucideIcons.arrowRight, + color: startColor, + ), + ), + ), + ), + ), + ], + ), + ); + }, + ); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/staff_clock_in_module.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/staff_clock_in_module.dart new file mode 100644 index 00000000..f7062597 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/staff_clock_in_module.dart @@ -0,0 +1,37 @@ +import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_data_connect/krow_data_connect.dart'; +import 'data/repositories/clock_in_repository_impl.dart'; +import 'domain/repositories/clock_in_repository_interface.dart'; +import 'domain/usecases/clock_in_usecase.dart'; +import 'domain/usecases/clock_out_usecase.dart'; +import 'domain/usecases/get_activity_log_usecase.dart'; +import 'domain/usecases/get_attendance_status_usecase.dart'; +import 'domain/usecases/get_todays_shift_usecase.dart'; +import 'presentation/bloc/clock_in_bloc.dart'; +import 'presentation/pages/clock_in_page.dart'; + +class StaffClockInModule extends Module { + @override + void binds(Injector i) { + // Data Sources (Mocks from data_connect) + i.add(ShiftsRepositoryMock.new); + + // Repositories + i.add(ClockInRepositoryImpl.new); + + // Use Cases + i.add(GetTodaysShiftUseCase.new); + i.add(GetAttendanceStatusUseCase.new); + i.add(ClockInUseCase.new); + i.add(ClockOutUseCase.new); + i.add(GetActivityLogUseCase.new); + + // BLoC + i.add(ClockInBloc.new); + } + + @override + void routes(r) { + r.child('/', child: (context) => const ClockInPage()); + } +} diff --git a/apps/mobile/packages/features/staff/clock_in/lib/staff_clock_in.dart b/apps/mobile/packages/features/staff/clock_in/lib/staff_clock_in.dart new file mode 100644 index 00000000..d9d93a80 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/lib/staff_clock_in.dart @@ -0,0 +1,4 @@ +library staff_clock_in; + +export 'src/staff_clock_in_module.dart'; +export 'src/presentation/pages/clock_in_page.dart'; diff --git a/apps/mobile/packages/features/staff/clock_in/pubspec.yaml b/apps/mobile/packages/features/staff/clock_in/pubspec.yaml new file mode 100644 index 00000000..47781140 --- /dev/null +++ b/apps/mobile/packages/features/staff/clock_in/pubspec.yaml @@ -0,0 +1,30 @@ +name: staff_clock_in +description: Staff Clock In Feature +version: 0.0.1 +publish_to: 'none' +resolution: workspace + +environment: + sdk: '>=3.0.0 <4.0.0' + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + flutter_bloc: ^8.1.3 + equatable: ^2.0.5 + intl: ^0.20.2 + lucide_icons: ^0.257.0 + flutter_modular: ^6.3.2 + + # Internal packages + core_localization: + path: ../../../core_localization + design_system: + path: ../../../design_system + krow_domain: + path: ../../../domain + krow_data_connect: + path: ../../../data_connect + krow_core: + path: ../../../core diff --git a/apps/mobile/packages/features/staff/home/lib/src/presentation/navigation/home_navigator.dart b/apps/mobile/packages/features/staff/home/lib/src/presentation/navigation/home_navigator.dart index e3671168..056a5636 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/presentation/navigation/home_navigator.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/presentation/navigation/home_navigator.dart @@ -13,7 +13,7 @@ extension HomeNavigator on IModularNavigator { /// Navigates to the availability page. void pushAvailability() { - pushNamed('/availability'); + pushNamed('/worker-main/availability'); } /// Navigates to the messages page. diff --git a/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart b/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart index 9f38a448..c6d2e792 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart @@ -1,3 +1,4 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'package:krow_domain/krow_domain.dart'; @@ -14,22 +15,61 @@ import '../../domain/repositories/profile_repository.dart'; /// Currently uses [ProfileRepositoryMock] from data_connect. /// When Firebase Data Connect is ready, this will be swapped with a real implementation. class ProfileRepositoryImpl implements ProfileRepositoryInterface { - final ProfileRepositoryMock _dataConnectRepository; - /// Creates a [ProfileRepositoryImpl]. /// - /// Requires a [ProfileRepositoryMock] from the data_connect package. - const ProfileRepositoryImpl(this._dataConnectRepository); + /// Requires a [ExampleConnector] from the data_connect package and [FirebaseAuth]. + const ProfileRepositoryImpl({ + required this.connector, + required this.firebaseAuth, + }); + + /// The Data Connect connector used for data operations. + final ExampleConnector connector; + + /// The Firebase Auth instance. + final FirebaseAuth firebaseAuth; @override - Future getStaffProfile(String userId) { - // Delegate directly to data_connect - no business logic here - return _dataConnectRepository.getStaffProfile(userId); + Future getStaffProfile() async { + final user = firebaseAuth.currentUser; + if (user == null) { + throw Exception('User not authenticated'); + } + + final response = await connector.getStaffByUserId(userId: user.uid).execute(); + + if (response.data.staffs.isEmpty) { + // TODO: Handle user not found properly with domain exception + throw Exception('Staff not found'); + } + + final GetStaffByUserIdStaffs rawStaff = response.data.staffs.first; + + // Map the raw data connect object to the Domain Entity + return Staff( + id: rawStaff.id, + authProviderId: rawStaff.userId, + name: rawStaff.fullName, + email: rawStaff.email ?? '', + phone: rawStaff.phone, + avatar: rawStaff.photoUrl, + status: StaffStatus.active, + address: rawStaff.addres, + totalShifts: rawStaff.totalShifts, + averageRating: rawStaff.averageRating, + onTimeRate: rawStaff.onTimeRate, + noShowCount: rawStaff.noShowCount, + cancellationCount: rawStaff.cancellationCount, + reliabilityScore: rawStaff.reliabilityScore, + ); } @override - Future signOut() { - // Delegate directly to data_connect - no business logic here - return _dataConnectRepository.signOut(); + Future signOut() async { + try { + await firebaseAuth.signOut(); + } catch (e) { + throw Exception('Error signing out: ${e.toString()}'); + } } } diff --git a/apps/mobile/packages/features/staff/profile/lib/src/domain/repositories/profile_repository.dart b/apps/mobile/packages/features/staff/profile/lib/src/domain/repositories/profile_repository.dart index 878933d0..05868bbb 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/domain/repositories/profile_repository.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/domain/repositories/profile_repository.dart @@ -10,13 +10,13 @@ import 'package:krow_domain/krow_domain.dart'; /// - Defines business requirements without implementation details /// - Allows the domain layer to be independent of data sources abstract interface class ProfileRepositoryInterface { - /// Fetches the staff profile for the given user ID. + /// Fetches the staff profile for the current authenticated user. /// /// Returns a [Staff] entity from the shared domain package containing /// all profile information. /// /// Throws an exception if the profile cannot be retrieved. - Future getStaffProfile(String userId); + Future getStaffProfile(); /// Signs out the current user. /// diff --git a/apps/mobile/packages/features/staff/profile/lib/src/domain/ui_entities/staff_profile_ui.dart b/apps/mobile/packages/features/staff/profile/lib/src/domain/ui_entities/staff_profile_ui.dart deleted file mode 100644 index 2f306905..00000000 --- a/apps/mobile/packages/features/staff/profile/lib/src/domain/ui_entities/staff_profile_ui.dart +++ /dev/null @@ -1,118 +0,0 @@ -import 'package:equatable/equatable.dart'; -import 'package:krow_domain/krow_domain.dart'; - -/// UI entity representing extended profile information for a staff member. -/// -/// This UI entity wraps the shared [Staff] domain entity and adds -/// presentation-layer specific data such as: -/// - Reliability statistics (shifts, ratings, etc.) -/// - Profile completion status -/// - Performance metrics -/// -/// Following Clean Architecture principles, this entity: -/// - Lives in the feature's domain/ui_entities layer -/// - Is used only by the presentation layer -/// - Extends the core [Staff] entity with UI-specific data -/// - Does NOT replace domain entities in repositories or use cases -class StaffProfileUI extends Equatable { - /// The underlying staff entity from the shared domain - final Staff staff; - - /// Total number of shifts worked - final int totalShifts; - - /// Average rating received from clients (0.0 - 5.0) - final double averageRating; - - /// Percentage of shifts where staff arrived on time - final int onTimeRate; - - /// Number of times the staff failed to show up for a shift - final int noShowCount; - - /// Number of shifts the staff has cancelled - final int cancellationCount; - - /// Overall reliability score (0-100) - final int reliabilityScore; - - /// Whether personal information section is complete - final bool hasPersonalInfo; - - /// Whether emergency contact section is complete - final bool hasEmergencyContact; - - /// Whether work experience section is complete - final bool hasExperience; - - /// Whether attire photo has been uploaded - final bool hasAttire; - - /// Whether required documents have been uploaded - final bool hasDocuments; - - /// Whether certificates have been uploaded - final bool hasCertificates; - - /// Whether tax forms have been submitted - final bool hasTaxForms; - - const StaffProfileUI({ - required this.staff, - required this.totalShifts, - required this.averageRating, - required this.onTimeRate, - required this.noShowCount, - required this.cancellationCount, - required this.reliabilityScore, - required this.hasPersonalInfo, - required this.hasEmergencyContact, - required this.hasExperience, - required this.hasAttire, - required this.hasDocuments, - required this.hasCertificates, - required this.hasTaxForms, - }); - - /// Convenience getters that delegate to the underlying Staff entity - String get fullName => staff.name; - String get email => staff.email; - String? get photoUrl => staff.avatar; - String get userId => staff.authProviderId; - String get staffId => staff.id; - - /// Maps staff status to a level string for display - /// TODO: Replace with actual level data when available in Staff entity - String get level => _mapStatusToLevel(staff.status); - - String _mapStatusToLevel(StaffStatus status) { - switch (status) { - case StaffStatus.active: - case StaffStatus.verified: - return 'Krower I'; - case StaffStatus.pending: - case StaffStatus.completedProfile: - return 'Pending'; - default: - return 'New'; - } - } - - @override - List get props => [ - staff, - totalShifts, - averageRating, - onTimeRate, - noShowCount, - cancellationCount, - reliabilityScore, - hasPersonalInfo, - hasEmergencyContact, - hasExperience, - hasAttire, - hasDocuments, - hasCertificates, - hasTaxForms, - ]; -} diff --git a/apps/mobile/packages/features/staff/profile/lib/src/domain/usecases/get_profile_usecase.dart b/apps/mobile/packages/features/staff/profile/lib/src/domain/usecases/get_profile_usecase.dart index 8834eda5..bb1a96d8 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/domain/usecases/get_profile_usecase.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/domain/usecases/get_profile_usecase.dart @@ -2,22 +2,14 @@ import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; import '../repositories/profile_repository.dart'; -import '../ui_entities/staff_profile_ui.dart'; /// Use case for fetching a staff member's extended profile information. /// /// This use case: -/// 1. Fetches the core [Staff] entity from the repository -/// 2. Maps it to a [StaffProfileUI] entity with additional UI-specific data +/// 1. Fetches the [Staff] object from the repository +/// 2. Returns it directly to the presentation layer /// -/// Following Clean Architecture principles: -/// - Depends only on the repository interface (dependency inversion) -/// - Returns a UI entity suitable for the presentation layer -/// - Encapsulates the mapping logic from domain to UI entities -/// -/// TODO: When profile statistics API is available, fetch and map real data -/// Currently returns mock statistics data. -class GetProfileUseCase implements UseCase { +class GetProfileUseCase implements UseCase { final ProfileRepositoryInterface _repository; /// Creates a [GetProfileUseCase]. @@ -26,27 +18,8 @@ class GetProfileUseCase implements UseCase { const GetProfileUseCase(this._repository); @override - Future call(String userId) async { - // Fetch core Staff entity from repository - final staff = await _repository.getStaffProfile(userId); - - // Map to UI entity with additional profile data - // TODO: Replace mock data with actual profile statistics from backend - return StaffProfileUI( - staff: staff, - totalShifts: 0, - averageRating: 5.0, - onTimeRate: 100, - noShowCount: 0, - cancellationCount: 0, - reliabilityScore: 100, - hasPersonalInfo: staff.phone != null && staff.phone!.isNotEmpty, - hasEmergencyContact: false, // TODO: Fetch from backend - hasExperience: false, // TODO: Fetch from backend - hasAttire: staff.avatar != null, - hasDocuments: false, // TODO: Fetch from backend - hasCertificates: false, // TODO: Fetch from backend - hasTaxForms: false, // TODO: Fetch from backend - ); + Future call([void params]) async { + // Fetch staff object from repository and return directly + return await _repository.getStaffProfile(); } } diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_cubit.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_cubit.dart index 9eb307ff..ea5a5fff 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_cubit.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_cubit.dart @@ -21,13 +21,11 @@ class ProfileCubit extends Cubit { /// Emits [ProfileStatus.loading] while fetching data, /// then [ProfileStatus.loaded] with the profile data on success, /// or [ProfileStatus.error] if an error occurs. - /// - /// Requires [userId] to identify which profile to load. - Future loadProfile(String userId) async { + Future loadProfile() async { emit(state.copyWith(status: ProfileStatus.loading)); try { - final profile = await _getProfileUseCase(userId); + final profile = await _getProfileUseCase(); emit(state.copyWith( status: ProfileStatus.loaded, profile: profile, @@ -45,8 +43,15 @@ class ProfileCubit extends Cubit { /// Delegates to the sign-out use case which handles session cleanup /// and navigation. Future signOut() async { + if (state.status == ProfileStatus.loading) { + return; + } + + emit(state.copyWith(status: ProfileStatus.loading)); + try { await _signOutUseCase(); + emit(state.copyWith(status: ProfileStatus.signedOut)); } catch (e) { // Error handling can be added here if needed // For now, we let the navigation happen regardless diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_state.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_state.dart index 645d241b..05668656 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_state.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/blocs/profile_state.dart @@ -1,6 +1,5 @@ import 'package:equatable/equatable.dart'; - -import '../../domain/ui_entities/staff_profile_ui.dart'; +import 'package:krow_domain/krow_domain.dart'; /// Represents the various states of the profile feature. enum ProfileStatus { @@ -13,6 +12,9 @@ enum ProfileStatus { /// Profile data loaded successfully loaded, + /// User successfully signed out + signedOut, + /// An error occurred while loading profile data error, } @@ -20,14 +22,13 @@ enum ProfileStatus { /// State class for the Profile feature. /// /// Contains the current profile data and loading status. -/// Uses the [StaffProfileUI] entity which wraps the shared Staff entity -/// with presentation-layer specific data. +/// Uses the [Staff] entity directly from domain layer. class ProfileState extends Equatable { /// Current status of the profile feature final ProfileStatus status; - /// The staff member's profile UI entity (null if not loaded) - final StaffProfileUI? profile; + /// The staff member's profile object (null if not loaded) + final Staff? profile; /// Error message if status is error final String? errorMessage; @@ -41,7 +42,7 @@ class ProfileState extends Equatable { /// Creates a copy of this state with updated values. ProfileState copyWith({ ProfileStatus? status, - StaffProfileUI? profile, + Staff? profile, String? errorMessage, }) { return ProfileState( diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart index dde95472..cf6e26e6 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart @@ -83,6 +83,6 @@ extension ProfileNavigator on IModularNavigator { /// Navigates to the get started/authentication screen. void navigateToGetStarted() { - navigate('/get-started/'); + navigate('/'); } } diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart index c81dc81a..4930ee08 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart @@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart' hide ReadContext; import 'package:flutter_modular/flutter_modular.dart'; import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../blocs/profile_cubit.dart'; import '../blocs/profile_state.dart'; @@ -26,29 +27,50 @@ class StaffProfilePage extends StatelessWidget { /// Creates a [StaffProfilePage]. const StaffProfilePage({super.key}); + String _mapStatusToLevel(StaffStatus status) { + switch (status) { + case StaffStatus.active: + case StaffStatus.verified: + return 'Krower I'; + case StaffStatus.pending: + case StaffStatus.completedProfile: + return 'Pending'; + default: + return 'New'; + } + } + + void _onSignOut(ProfileCubit cubit, ProfileState state) { + if (state.status != ProfileStatus.loading) { + cubit.signOut(); + } + } + @override Widget build(BuildContext context) { - final i18n = t.staff.profile; - final cubit = Modular.get(); + final TranslationsStaffProfileEn i18n = t.staff.profile; + final ProfileCubit cubit = Modular.get(); // Load profile data on first build - // TODO: Get actual userId from auth session - // For now, using mock userId that matches ProfileRepositoryMock data - const userId = 't8P3fYh4y1cPoZbbVPXUhfQCsDo3'; if (cubit.state.status == ProfileStatus.initial) { - cubit.loadProfile(userId); + cubit.loadProfile(); } return Scaffold( - backgroundColor: UiColors.background, - body: BlocBuilder( + body: BlocConsumer( bloc: cubit, - builder: (context, state) { - if (state.status == ProfileStatus.loading) { - return const Center(child: CircularProgressIndicator()); + listener: (context, state) { + if (state.status == ProfileStatus.signedOut) { + Modular.to.navigateToGetStarted(); } + }, + builder: (context, state) { + // Show loading spinner if status is loading + if (state.status == ProfileStatus.loading) { + return const Center(child: CircularProgressIndicator()); + } - if (state.status == ProfileStatus.error) { + if (state.status == ProfileStatus.error) { return Center( child: Text( state.errorMessage ?? 'An error occurred', @@ -69,13 +91,10 @@ class StaffProfilePage extends StatelessWidget { child: Column( children: [ ProfileHeader( - fullName: profile.fullName, - level: profile.level, - photoUrl: profile.photoUrl, - onSignOutTap: () { - context.read().signOut(); - Modular.to.navigateToGetStarted(); - }, + fullName: profile.name, + level: _mapStatusToLevel(profile.status), + photoUrl: profile.avatar, + onSignOutTap: () => _onSignOut(cubit, state), ), Transform.translate( offset: const Offset(0, -24), @@ -99,29 +118,31 @@ class StaffProfilePage extends StatelessWidget { const SizedBox(height: UiConstants.space6), SectionTitle(i18n.sections.onboarding), ProfileMenuGrid( + crossAxisCount: 3, + children: [ ProfileMenuItem( icon: UiIcons.user, label: i18n.menu_items.personal_info, - completed: profile.hasPersonalInfo, + completed: profile.phone != null, onTap: () => Modular.to.pushPersonalInfo(), ), ProfileMenuItem( icon: UiIcons.phone, label: i18n.menu_items.emergency_contact, - completed: profile.hasEmergencyContact, + completed: false, onTap: () => Modular.to.pushEmergencyContact(), ), ProfileMenuItem( icon: UiIcons.briefcase, label: i18n.menu_items.experience, - completed: profile.hasExperience, + completed: false, onTap: () => Modular.to.pushExperience(), ), ProfileMenuItem( icon: UiIcons.user, label: i18n.menu_items.attire, - completed: profile.hasAttire, + completed: false, onTap: () => Modular.to.pushAttire(), ), ], @@ -134,19 +155,19 @@ class StaffProfilePage extends StatelessWidget { ProfileMenuItem( icon: UiIcons.file, label: i18n.menu_items.documents, - completed: profile.hasDocuments, + completed: false, onTap: () => Modular.to.pushDocuments(), ), ProfileMenuItem( icon: UiIcons.shield, label: i18n.menu_items.certificates, - completed: profile.hasCertificates, + completed: false, onTap: () => Modular.to.pushCertificates(), ), ProfileMenuItem( icon: UiIcons.file, label: i18n.menu_items.tax_forms, - completed: profile.hasTaxForms, + completed: false, onTap: () => Modular.to.pushTaxForms(), ), ], @@ -219,10 +240,7 @@ class StaffProfilePage extends StatelessWidget { ), const SizedBox(height: UiConstants.space6), LogoutButton( - onTap: () { - context.read().signOut(); - Modular.to.navigateToGetStarted(); - }, + onTap: () => _onSignOut(cubit, state), ), ], ), diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart index ec32de87..4fa8838b 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart @@ -6,17 +6,17 @@ import 'package:design_system/design_system.dart'; /// /// Uses design system tokens for all colors, typography, and spacing. class ReliabilityScoreBar extends StatelessWidget { - final int reliabilityScore; + final int? reliabilityScore; const ReliabilityScoreBar({ super.key, - required this.reliabilityScore, + this.reliabilityScore, }); @override Widget build(BuildContext context) { final i18n = t.staff.profile.reliability_score; - final score = reliabilityScore / 100; + final score = (reliabilityScore ?? 0) / 100; return Container( padding: EdgeInsets.all(UiConstants.space4), @@ -37,7 +37,7 @@ class ReliabilityScoreBar extends StatelessWidget { ), ), Text( - "$reliabilityScore%", + "${reliabilityScore ?? 0}%", style: UiTypography.headline4m.copyWith( color: UiColors.primary, ), diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart index be30bc22..05594a60 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart @@ -6,19 +6,19 @@ import 'package:design_system/design_system.dart'; /// /// Uses design system tokens for all colors, typography, spacing, and icons. class ReliabilityStatsCard extends StatelessWidget { - final int totalShifts; - final double averageRating; - final int onTimeRate; - final int noShowCount; - final int cancellationCount; + final int? totalShifts; + final double? averageRating; + final int? onTimeRate; + final int? noShowCount; + final int? cancellationCount; const ReliabilityStatsCard({ super.key, - required this.totalShifts, - required this.averageRating, - required this.onTimeRate, - required this.noShowCount, - required this.cancellationCount, + this.totalShifts, + this.averageRating, + this.onTimeRate, + this.noShowCount, + this.cancellationCount, }); @override @@ -43,31 +43,31 @@ class ReliabilityStatsCard extends StatelessWidget { _buildStatItem( context, LucideIcons.briefcase, - "$totalShifts", + "${totalShifts ?? 0}", "Shifts", ), _buildStatItem( context, LucideIcons.star, - averageRating.toStringAsFixed(1), + (averageRating ?? 0.0).toStringAsFixed(1), "Rating", ), _buildStatItem( context, LucideIcons.clock, - "$onTimeRate%", + "${onTimeRate ?? 0}%", "On Time", ), _buildStatItem( context, LucideIcons.xCircle, - "$noShowCount", + "${noShowCount ?? 0}", "No Shows", ), _buildStatItem( context, LucideIcons.ban, - "$cancellationCount", + "${cancellationCount ?? 0}", "Cancel.", ), ], diff --git a/apps/mobile/packages/features/staff/profile/lib/src/staff_profile_module.dart b/apps/mobile/packages/features/staff/profile/lib/src/staff_profile_module.dart index 4ad1dcca..014ca130 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/staff_profile_module.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/staff_profile_module.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; +import 'package:firebase_auth/firebase_auth.dart'; import 'data/repositories/profile_repository_impl.dart'; import 'domain/repositories/profile_repository.dart'; @@ -15,19 +16,18 @@ import 'presentation/pages/staff_profile_page.dart'; /// following Clean Architecture principles. /// /// Dependency flow: -/// - Data source (ProfileRepositoryMock) from data_connect package /// - Repository implementation (ProfileRepositoryImpl) delegates to data_connect /// - Use cases depend on repository interface /// - Cubit depends on use cases class StaffProfileModule extends Module { @override void binds(Injector i) { - // Data layer - Get mock from data_connect package - i.addLazySingleton(ProfileRepositoryMock.new); - // Repository implementation - delegates to data_connect i.addLazySingleton( - () => ProfileRepositoryImpl(i.get()), + () => ProfileRepositoryImpl( + connector: ExampleConnector.instance, + firebaseAuth: FirebaseAuth.instance, + ), ); // Use cases - depend on repository interface @@ -39,8 +39,7 @@ class StaffProfileModule extends Module { ); // Presentation layer - Cubit depends on use cases - // Use addLazySingleton to create a new instance per module lifecycle - i.addLazySingleton( + i.add( () => ProfileCubit( i.get(), i.get(), diff --git a/apps/mobile/packages/features/staff/profile/lib/staff_profile.dart b/apps/mobile/packages/features/staff/profile/lib/staff_profile.dart index 4ca64d73..a5b7a40d 100644 --- a/apps/mobile/packages/features/staff/profile/lib/staff_profile.dart +++ b/apps/mobile/packages/features/staff/profile/lib/staff_profile.dart @@ -1,2 +1 @@ -/// Export the modular feature definition. export 'src/staff_profile_module.dart'; diff --git a/apps/mobile/packages/features/staff/profile/pubspec.yaml b/apps/mobile/packages/features/staff/profile/pubspec.yaml index 76c872f6..20fd676f 100644 --- a/apps/mobile/packages/features/staff/profile/pubspec.yaml +++ b/apps/mobile/packages/features/staff/profile/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: path: ../profile_sections/onboarding/emergency_contact staff_profile_experience: path: ../profile_sections/onboarding/experience + firebase_auth: ^6.1.4 dev_dependencies: flutter_test: diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart index 89eecc7a..5f8368a4 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart @@ -1,10 +1,10 @@ import 'dart:async'; -import 'package:firebase_auth/firebase_auth.dart' hide User; +import 'package:firebase_auth/firebase_auth.dart' as auth; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart' as dc; +import 'package:krow_domain/krow_domain.dart'; -import '../../domain/entities/tax_form_entity.dart'; import '../../domain/repositories/tax_forms_repository.dart'; class TaxFormsRepositoryImpl implements TaxFormsRepository { @@ -13,42 +13,34 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { required this.dataConnect, }); - final FirebaseAuth firebaseAuth; + final auth.FirebaseAuth firebaseAuth; final dc.ExampleConnector dataConnect; - String? _staffId; - - Future _getStaffId() async { - if (_staffId != null) return _staffId!; - - final user = firebaseAuth.currentUser; + /// Helper to get the logged-in staff ID. + String _getStaffId() { + final auth.User? user = firebaseAuth.currentUser; if (user == null) { - throw Exception('User not logged in'); + throw Exception('User not authenticated'); } - - final result = - await dataConnect.getStaffByUserId(userId: user.uid).execute(); - final staffs = result.data.staffs; - if (staffs.isEmpty) { - // This might happen if the user is logged in but staff profile isn't created yet or not synced. - // For now, fail hard. Code can be improved to handle this case properly. - throw Exception('No staff profile found for user'); + + final String? staffId = dc.StaffSessionStore.instance.session?.staff?.id; + if (staffId == null || staffId.isEmpty) { + throw Exception('Staff profile is missing or session not initialized.'); } - - _staffId = staffs.first.id; - return _staffId!; + return staffId; } @override - Future> getTaxForms() async { - final staffId = await _getStaffId(); - final result = + Future> getTaxForms() async { + final String staffId = _getStaffId(); + final QueryResult + result = await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute(); - final forms = result.data.taxForms.map((e) => _mapToEntity(e)).toList(); + final List forms = result.data.taxForms.map((dc.GetTaxFormsBystaffIdTaxForms e) => _mapToEntity(e)).toList(); // Check if required forms exist, create if not. - final typesPresent = forms.map((f) => f.type).toSet(); + final Set typesPresent = forms.map((TaxForm f) => f.type).toSet(); bool createdNew = false; if (!typesPresent.contains(TaxFormType.i9)) { @@ -61,9 +53,10 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { } if (createdNew) { - final result2 = + final QueryResult + result2 = await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute(); - return result2.data.taxForms.map((e) => _mapToEntity(e)).toList(); + return result2.data.taxForms.map((dc.GetTaxFormsBystaffIdTaxForms e) => _mapToEntity(e)).toList(); } return forms; @@ -87,7 +80,7 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { await dataConnect .createTaxForm( staffId: staffId, - formType: _mapTypeToGenerated(type), + formType: dc.TaxFormType.values.byName(TaxFormAdapter.typeToString(type)), title: title, ) .subtitle(subtitle) @@ -98,13 +91,14 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { @override Future submitForm(TaxFormType type, Map data) async { - final staffId = await _getStaffId(); - final result = + final String staffId = _getStaffId(); + final QueryResult + result = await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute(); - final targetTypeString = _mapTypeToGenerated(type).name; + final String targetTypeString = TaxFormAdapter.typeToString(type); - final form = result.data.taxForms.firstWhere( - (e) => e.formType.stringValue == targetTypeString, + final dc.GetTaxFormsBystaffIdTaxForms form = result.data.taxForms.firstWhere( + (dc.GetTaxFormsBystaffIdTaxForms e) => e.formType.stringValue == targetTypeString, orElse: () => throw Exception('Form not found for submission'), ); @@ -120,13 +114,14 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { @override Future updateFormStatus(TaxFormType type, TaxFormStatus status) async { - final staffId = await _getStaffId(); - final result = + final String staffId = _getStaffId(); + final QueryResult + result = await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute(); - final targetTypeString = _mapTypeToGenerated(type).name; + final String targetTypeString = TaxFormAdapter.typeToString(type); - final form = result.data.taxForms.firstWhere( - (e) => e.formType.stringValue == targetTypeString, + final dc.GetTaxFormsBystaffIdTaxForms form = result.data.taxForms.firstWhere( + (dc.GetTaxFormsBystaffIdTaxForms e) => e.formType.stringValue == targetTypeString, orElse: () => throw Exception('Form not found for update'), ); @@ -134,73 +129,22 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { .updateTaxForm( id: form.id, ) - .status(_mapStatusToGenerated(status)) + .status(dc.TaxFormStatus.values.byName(TaxFormAdapter.statusToString(status))) .execute(); } - TaxFormEntity _mapToEntity(dc.GetTaxFormsBystaffIdTaxForms form) { - return TaxFormEntity( - type: _mapTypeFromString(form.formType.stringValue), + TaxForm _mapToEntity(dc.GetTaxFormsBystaffIdTaxForms form) { + return TaxFormAdapter.fromPrimitives( + id: form.id, + type: form.formType.stringValue, title: form.title, - subtitle: form.subtitle ?? '', - description: form.description ?? '', - status: _mapStatusFromString(form.status.stringValue), - lastUpdated: form.updatedAt?.toDateTime(), + subtitle: form.subtitle, + description: form.description, + status: form.status.stringValue, + staffId: form.staffId, + formData: form.formData, // Adapter expects dynamic + updatedAt: form.updatedAt?.toDateTime(), ); } - - TaxFormType _mapTypeFromString(String value) { - switch (value) { - case 'I9': - return TaxFormType.i9; - case 'W4': - return TaxFormType.w4; - default: - // Handle unexpected types gracefully if needed, or throw. - // Assuming database integrity for now. - if (value == 'I-9') return TaxFormType.i9; // Fallback just in case - throw Exception('Unknown TaxFormType string: $value'); - } - } - - TaxFormStatus _mapStatusFromString(String value) { - switch (value) { - case 'NOT_STARTED': - return TaxFormStatus.notStarted; - case 'DRAFT': - return TaxFormStatus.inProgress; - case 'SUBMITTED': - return TaxFormStatus.submitted; - case 'APPROVED': - return TaxFormStatus.approved; - case 'REJECTED': - return TaxFormStatus.rejected; - default: - return TaxFormStatus.notStarted; // Default fallback - } - } - - dc.TaxFormType _mapTypeToGenerated(TaxFormType type) { - switch (type) { - case TaxFormType.i9: - return dc.TaxFormType.I9; - case TaxFormType.w4: - return dc.TaxFormType.W4; - } - } - - dc.TaxFormStatus _mapStatusToGenerated(TaxFormStatus status) { - switch (status) { - case TaxFormStatus.notStarted: - return dc.TaxFormStatus.NOT_STARTED; - case TaxFormStatus.inProgress: - return dc.TaxFormStatus.DRAFT; - case TaxFormStatus.submitted: - return dc.TaxFormStatus.SUBMITTED; - case TaxFormStatus.approved: - return dc.TaxFormStatus.APPROVED; - case TaxFormStatus.rejected: - return dc.TaxFormStatus.REJECTED; - } - } } + diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/repositories/tax_forms_repository.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/repositories/tax_forms_repository.dart index 4ae464b2..de7095f5 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/repositories/tax_forms_repository.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/repositories/tax_forms_repository.dart @@ -1,7 +1,7 @@ -import '../entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; abstract class TaxFormsRepository { - Future> getTaxForms(); + Future> getTaxForms(); Future submitForm(TaxFormType type, Map data); Future updateFormStatus(TaxFormType type, TaxFormStatus status); } diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/get_tax_forms_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/get_tax_forms_usecase.dart index f8f95b15..2e203594 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/get_tax_forms_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/get_tax_forms_usecase.dart @@ -1,4 +1,4 @@ -import '../entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/tax_forms_repository.dart'; class GetTaxFormsUseCase { @@ -6,7 +6,7 @@ class GetTaxFormsUseCase { GetTaxFormsUseCase(this._repository); - Future> call() async { + Future> call() async { return _repository.getTaxForms(); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/submit_tax_form_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/submit_tax_form_usecase.dart index 431a99bc..c6a7f143 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/submit_tax_form_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/domain/usecases/submit_tax_form_usecase.dart @@ -1,4 +1,4 @@ -import '../entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/tax_forms_repository.dart'; class SubmitTaxFormUseCase { diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/i9/form_i9_cubit.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/i9/form_i9_cubit.dart index ac6f132e..d4f1972a 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/i9/form_i9_cubit.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/i9/form_i9_cubit.dart @@ -1,5 +1,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../../domain/entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; + import '../../../domain/usecases/submit_tax_form_usecase.dart'; import 'form_i9_state.dart'; diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_cubit.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_cubit.dart index de06dd28..4af9a967 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_cubit.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_cubit.dart @@ -1,5 +1,5 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../../domain/entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../../../domain/usecases/get_tax_forms_usecase.dart'; import 'tax_forms_state.dart'; @@ -11,7 +11,7 @@ class TaxFormsCubit extends Cubit { Future loadTaxForms() async { emit(state.copyWith(status: TaxFormsStatus.loading)); try { - final List forms = await _getTaxFormsUseCase(); + final List forms = await _getTaxFormsUseCase(); emit(state.copyWith( status: TaxFormsStatus.success, forms: forms, diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_state.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_state.dart index 8cef372e..a117fda3 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_state.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/tax_forms/tax_forms_state.dart @@ -1,22 +1,22 @@ import 'package:equatable/equatable.dart'; -import '../../../domain/entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; enum TaxFormsStatus { initial, loading, success, failure } class TaxFormsState extends Equatable { final TaxFormsStatus status; - final List forms; + final List forms; final String? errorMessage; const TaxFormsState({ this.status = TaxFormsStatus.initial, - this.forms = const [], + this.forms = const [], this.errorMessage, }); TaxFormsState copyWith({ TaxFormsStatus? status, - List? forms, + List? forms, String? errorMessage, }) { return TaxFormsState( diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/w4/form_w4_cubit.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/w4/form_w4_cubit.dart index 47088736..536a51fd 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/w4/form_w4_cubit.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/blocs/w4/form_w4_cubit.dart @@ -1,5 +1,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../../domain/entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; + import '../../../domain/usecases/submit_tax_form_usecase.dart'; import 'form_w4_state.dart'; diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/pages/tax_forms_page.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/pages/tax_forms_page.dart index c4acec93..c0abdb8b 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/pages/tax_forms_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/presentation/pages/tax_forms_page.dart @@ -2,7 +2,7 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; -import '../../domain/entities/tax_form_entity.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../blocs/tax_forms/tax_forms_cubit.dart'; import '../blocs/tax_forms/tax_forms_state.dart'; @@ -11,13 +11,7 @@ class TaxFormsPage extends StatelessWidget { @override Widget build(BuildContext context) { - final TaxFormsCubit cubit = Modular.get(); - - if (cubit.state.status == TaxFormsStatus.initial) { - cubit.loadTaxForms(); - } return Scaffold( - backgroundColor: UiColors.background, appBar: AppBar( backgroundColor: UiColors.primary, elevation: 0, @@ -27,9 +21,7 @@ class TaxFormsPage extends StatelessWidget { ), title: Text( 'Tax Documents', - style: UiTypography.headline3m.copyWith( - color: UiColors.bgPopup, - ), + style: UiTypography.headline3m.copyWith(color: UiColors.bgPopup), ), bottom: PreferredSize( preferredSize: const Size.fromHeight(24), @@ -54,40 +46,53 @@ class TaxFormsPage extends StatelessWidget { ), ), ), - body: BlocBuilder( - bloc: Modular.get(), - builder: (BuildContext context, TaxFormsState state) { - if (state.status == TaxFormsStatus.loading) { - return const Center(child: CircularProgressIndicator()); + body: BlocProvider( + create: (BuildContext context) { + final TaxFormsCubit cubit = Modular.get(); + if (cubit.state.status == TaxFormsStatus.initial) { + cubit.loadTaxForms(); } - - if (state.status == TaxFormsStatus.failure) { - return Center(child: Text(state.errorMessage ?? 'Error loading forms')); - } - - return SingleChildScrollView( - padding: const EdgeInsets.symmetric( - horizontal: UiConstants.space5, - vertical: UiConstants.space6, - ), - child: Column( - children: [ - _buildProgressOverview(state.forms), - const SizedBox(height: UiConstants.space6), - ...state.forms.map(_buildFormCard), - const SizedBox(height: UiConstants.space6), - _buildInfoCard(), - ], - ), - ); + return cubit; }, + child: BlocBuilder( + builder: (BuildContext context, TaxFormsState state) { + if (state.status == TaxFormsStatus.loading) { + return const Center(child: CircularProgressIndicator()); + } + + if (state.status == TaxFormsStatus.failure) { + return Center( + child: Text(state.errorMessage ?? 'Error loading forms'), + ); + } + + return SingleChildScrollView( + padding: const EdgeInsets.symmetric( + horizontal: UiConstants.space5, + vertical: UiConstants.space6, + ), + child: Column( + spacing: UiConstants.space6, + children: [ + _buildProgressOverview(state.forms), + ...state.forms.map(_buildFormCard), + _buildInfoCard(), + ], + ), + ); + }, + ), ), ); } - Widget _buildProgressOverview(List forms) { + Widget _buildProgressOverview(List forms) { final int completedCount = forms - .where((TaxFormEntity f) => f.status == TaxFormStatus.submitted || f.status == TaxFormStatus.approved) + .where( + (TaxForm f) => + f.status == TaxFormStatus.submitted || + f.status == TaxFormStatus.approved, + ) .length; final int totalCount = forms.length; final double progress = totalCount > 0 ? completedCount / totalCount : 0.0; @@ -112,8 +117,9 @@ class TaxFormsPage extends StatelessWidget { ), Text( '$completedCount/$totalCount', - style: - UiTypography.body2m.copyWith(color: UiColors.textSecondary), + style: UiTypography.body2m.copyWith( + color: UiColors.textSecondary, + ), ), ], ), @@ -124,9 +130,7 @@ class TaxFormsPage extends StatelessWidget { value: progress, minHeight: 8, backgroundColor: UiColors.background, - valueColor: const AlwaysStoppedAnimation( - UiColors.primary, - ), + valueColor: const AlwaysStoppedAnimation(UiColors.primary), ), ), ], @@ -134,10 +138,10 @@ class TaxFormsPage extends StatelessWidget { ); } - Widget _buildFormCard(TaxFormEntity form) { + Widget _buildFormCard(TaxForm form) { // Helper to get icon based on type (could be in entity or a mapper) final String icon = form.type == TaxFormType.i9 ? '🛂' : '📋'; - + return GestureDetector( onTap: () { if (form.type == TaxFormType.i9) { @@ -164,9 +168,7 @@ class TaxFormsPage extends StatelessWidget { color: UiColors.primary.withOpacity(0.1), borderRadius: UiConstants.radiusLg, ), - child: Center( - child: Text(icon, style: UiTypography.headline1m), - ), + child: Center(child: Text(icon, style: UiTypography.headline1m)), ), const SizedBox(width: UiConstants.space4), Expanded( @@ -187,7 +189,7 @@ class TaxFormsPage extends StatelessWidget { ), const SizedBox(height: UiConstants.space1), Text( - form.subtitle, + form.subtitle ?? '', style: UiTypography.body2m.copyWith( fontWeight: FontWeight.w500, color: UiColors.textSecondary, @@ -195,7 +197,7 @@ class TaxFormsPage extends StatelessWidget { ), const SizedBox(height: UiConstants.space1), Text( - form.description, + form.description ?? '', style: UiTypography.body3r.copyWith( color: UiColors.textSecondary, ), @@ -231,7 +233,11 @@ class TaxFormsPage extends StatelessWidget { child: Row( mainAxisSize: MainAxisSize.min, children: [ - const Icon(UiIcons.success, size: 12, color: UiColors.textSuccess), + const Icon( + UiIcons.success, + size: 12, + color: UiColors.textSuccess, + ), const SizedBox(width: UiConstants.space1), Text( 'Completed', @@ -311,7 +317,9 @@ class TaxFormsPage extends StatelessWidget { const SizedBox(height: UiConstants.space1), Text( 'I-9 and W-4 forms are required by federal law to verify your employment eligibility and set up correct tax withholding.', - style: UiTypography.body3r.copyWith(color: UiColors.textSecondary), + style: UiTypography.body3r.copyWith( + color: UiColors.textSecondary, + ), ), ], ), diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart index abe63ddc..f98e7c15 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart @@ -2,137 +2,92 @@ import 'package:firebase_auth/firebase_auth.dart' as auth; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'package:krow_domain/krow_domain.dart'; - import '../../domain/repositories/bank_account_repository.dart'; -/// Implementation of [BankAccountRepository]. +/// Implementation of [BankAccountRepository] that integrates with Data Connect. class BankAccountRepositoryImpl implements BankAccountRepository { + /// Creates a [BankAccountRepositoryImpl]. const BankAccountRepositoryImpl({ required this.dataConnect, required this.firebaseAuth, }); + /// The Data Connect instance. final ExampleConnector dataConnect; + /// The Firebase Auth instance. final auth.FirebaseAuth firebaseAuth; @override Future> getAccounts() async { - final auth.User? user = firebaseAuth.currentUser; - if (user == null) throw Exception('User not authenticated'); - - // return some mock data for now - return [ - BankAccount( - id: '1', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****1234', - accountName: 'My Checking Account', - type: BankAccountType.checking, - last4: '1234', - isPrimary: true, - ), - BankAccount( - id: '2', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****5678', - accountName: 'My Savings Account', - type: BankAccountType.savings, - last4: '5678', - isPrimary: false, - ), - BankAccount( - id: '3', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****1234', - accountName: 'My Checking Account', - type: BankAccountType.checking, - last4: '1234', - isPrimary: true, - ), - BankAccount( - id: '4', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****5678', - accountName: 'My Savings Account', - type: BankAccountType.savings, - last4: '5678', - isPrimary: false, - ), - BankAccount( - id: '5', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****1234', - accountName: 'My Checking Account', - type: BankAccountType.checking, - last4: '1234', - isPrimary: true, - ), - BankAccount( - id: '6', - userId: user.uid, - bankName: 'Mock Bank', - accountNumber: '****5678', - accountName: 'My Savings Account', - type: BankAccountType.savings, - last4: '5678', - isPrimary: false, - ), - ]; - - final QueryResult result = await dataConnect.getAccountsByOwnerId(ownerId: user.uid).execute(); + final String staffId = _getStaffId(); + + final QueryResult + result = await dataConnect + .getAccountsByOwnerId(ownerId: staffId) + .execute(); return result.data.accounts.map((GetAccountsByOwnerIdAccounts account) { - return BankAccount( + return BankAccountAdapter.fromPrimitives( id: account.id, userId: account.ownerId, bankName: account.bank, - accountNumber: account.last4, // Using last4 as account number representation for now + accountNumber: account.accountNumber, last4: account.last4, - accountName: '', // Not returned by API - type: _mapAccountType(account.type), - isPrimary: account.isPrimary ?? false, + sortCode: account.routeNumber, + type: account.type is Known ? (account.type as Known).value.name : null, + isPrimary: account.isPrimary, ); }).toList(); } @override Future addAccount(BankAccount account) async { - final auth.User? user = firebaseAuth.currentUser; - if (user == null) throw Exception('User not authenticated'); + final String staffId = _getStaffId(); + + final QueryResult + existingAccounts = await dataConnect + .getAccountsByOwnerId(ownerId: staffId) + .execute(); + final bool hasAccounts = existingAccounts.data.accounts.isNotEmpty; + final bool isPrimary = !hasAccounts; await dataConnect.createAccount( bank: account.bankName, - type: _mapDomainType(account.type), - last4: account.last4 ?? account.accountNumber.substring(account.accountNumber.length - 4), - ownerId: user.uid, - ).isPrimary(account.isPrimary).execute(); + type: AccountType.values.byName(BankAccountAdapter.typeToString(account.type)), + last4: _safeLast4(account.last4, account.accountNumber), + ownerId: staffId, + ) + .isPrimary(isPrimary) + .accountNumber(account.accountNumber) + .routeNumber(account.sortCode) + .execute(); } - BankAccountType _mapAccountType(EnumValue type) { - if (type is Known) { - switch (type.value) { - case AccountType.CHECKING: - return BankAccountType.checking; - case AccountType.SAVINGS: - return BankAccountType.savings; - } + /// Helper to get the logged-in staff ID. + String _getStaffId() { + final auth.User? user = firebaseAuth.currentUser; + if (user == null) { + throw Exception('User not authenticated'); } - return BankAccountType.other; + + final String? staffId = StaffSessionStore.instance.session?.staff?.id; + if (staffId == null || staffId.isEmpty) { + throw Exception('Staff profile is missing or session not initialized.'); + } + return staffId; } - AccountType _mapDomainType(BankAccountType type) { - switch (type) { - case BankAccountType.checking: - return AccountType.CHECKING; - case BankAccountType.savings: - return AccountType.SAVINGS; - default: - return AccountType.CHECKING; // Default fallback + /// Ensures we have a last4 value, either from input or derived from account number. + String _safeLast4(String? last4, String accountNumber) { + if (last4 != null && last4.isNotEmpty) { + return last4; } + if (accountNumber.isEmpty) { + return '0000'; + } + if (accountNumber.length < 4) { + return accountNumber.padLeft(4, '0'); + } + return accountNumber.substring(accountNumber.length - 4); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/blocs/bank_account_cubit.dart b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/blocs/bank_account_cubit.dart index 52e9a9b4..5baac87a 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/blocs/bank_account_cubit.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/blocs/bank_account_cubit.dart @@ -1,5 +1,4 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; import '../../domain/arguments/add_bank_account_params.dart'; import '../../domain/usecases/add_bank_account_usecase.dart'; @@ -20,7 +19,7 @@ class BankAccountCubit extends Cubit { Future loadAccounts() async { emit(state.copyWith(status: BankAccountStatus.loading)); try { - final accounts = await _getBankAccountsUseCase(); + final List accounts = await _getBankAccountsUseCase(); emit(state.copyWith( status: BankAccountStatus.loaded, accounts: accounts, @@ -45,12 +44,13 @@ class BankAccountCubit extends Cubit { emit(state.copyWith(status: BankAccountStatus.loading)); // Create domain entity - final newAccount = BankAccount( + final BankAccount newAccount = BankAccount( id: '', // Generated by server usually userId: '', // Handled by Repo/Auth bankName: 'New Bank', // Mock accountNumber: accountNumber, accountName: '', + sortCode: routingNumber, type: type == 'CHECKING' ? BankAccountType.checking : BankAccountType.savings, last4: accountNumber.length > 4 ? accountNumber.substring(accountNumber.length - 4) : accountNumber, isPrimary: false, diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/pages/bank_account_page.dart b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/pages/bank_account_page.dart index 431355e7..f5672232 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/pages/bank_account_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/presentation/pages/bank_account_page.dart @@ -206,7 +206,11 @@ class BankAccountPage extends StatelessWidget { ), ), Text( - strings.account_ending(last4: account.last4), + strings.account_ending( + last4: account.last4?.isNotEmpty == true + ? account.last4! + : '----', + ), style: UiTypography.body2r.copyWith( // Was body2 color: UiColors.textSecondary, ), diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart index a69b4bf7..ccbb3be4 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart @@ -1,25 +1,83 @@ -import 'package:krow_data_connect/krow_data_connect.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; import 'package:krow_domain/krow_domain.dart'; import '../../domain/repositories/emergency_contact_repository_interface.dart'; /// Implementation of [EmergencyContactRepositoryInterface]. /// -/// This repository delegates data operations to the [ProfileRepositoryMock] -/// (or real implementation) from the `data_connect` package. +/// This repository delegates data operations to Firebase Data Connect. class EmergencyContactRepositoryImpl implements EmergencyContactRepositoryInterface { - final ProfileRepositoryMock _profileRepository; + final dc.ExampleConnector _dataConnect; + final FirebaseAuth _firebaseAuth; /// Creates an [EmergencyContactRepositoryImpl]. - EmergencyContactRepositoryImpl(this._profileRepository); + EmergencyContactRepositoryImpl({ + required dc.ExampleConnector dataConnect, + required FirebaseAuth firebaseAuth, + }) : _dataConnect = dataConnect, + _firebaseAuth = firebaseAuth; - @override - Future> getContacts(String staffId) { - return _profileRepository.getEmergencyContacts(staffId); + Future _getStaffId() async { + final user = _firebaseAuth.currentUser; + if (user == null) throw Exception('User not authenticated'); + + final result = + await _dataConnect.getStaffByUserId(userId: user.uid).execute(); + if (result.data.staffs.isEmpty) { + throw Exception('Staff profile not found'); + } + return result.data.staffs.first.id; } @override - Future saveContacts(String staffId, List contacts) { - return _profileRepository.saveEmergencyContacts(staffId, contacts); + Future> getContacts() async { + final staffId = await _getStaffId(); + final result = + await _dataConnect.getEmergencyContactsByStaffId(staffId: staffId).execute(); + + return result.data.emergencyContacts.map((dto) { + return EmergencyContactAdapter.fromPrimitives( + id: dto.id, + name: dto.name, + phone: dto.phone, + relationship: dto.relationship.stringValue, + ); + }).toList(); } -} + + @override + Future saveContacts(List contacts) async { + final staffId = await _getStaffId(); + + // 1. Get existing to delete + final existingResult = + await _dataConnect.getEmergencyContactsByStaffId(staffId: staffId).execute(); + final existingIds = + existingResult.data.emergencyContacts.map((e) => e.id).toList(); + + // 2. Delete all existing + await Future.wait(existingIds.map( + (id) => _dataConnect.deleteEmergencyContact(id: id).execute())); + + // 3. Create new + await Future.wait(contacts.map((contact) { + dc.RelationshipType rel = dc.RelationshipType.OTHER; + switch(contact.relationship) { + case RelationshipType.family: rel = dc.RelationshipType.FAMILY; break; + case RelationshipType.spouse: rel = dc.RelationshipType.SPOUSE; break; + case RelationshipType.friend: rel = dc.RelationshipType.FRIEND; break; + case RelationshipType.other: rel = dc.RelationshipType.OTHER; break; + } + + return _dataConnect + .createEmergencyContact( + name: contact.name, + phone: contact.phone, + relationship: rel, + staffId: staffId, + ) + .execute(); + })); + } +} \ No newline at end of file diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/get_emergency_contacts_arguments.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/get_emergency_contacts_arguments.dart index 8fe22839..af7e9328 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/get_emergency_contacts_arguments.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/get_emergency_contacts_arguments.dart @@ -2,12 +2,9 @@ import 'package:krow_core/core.dart'; /// Arguments for getting emergency contacts use case. class GetEmergencyContactsArguments extends UseCaseArgument { - /// The ID of the staff member. - final String staffId; - /// Creates a [GetEmergencyContactsArguments]. - const GetEmergencyContactsArguments({required this.staffId}); + const GetEmergencyContactsArguments(); @override - List get props => [staffId]; + List get props => []; } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/save_emergency_contacts_arguments.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/save_emergency_contacts_arguments.dart index 2aa195b5..1566d6c1 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/save_emergency_contacts_arguments.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/arguments/save_emergency_contacts_arguments.dart @@ -3,18 +3,14 @@ import 'package:krow_domain/krow_domain.dart'; /// Arguments for saving emergency contacts use case. class SaveEmergencyContactsArguments extends UseCaseArgument { - /// The ID of the staff member. - final String staffId; - /// The list of contacts to save. final List contacts; /// Creates a [SaveEmergencyContactsArguments]. const SaveEmergencyContactsArguments({ - required this.staffId, required this.contacts, }); @override - List get props => [staffId, contacts]; + List get props => [contacts]; } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/extensions/emergency_contact_extensions.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/extensions/emergency_contact_extensions.dart deleted file mode 100644 index d246a6c2..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/extensions/emergency_contact_extensions.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:krow_domain/krow_domain.dart'; - -/// Extensions for [EmergencyContact] to support UI operations. -extension EmergencyContactExtensions on EmergencyContact { - /// returns a copy of this [EmergencyContact] with the given fields replaced. - EmergencyContact copyWith({ - String? name, - String? phone, - String? relationship, - }) { - return EmergencyContact( - name: name ?? this.name, - phone: phone ?? this.phone, - relationship: relationship ?? this.relationship, - ); - } - - /// Returns an empty [EmergencyContact]. - static EmergencyContact empty() { - return const EmergencyContact( - name: '', - phone: '', - relationship: 'family', - ); - } -} diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/repositories/emergency_contact_repository_interface.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/repositories/emergency_contact_repository_interface.dart index 3cd5792b..1f958052 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/repositories/emergency_contact_repository_interface.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/repositories/emergency_contact_repository_interface.dart @@ -6,8 +6,8 @@ import 'package:krow_domain/krow_domain.dart'; /// It must be implemented by the data layer. abstract class EmergencyContactRepositoryInterface { /// Retrieves the list of emergency contacts. - Future> getContacts(String staffId); + Future> getContacts(); /// Saves the list of emergency contacts. - Future saveContacts(String staffId, List contacts); + Future saveContacts(List contacts); } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/get_emergency_contacts_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/get_emergency_contacts_usecase.dart index 5c4faa1b..50f8387c 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/get_emergency_contacts_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/get_emergency_contacts_usecase.dart @@ -16,6 +16,6 @@ class GetEmergencyContactsUseCase @override Future> call(GetEmergencyContactsArguments params) { - return _repository.getContacts(params.staffId); + return _repository.getContacts(); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/save_emergency_contacts_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/save_emergency_contacts_usecase.dart index 49563678..9e0fabe7 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/save_emergency_contacts_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/domain/usecases/save_emergency_contacts_usecase.dart @@ -15,6 +15,6 @@ class SaveEmergencyContactsUseCase @override Future call(SaveEmergencyContactsArguments params) { - return _repository.saveContacts(params.staffId, params.contacts); + return _repository.saveContacts(params.contacts); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_bloc.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_bloc.dart index 73478061..1d4e2169 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_bloc.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_bloc.dart @@ -1,99 +1,34 @@ -import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:krow_domain/krow_domain.dart'; import '../../domain/arguments/get_emergency_contacts_arguments.dart'; import '../../domain/arguments/save_emergency_contacts_arguments.dart'; import '../../domain/usecases/get_emergency_contacts_usecase.dart'; import '../../domain/usecases/save_emergency_contacts_usecase.dart'; +import 'emergency_contact_event.dart'; +import 'emergency_contact_state.dart'; -// Events -abstract class EmergencyContactEvent extends Equatable { - const EmergencyContactEvent(); - - @override - List get props => []; -} - -class EmergencyContactsLoaded extends EmergencyContactEvent {} - -class EmergencyContactAdded extends EmergencyContactEvent {} - -class EmergencyContactRemoved extends EmergencyContactEvent { - final int index; - - const EmergencyContactRemoved(this.index); - - @override - List get props => [index]; -} - -class EmergencyContactUpdated extends EmergencyContactEvent { - final int index; - final EmergencyContact contact; - - const EmergencyContactUpdated(this.index, this.contact); - - @override - List get props => [index, contact]; -} - -class EmergencyContactsSaved extends EmergencyContactEvent {} - -// State -enum EmergencyContactStatus { initial, loading, success, saving, failure } - -class EmergencyContactState extends Equatable { - final EmergencyContactStatus status; - final List contacts; - final String? errorMessage; - - const EmergencyContactState({ - this.status = EmergencyContactStatus.initial, - this.contacts = const [], - this.errorMessage, - }); - - EmergencyContactState copyWith({ - EmergencyContactStatus? status, - List? contacts, - String? errorMessage, - }) { - return EmergencyContactState( - status: status ?? this.status, - contacts: contacts ?? this.contacts, - errorMessage: errorMessage ?? this.errorMessage, - ); - } - - bool get isValid { - if (contacts.isEmpty) return false; - // Check if at least one contact is valid (or all?) - // Usually all added contacts should be valid. - return contacts.every((c) => c.name.isNotEmpty && c.phone.isNotEmpty); - } - - @override - List get props => [status, contacts, errorMessage]; -} +export 'emergency_contact_event.dart'; +export 'emergency_contact_state.dart'; // BLoC class EmergencyContactBloc extends Bloc { final GetEmergencyContactsUseCase getEmergencyContacts; final SaveEmergencyContactsUseCase saveEmergencyContacts; - final String staffId; EmergencyContactBloc({ required this.getEmergencyContacts, required this.saveEmergencyContacts, - required this.staffId, }) : super(const EmergencyContactState()) { on(_onLoaded); on(_onAdded); on(_onRemoved); on(_onUpdated); on(_onSaved); + + add(EmergencyContactsLoaded()); } + Future _onLoaded( EmergencyContactsLoaded event, @@ -102,13 +37,13 @@ class EmergencyContactBloc emit(state.copyWith(status: EmergencyContactStatus.loading)); try { final contacts = await getEmergencyContacts( - GetEmergencyContactsArguments(staffId: staffId), + const GetEmergencyContactsArguments(), ); emit(state.copyWith( - status: EmergencyContactStatus.success, + status: EmergencyContactStatus.loaded, contacts: contacts.isNotEmpty ? contacts - : [const EmergencyContact(name: '', phone: '', relationship: 'family')], + : [EmergencyContact.empty()], )); } catch (e) { emit(state.copyWith( @@ -123,7 +58,7 @@ class EmergencyContactBloc Emitter emit, ) { final updatedContacts = List.from(state.contacts) - ..add(const EmergencyContact(name: '', phone: '', relationship: 'family')); + ..add(EmergencyContact.empty()); emit(state.copyWith(contacts: updatedContacts)); } @@ -153,11 +88,10 @@ class EmergencyContactBloc try { await saveEmergencyContacts( SaveEmergencyContactsArguments( - staffId: staffId, contacts: state.contacts, ), ); - emit(state.copyWith(status: EmergencyContactStatus.success)); + emit(state.copyWith(status: EmergencyContactStatus.saved)); } catch (e) { emit(state.copyWith( status: EmergencyContactStatus.failure, diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_event.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_event.dart new file mode 100644 index 00000000..75c3dcdf --- /dev/null +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_event.dart @@ -0,0 +1,34 @@ +import 'package:equatable/equatable.dart'; +import 'package:krow_domain/krow_domain.dart'; + +abstract class EmergencyContactEvent extends Equatable { + const EmergencyContactEvent(); + + @override + List get props => []; +} + +class EmergencyContactsLoaded extends EmergencyContactEvent {} + +class EmergencyContactAdded extends EmergencyContactEvent {} + +class EmergencyContactRemoved extends EmergencyContactEvent { + final int index; + + const EmergencyContactRemoved(this.index); + + @override + List get props => [index]; +} + +class EmergencyContactUpdated extends EmergencyContactEvent { + final int index; + final EmergencyContact contact; + + const EmergencyContactUpdated(this.index, this.contact); + + @override + List get props => [index, contact]; +} + +class EmergencyContactsSaved extends EmergencyContactEvent {} diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_state.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_state.dart new file mode 100644 index 00000000..8c2386bf --- /dev/null +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/blocs/emergency_contact_state.dart @@ -0,0 +1,38 @@ +import 'package:equatable/equatable.dart'; +import 'package:krow_domain/krow_domain.dart'; + +enum EmergencyContactStatus { initial, loading, loaded, saving, saved, failure } + +class EmergencyContactState extends Equatable { + final EmergencyContactStatus status; + final List contacts; + final String? errorMessage; + + const EmergencyContactState({ + this.status = EmergencyContactStatus.initial, + this.contacts = const [], + this.errorMessage, + }); + + EmergencyContactState copyWith({ + EmergencyContactStatus? status, + List? contacts, + String? errorMessage, + }) { + return EmergencyContactState( + status: status ?? this.status, + contacts: contacts ?? this.contacts, + errorMessage: errorMessage ?? this.errorMessage, + ); + } + + bool get isValid { + if (contacts.isEmpty) return false; + // Check if at least one contact is valid (or all?) + // Usually all added contacts should be valid. + return contacts.every((c) => c.name.isNotEmpty && c.phone.isNotEmpty); + } + + @override + List get props => [status, contacts, errorMessage]; +} diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/pages/emergency_contact_screen.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/pages/emergency_contact_screen.dart index 3d53be99..3e3637cd 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/pages/emergency_contact_screen.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/pages/emergency_contact_screen.dart @@ -17,19 +17,6 @@ import '../widgets/emergency_contact_save_button.dart'; class EmergencyContactScreen extends StatelessWidget { const EmergencyContactScreen({super.key}); - @override - Widget build(BuildContext context) { - return BlocProvider( - create: (_) => - Modular.get()..add(EmergencyContactsLoaded()), - child: const _EmergencyContactView(), - ); - } -} - -class _EmergencyContactView extends StatelessWidget { - const _EmergencyContactView(); - @override Widget build(BuildContext context) { return Scaffold( @@ -48,44 +35,47 @@ class _EmergencyContactView extends StatelessWidget { child: Container(color: UiColors.border, height: 1.0), ), ), - body: BlocConsumer( - listener: (context, state) { - if (state.status == EmergencyContactStatus.failure) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(state.errorMessage ?? 'An error occurred')), - ); - } - }, - builder: (context, state) { - if (state.status == EmergencyContactStatus.loading) { - return const Center(child: CircularProgressIndicator()); - } - return Column( - children: [ - Expanded( - child: SingleChildScrollView( - padding: EdgeInsets.all(UiConstants.space6), - child: Column( - children: [ - const EmergencyContactInfoBanner(), - SizedBox(height: UiConstants.space6), - ...state.contacts.asMap().entries.map( - (entry) => EmergencyContactFormItem( - index: entry.key, - contact: entry.value, - totalContacts: state.contacts.length, + body: BlocProvider( + create: (context) => Modular.get(), + child: BlocConsumer( + listener: (context, state) { + if (state.status == EmergencyContactStatus.failure) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(state.errorMessage ?? 'An error occurred')), + ); + } + }, + builder: (context, state) { + if (state.status == EmergencyContactStatus.loading) { + return const Center(child: CircularProgressIndicator()); + } + return Column( + children: [ + Expanded( + child: SingleChildScrollView( + padding: EdgeInsets.all(UiConstants.space6), + child: Column( + children: [ + const EmergencyContactInfoBanner(), + SizedBox(height: UiConstants.space6), + ...state.contacts.asMap().entries.map( + (entry) => EmergencyContactFormItem( + index: entry.key, + contact: entry.value, + totalContacts: state.contacts.length, + ), ), - ), - const EmergencyContactAddButton(), - SizedBox(height: UiConstants.space16), - ], + const EmergencyContactAddButton(), + SizedBox(height: UiConstants.space16), + ], + ), ), ), - ), - EmergencyContactSaveButton(state: state), - ], - ); - }, + const EmergencyContactSaveButton(), + ], + ); + }, + ), ), ); } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_form_item.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_form_item.dart index b05c2783..8dbf2063 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_form_item.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_form_item.dart @@ -2,7 +2,6 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:krow_domain/krow_domain.dart'; -import '../../domain/extensions/emergency_contact_extensions.dart'; import '../blocs/emergency_contact_bloc.dart'; class EmergencyContactFormItem extends StatelessWidget { @@ -62,7 +61,7 @@ class EmergencyContactFormItem extends StatelessWidget { _buildDropdown( context, value: contact.relationship, - items: const ['family', 'friend', 'partner', 'other'], + items: RelationshipType.values, onChanged: (val) { if (val != null) { context.read().add( @@ -79,6 +78,52 @@ class EmergencyContactFormItem extends StatelessWidget { ); } + Widget _buildDropdown( + BuildContext context, { + required RelationshipType value, + required List items, + required ValueChanged onChanged, + }) { + return Container( + padding: EdgeInsets.symmetric( + horizontal: UiConstants.space4, + vertical: UiConstants.space2, + ), + decoration: BoxDecoration( + color: UiColors.bgPopup, + borderRadius: UiConstants.radiusLg, + border: Border.all(color: UiColors.border), + ), + child: DropdownButtonHideUnderline( + child: DropdownButton( + value: value, + isExpanded: true, + dropdownColor: UiColors.bgPopup, + icon: Icon(UiIcons.chevronDown, color: UiColors.iconSecondary), + items: items.map((type) { + return DropdownMenuItem( + value: type, + child: Text( + _formatRelationship(type), + style: UiTypography.body1r.copyWith(color: UiColors.textPrimary), + ), + ); + }).toList(), + onChanged: onChanged, + ), + ), + ); + } + + String _formatRelationship(RelationshipType type) { + switch(type) { + case RelationshipType.family: return 'Family'; + case RelationshipType.spouse: return 'Spouse'; + case RelationshipType.friend: return 'Friend'; + case RelationshipType.other: return 'Other'; + } + } + Widget _buildHeader(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -150,39 +195,5 @@ class EmergencyContactFormItem extends StatelessWidget { onChanged: onChanged, ); } - - Widget _buildDropdown( - BuildContext context, { - required String value, - required List items, - required Function(String?) onChanged, - }) { - return Container( - padding: EdgeInsets.symmetric(horizontal: UiConstants.space4), - decoration: BoxDecoration( - color: UiColors.bgPopup, - borderRadius: UiConstants.radiusLg, - border: Border.all(color: UiColors.border), - ), - child: DropdownButtonHideUnderline( - child: DropdownButton( - value: items.contains(value) ? value : items.first, - isExpanded: true, - icon: Icon(UiIcons.chevronDown, color: UiColors.textSecondary), - items: items.map((String item) { - return DropdownMenuItem( - value: item, - child: Text( - item.toUpperCase(), - style: UiTypography.body1r.copyWith( - color: UiColors.textPrimary, - ), - ), - ); - }).toList(), - onChanged: onChanged, - ), - ), - ); - } } + diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_save_button.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_save_button.dart index 28c4db1a..e21e94f2 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_save_button.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/presentation/widgets/emergency_contact_save_button.dart @@ -4,54 +4,59 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import '../blocs/emergency_contact_bloc.dart'; class EmergencyContactSaveButton extends StatelessWidget { - final EmergencyContactState state; + const EmergencyContactSaveButton({super.key}); - const EmergencyContactSaveButton({super.key, required this.state}); + void _onSave(BuildContext context) { + context.read().add(EmergencyContactsSaved()); + } @override Widget build(BuildContext context) { - return Container( - padding: EdgeInsets.all(UiConstants.space4), - decoration: BoxDecoration( - color: UiColors.bgPopup, - border: Border(top: BorderSide(color: UiColors.border)), - ), - child: SafeArea( - child: SizedBox( - width: double.infinity, - child: ElevatedButton( - onPressed: state.isValid - ? () => context - .read() - .add(EmergencyContactsSaved()) - : null, - style: ElevatedButton.styleFrom( - backgroundColor: UiColors.primary, - foregroundColor: UiColors.primaryForeground, - disabledBackgroundColor: UiColors.textPlaceholder, - padding: EdgeInsets.symmetric(vertical: UiConstants.space4), - shape: RoundedRectangleBorder( - borderRadius: UiConstants.radiusFull, + return BlocConsumer( + listenWhen: (previous, current) => previous.status != current.status, + listener: (context, state) { + if (state.status == EmergencyContactStatus.saved) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Emergency contacts saved successfully', + style: UiTypography.body2r.textPrimary, ), - elevation: 0, + backgroundColor: UiColors.iconSuccess, ), - child: state.status == EmergencyContactStatus.saving - ? SizedBox( - height: 20.0, - width: 20.0, - child: CircularProgressIndicator( - strokeWidth: 2, - valueColor: - AlwaysStoppedAnimation(UiColors.primaryForeground), - ), - ) - : Text( - 'Save & Continue', - style: UiTypography.title2b, - ), + ); + } + }, + builder: (context, state) { + final isLoading = state.status == EmergencyContactStatus.saving; + return Container( + padding: EdgeInsets.all(UiConstants.space4), + decoration: BoxDecoration( + color: UiColors.bgPopup, + border: Border(top: BorderSide(color: UiColors.border)), ), - ), - ), + child: SafeArea( + child: UiButton.primary( + fullWidth: true, + onPressed: state.isValid && !isLoading + ? () => _onSave(context) + : null, + child: isLoading + ? SizedBox( + height: 20.0, + width: 20.0, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation( + UiColors.primaryForeground, + ), + ), + ) + : const Text('Save & Continue'), + ), + ), + ); + }, ); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/staff_emergency_contact_module.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/staff_emergency_contact_module.dart index 66048891..5dfb7a30 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/staff_emergency_contact_module.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/staff_emergency_contact_module.dart @@ -1,3 +1,4 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'data/repositories/emergency_contact_repository_impl.dart'; @@ -11,10 +12,11 @@ class StaffEmergencyContactModule extends Module { @override void binds(Injector i) { // Repository - // Uses ProfileRepositoryMock from data_connect - i.addLazySingleton(ProfileRepositoryMock.new); i.addLazySingleton( - () => EmergencyContactRepositoryImpl(i.get()), + () => EmergencyContactRepositoryImpl( + dataConnect: ExampleConnector.instance, + firebaseAuth: FirebaseAuth.instance, + ), ); // UseCases @@ -26,11 +28,10 @@ class StaffEmergencyContactModule extends Module { ); // BLoC - i.addLazySingleton( + i.add( () => EmergencyContactBloc( getEmergencyContacts: i.get(), saveEmergencyContacts: i.get(), - staffId: 'mock-staff-id', // TODO: Get direct from auth state ), ); } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/analysis_options.yaml b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/analysis_options.yaml index 0c1670dc..f9b30346 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/analysis_options.yaml +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/analysis_options.yaml @@ -1 +1 @@ -# include: package:flutter_lints/flutter.yaml +include: package:flutter_lints/flutter.yaml diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart index 3e451137..49af4cb9 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart @@ -1,29 +1,58 @@ -import 'package:krow_data_connect/krow_data_connect.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:krow_data_connect/krow_data_connect.dart' as dc; import '../../domain/repositories/experience_repository_interface.dart'; /// Implementation of [ExperienceRepositoryInterface] that delegates to Data Connect. class ExperienceRepositoryImpl implements ExperienceRepositoryInterface { - final ProfileRepositoryMock _mockRepository; + final dc.ExampleConnector _dataConnect; + // ignore: unused_field + final FirebaseAuth _firebaseAuth; - /// Creates a [ExperienceRepositoryImpl] with the given [ProfileRepositoryMock]. - ExperienceRepositoryImpl(this._mockRepository); + /// Creates a [ExperienceRepositoryImpl] using Da a Connect and Auth. + ExperienceRepositoryImpl({ + required dc.ExampleConnector dataConnect, + required FirebaseAuth firebaseAuth, + }) : _dataConnect = dataConnect, + _firebaseAuth = firebaseAuth; - @override - Future> getIndustries(String staffId) { - return _mockRepository.getStaffIndustries(staffId); + Future _getStaff() async { + final user = _firebaseAuth.currentUser; + if (user == null) throw Exception('User not authenticated'); + + final result = + await _dataConnect.getStaffByUserId(userId: user.uid).execute(); + if (result.data.staffs.isEmpty) { + throw Exception('Staff profile not found'); + } + return result.data.staffs.first; } @override - Future> getSkills(String staffId) { - return _mockRepository.getStaffSkills(staffId); + Future> getIndustries() async { + final staff = await _getStaff(); + return staff.industries ?? []; + } + + @override + Future> getSkills() async { + final staff = await _getStaff(); + return staff.skills ?? []; } @override Future saveExperience( - String staffId, List industries, List skills, - ) { - return _mockRepository.saveExperience(staffId, industries, skills); + ) async { + try { + final staff = await _getStaff(); + await _dataConnect + .updateStaff(id: staff.id) + .industries(industries) + .skills(skills) + .execute(); + } catch (e) { + throw Exception('Failed to save experience: $e'); + } } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/get_experience_arguments.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/get_experience_arguments.dart deleted file mode 100644 index 20ca4cc3..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/get_experience_arguments.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:krow_core/core.dart'; - -class GetExperienceArguments extends UseCaseArgument { - final String staffId; - - GetExperienceArguments({required this.staffId}); - - @override - List get props => [staffId]; -} diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/save_experience_arguments.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/save_experience_arguments.dart index 6e911989..255f8554 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/save_experience_arguments.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/arguments/save_experience_arguments.dart @@ -1,16 +1,14 @@ import 'package:krow_core/core.dart'; class SaveExperienceArguments extends UseCaseArgument { - final String staffId; final List industries; final List skills; SaveExperienceArguments({ - required this.staffId, required this.industries, required this.skills, }); @override - List get props => [staffId, industries, skills]; + List get props => [industries, skills]; } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/repositories/experience_repository_interface.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/repositories/experience_repository_interface.dart index 6f2e7d5f..8ddff2ef 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/repositories/experience_repository_interface.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/repositories/experience_repository_interface.dart @@ -1,14 +1,13 @@ /// Interface for accessing staff experience data. abstract class ExperienceRepositoryInterface { /// Fetches the list of industries associated with the staff member. - Future> getIndustries(String staffId); + Future> getIndustries(); /// Fetches the list of skills associated with the staff member. - Future> getSkills(String staffId); + Future> getSkills(); /// Saves the staff member's experience (industries and skills). Future saveExperience( - String staffId, List industries, List skills, ); diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_industries_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_industries_usecase.dart index d23671a1..6094247c 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_industries_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_industries_usecase.dart @@ -1,15 +1,14 @@ import 'package:krow_core/core.dart'; -import '../arguments/get_experience_arguments.dart'; import '../repositories/experience_repository_interface.dart'; /// Use case for fetching staff industries. -class GetStaffIndustriesUseCase implements UseCase> { +class GetStaffIndustriesUseCase implements NoInputUseCase> { final ExperienceRepositoryInterface _repository; GetStaffIndustriesUseCase(this._repository); @override - Future> call(GetExperienceArguments input) { - return _repository.getIndustries(input.staffId); + Future> call() { + return _repository.getIndustries(); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_skills_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_skills_usecase.dart index 7d7915e6..d21234d7 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_skills_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/get_staff_skills_usecase.dart @@ -1,15 +1,14 @@ import 'package:krow_core/core.dart'; -import '../arguments/get_experience_arguments.dart'; import '../repositories/experience_repository_interface.dart'; /// Use case for fetching staff skills. -class GetStaffSkillsUseCase implements UseCase> { +class GetStaffSkillsUseCase implements NoInputUseCase> { final ExperienceRepositoryInterface _repository; GetStaffSkillsUseCase(this._repository); @override - Future> call(GetExperienceArguments input) { - return _repository.getSkills(input.staffId); + Future> call() { + return _repository.getSkills(); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/save_experience_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/save_experience_usecase.dart index 08fc7ada..117ec4d2 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/save_experience_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/domain/usecases/save_experience_usecase.dart @@ -14,7 +14,6 @@ class SaveExperienceUseCase extends UseCase { @override Future call(SaveExperienceArguments params) { return repository.saveExperience( - params.staffId, params.industries, params.skills, ); diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/blocs/experience_bloc.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/blocs/experience_bloc.dart index 4ef70d5a..5bd99c77 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/blocs/experience_bloc.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/blocs/experience_bloc.dart @@ -1,6 +1,6 @@ import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../domain/arguments/get_experience_arguments.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../../domain/arguments/save_experience_arguments.dart'; import '../../domain/usecases/get_staff_industries_usecase.dart'; import '../../domain/usecases/get_staff_skills_usecase.dart'; @@ -17,7 +17,7 @@ abstract class ExperienceEvent extends Equatable { class ExperienceLoaded extends ExperienceEvent {} class ExperienceIndustryToggled extends ExperienceEvent { - final String industry; + final Industry industry; const ExperienceIndustryToggled(this.industry); @override @@ -47,10 +47,10 @@ enum ExperienceStatus { initial, loading, success, failure } class ExperienceState extends Equatable { final ExperienceStatus status; - final List selectedIndustries; + final List selectedIndustries; final List selectedSkills; - final List availableIndustries; - final List availableSkills; + final List availableIndustries; + final List availableSkills; final String? errorMessage; const ExperienceState({ @@ -64,10 +64,10 @@ class ExperienceState extends Equatable { ExperienceState copyWith({ ExperienceStatus? status, - List? selectedIndustries, + List? selectedIndustries, List? selectedSkills, - List? availableIndustries, - List? availableSkills, + List? availableIndustries, + List? availableSkills, String? errorMessage, }) { return ExperienceState( @@ -93,53 +93,26 @@ class ExperienceState extends Equatable { // BLoC class ExperienceBloc extends Bloc { - static const List _kAllIndustries = [ - 'hospitality', - 'food_service', - 'warehouse', - 'events', - 'retail', - 'healthcare', - 'other', - ]; - - static const List _kAllSkills = [ - 'food_service', - 'bartending', - 'event_setup', - 'hospitality', - 'warehouse', - 'customer_service', - 'cleaning', - 'security', - 'retail', - 'cooking', - 'cashier', - 'server', - 'barista', - 'host_hostess', - 'busser', - ]; final GetStaffIndustriesUseCase getIndustries; final GetStaffSkillsUseCase getSkills; final SaveExperienceUseCase saveExperience; - final String staffId; ExperienceBloc({ required this.getIndustries, required this.getSkills, required this.saveExperience, - required this.staffId, }) : super(const ExperienceState( - availableIndustries: _kAllIndustries, - availableSkills: _kAllSkills, + availableIndustries: Industry.values, + availableSkills: ExperienceSkill.values, )) { on(_onLoaded); on(_onIndustryToggled); on(_onSkillToggled); on(_onCustomSkillAdded); on(_onSubmitted); + + add(ExperienceLoaded()); } Future _onLoaded( @@ -148,15 +121,17 @@ class ExperienceBloc extends Bloc { ) async { emit(state.copyWith(status: ExperienceStatus.loading)); try { - final arguments = GetExperienceArguments(staffId: staffId); final results = await Future.wait([ - getIndustries(arguments), - getSkills(arguments), + getIndustries(), + getSkills(), ]); emit(state.copyWith( status: ExperienceStatus.initial, - selectedIndustries: results[0], + selectedIndustries: results[0] + .map((e) => Industry.fromString(e)) + .whereType() + .toList(), selectedSkills: results[1], )); } catch (e) { @@ -171,7 +146,7 @@ class ExperienceBloc extends Bloc { ExperienceIndustryToggled event, Emitter emit, ) { - final industries = List.from(state.selectedIndustries); + final industries = List.from(state.selectedIndustries); if (industries.contains(event.industry)) { industries.remove(event.industry); } else { @@ -211,8 +186,7 @@ class ExperienceBloc extends Bloc { try { await saveExperience( SaveExperienceArguments( - staffId: staffId, - industries: state.selectedIndustries, + industries: state.selectedIndustries.map((e) => e.value).toList(), skills: state.selectedSkills, ), ); diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart index 5e88170a..65e19d44 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart @@ -3,56 +3,44 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_domain/krow_domain.dart'; + import '../blocs/experience_bloc.dart'; -import '../widgets/experience_custom_input.dart'; import '../widgets/experience_section_title.dart'; class ExperiencePage extends StatelessWidget { const ExperiencePage({super.key}); - @override - Widget build(BuildContext context) { - return BlocProvider( - create: (_) => Modular.get()..add(ExperienceLoaded()), - child: const _ExperienceView(), - ); - } -} - -class _ExperienceView extends StatelessWidget { - const _ExperienceView(); - - String _getIndustryLabel(dynamic node, String key) { - switch (key) { - case 'hospitality': return node.hospitality; - case 'food_service': return node.food_service; - case 'warehouse': return node.warehouse; - case 'events': return node.events; - case 'retail': return node.retail; - case 'healthcare': return node.healthcare; - case 'other': return node.other; - default: return key; + String _getIndustryLabel(dynamic node, Industry industry) { + switch (industry) { + case Industry.hospitality: return node.hospitality; + case Industry.foodService: return node.food_service; + case Industry.warehouse: return node.warehouse; + case Industry.events: return node.events; + case Industry.retail: return node.retail; + case Industry.healthcare: return node.healthcare; + case Industry.other: return node.other; } } - String _getSkillLabel(dynamic node, String key) { - switch (key) { - case 'food_service': return node.food_service; - case 'bartending': return node.bartending; - case 'event_setup': return node.event_setup; - case 'hospitality': return node.hospitality; - case 'warehouse': return node.warehouse; - case 'customer_service': return node.customer_service; - case 'cleaning': return node.cleaning; - case 'security': return node.security; - case 'retail': return node.retail; - case 'cooking': return node.cooking; - case 'cashier': return node.cashier; - case 'server': return node.server; - case 'barista': return node.barista; - case 'host_hostess': return node.host_hostess; - case 'busser': return node.busser; - default: return key; + String _getSkillLabel(dynamic node, ExperienceSkill skill) { + switch (skill) { + case ExperienceSkill.foodService: return node.food_service; + case ExperienceSkill.bartending: return node.bartending; + case ExperienceSkill.eventSetup: return node.event_setup; + case ExperienceSkill.hospitality: return node.hospitality; + case ExperienceSkill.warehouse: return node.warehouse; + case ExperienceSkill.customerService: return node.customer_service; + case ExperienceSkill.cleaning: return node.cleaning; + case ExperienceSkill.security: return node.security; + case ExperienceSkill.retail: return node.retail; + case ExperienceSkill.driving: return node.driving; + case ExperienceSkill.cooking: return node.cooking; + case ExperienceSkill.cashier: return node.cashier; + case ExperienceSkill.server: return node.server; + case ExperienceSkill.barista: return node.barista; + case ExperienceSkill.hostHostess: return node.host_hostess; + case ExperienceSkill.busser: return node.busser; } } @@ -61,93 +49,97 @@ class _ExperienceView extends StatelessWidget { final i18n = t.staff.onboarding.experience; return Scaffold( - backgroundColor: UiColors.background, appBar: UiAppBar( title: i18n.title, onLeadingPressed: () => Modular.to.pop(), ), - body: BlocConsumer( - listener: (context, state) { + body: BlocProvider( + create: (context) => Modular.get(), + child: BlocConsumer( + listener: (context, state) { if (state.status == ExperienceStatus.success) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Experience saved successfully')), + ); Modular.to.pop(); + } else if (state.status == ExperienceStatus.failure) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(state.errorMessage ?? 'An error occurred')), + ); } }, - builder: (context, state) { - return Column( - children: [ - Expanded( - child: SingleChildScrollView( - padding: EdgeInsets.all(UiConstants.space5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ExperienceSectionTitle(title: i18n.industries_title), - Text( - i18n.industries_subtitle, - style: UiTypography.body2m.copyWith(color: UiColors.textSecondary), - ), - SizedBox(height: UiConstants.space3), - Wrap( - spacing: UiConstants.space2, - runSpacing: UiConstants.space2, - children: state.availableIndustries - .map( - (i) => UiChip( - label: _getIndustryLabel(i18n.industries, i), - isSelected: state.selectedIndustries.contains(i), - onTap: () => BlocProvider.of(context) - .add(ExperienceIndustryToggled(i)), - variant: state.selectedIndustries.contains(i) - ? UiChipVariant.primary - : UiChipVariant.secondary, - ), - ) - .toList(), - ), - SizedBox(height: UiConstants.space6), - ExperienceSectionTitle(title: i18n.skills_title), - Text( - i18n.skills_subtitle, - style: UiTypography.body2m.copyWith(color: UiColors.textSecondary), - ), - SizedBox(height: UiConstants.space3), - Wrap( - spacing: UiConstants.space2, - runSpacing: UiConstants.space2, - children: state.availableSkills - .map( - (s) => UiChip( - label: _getSkillLabel(i18n.skills, s), - isSelected: state.selectedSkills.contains(s), - onTap: () => BlocProvider.of(context) - .add(ExperienceSkillToggled(s)), - variant: state.selectedSkills.contains(s) - ? UiChipVariant.primary - : UiChipVariant.secondary, - ), - ) - .toList(), - ), - SizedBox(height: UiConstants.space4), - const ExperienceCustomInput(), - SizedBox(height: UiConstants.space4), - _buildCustomSkillsList(state, i18n), - SizedBox(height: UiConstants.space10), - ], - ), + builder: (context, state) { + return Column( + children: [ + Expanded( + child: SingleChildScrollView( + padding: EdgeInsets.all(UiConstants.space5), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ExperienceSectionTitle(title: i18n.industries_title), + Text( + i18n.industries_subtitle, + style: UiTypography.body2m.copyWith(color: UiColors.textSecondary), + ), + SizedBox(height: UiConstants.space3), + Wrap( + spacing: UiConstants.space2, + runSpacing: UiConstants.space2, + children: state.availableIndustries + .map( + (i) => UiChip( + label: _getIndustryLabel(i18n.industries, i), + isSelected: state.selectedIndustries.contains(i), + onTap: () => BlocProvider.of(context) + .add(ExperienceIndustryToggled(i)), + variant: state.selectedIndustries.contains(i) + ? UiChipVariant.primary + : UiChipVariant.secondary, + ), + ) + .toList(), + ), + SizedBox(height: UiConstants.space6), + ExperienceSectionTitle(title: i18n.skills_title), + Text( + i18n.skills_subtitle, + style: UiTypography.body2m.copyWith(color: UiColors.textSecondary), + ), + SizedBox(height: UiConstants.space3), + Wrap( + spacing: UiConstants.space2, + runSpacing: UiConstants.space2, + children: state.availableSkills + .map( + (s) => UiChip( + label: _getSkillLabel(i18n.skills, s), + isSelected: state.selectedSkills.contains(s.value), + onTap: () => BlocProvider.of(context) + .add(ExperienceSkillToggled(s.value)), + variant: state.selectedSkills.contains(s.value) + ? UiChipVariant.primary + : UiChipVariant.secondary, + ), + ) + .toList(), + ), + ], + ), + ), ), - ), - _buildSaveButton(context, state, i18n), - ], - ); - }, + _buildSaveButton(context, state, i18n), + ], + ); + }, + ), ), ); } Widget _buildCustomSkillsList(ExperienceState state, dynamic i18n) { final customSkills = state.selectedSkills - .where((s) => !state.availableSkills.contains(s)) + .where((s) => !state.availableSkills.any((e) => e.value == s)) .toList(); if (customSkills.isEmpty) return const SizedBox.shrink(); @@ -181,25 +173,22 @@ class _ExperienceView extends StatelessWidget { border: Border(top: BorderSide(color: UiColors.border)), ), child: SafeArea( - child: SizedBox( - width: double.infinity, - child: UiButton.primary( - onPressed: state.status == ExperienceStatus.loading - ? null - : () => BlocProvider.of(context).add(ExperienceSubmitted()), - fullWidth: true, - text: state.status == ExperienceStatus.loading ? null : i18n.save_button, - child: state.status == ExperienceStatus.loading - ? SizedBox( - height: 20.0, - width: 20.0, - child: CircularProgressIndicator( - strokeWidth: 2, - valueColor: AlwaysStoppedAnimation(UiColors.white), // UiColors.primaryForeground is white mostly - ), - ) - : null, - ), + child: UiButton.primary( + onPressed: state.status == ExperienceStatus.loading + ? null + : () => BlocProvider.of(context).add(ExperienceSubmitted()), + fullWidth: true, + text: state.status == ExperienceStatus.loading ? null : i18n.save_button, + child: state.status == ExperienceStatus.loading + ? SizedBox( + height: 20.0, + width: 20.0, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(UiColors.white), // UiColors.primaryForeground is white mostly + ), + ) + : null, ), ), ); diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/staff_profile_experience.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/staff_profile_experience.dart index 99a602d7..ab4c83e9 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/staff_profile_experience.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/staff_profile_experience.dart @@ -1,5 +1,6 @@ library staff_profile_experience; +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; @@ -21,7 +22,10 @@ class StaffProfileExperienceModule extends Module { void binds(Injector i) { // Repository i.addLazySingleton( - () => ExperienceRepositoryImpl(i.get()), + () => ExperienceRepositoryImpl( + dataConnect: ExampleConnector.instance, + firebaseAuth: FirebaseAuth.instance, + ), ); // UseCases @@ -36,13 +40,11 @@ class StaffProfileExperienceModule extends Module { ); // BLoC - i.addLazySingleton( + i.add( () => ExperienceBloc( getIndustries: i.get(), getSkills: i.get(), saveExperience: i.get(), - // TODO: Get actual logged in staff ID - staffId: 'current-staff-id', ), ); } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/pubspec.yaml b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/pubspec.yaml index 5d63ba6c..4a28daf8 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/pubspec.yaml +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/pubspec.yaml @@ -17,15 +17,16 @@ dependencies: # Architecture Packages krow_domain: - path: ../../../../../../domain + path: ../../../../../domain krow_core: - path: ../../../../../../core + path: ../../../../../core krow_data_connect: - path: ../../../../../../data_connect + path: ../../../../../data_connect + firebase_auth: ^6.1.2 design_system: - path: ../../../../../../design_system + path: ../../../../../design_system core_localization: - path: ../../../../../../core_localization + path: ../../../../../core_localization dev_dependencies: flutter_test: diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart index 1674b42b..d2cf2667 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart @@ -1,3 +1,4 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; import 'package:krow_domain/krow_domain.dart'; @@ -14,47 +15,71 @@ import '../../domain/repositories/personal_info_repository_interface.dart'; /// - Containing no business logic class PersonalInfoRepositoryImpl implements PersonalInfoRepositoryInterface { final ExampleConnector _dataConnect; + final FirebaseAuth _firebaseAuth; /// Creates a [PersonalInfoRepositoryImpl]. /// - /// Requires the Firebase Data Connect connector instance. + /// Requires the Firebase Data Connect connector instance and Firebase Auth. PersonalInfoRepositoryImpl({ required ExampleConnector dataConnect, - }) : _dataConnect = dataConnect; + required FirebaseAuth firebaseAuth, + }) : _dataConnect = dataConnect, + _firebaseAuth = firebaseAuth; @override - Future getStaffProfile(String staffId) async { - // Query staff data from Firebase Data Connect - final QueryResult result = - await _dataConnect.getStaffById(id: staffId).execute(); - - final staff = result.data.staff; - if (staff == null) { - throw Exception('Staff profile not found for ID: $staffId'); + Future getStaffProfile() async { + final user = _firebaseAuth.currentUser; + if (user == null) { + throw Exception('User not authenticated'); } + // Query staff data from Firebase Data Connect + final QueryResult result = + await _dataConnect.getStaffByUserId(userId: user.uid).execute(); + + if (result.data.staffs.isEmpty) { + throw Exception('Staff profile not found for User ID: ${user.uid}'); + } + + final rawStaff = result.data.staffs.first; + // Map from data_connect DTO to domain entity - return _mapToStaffEntity(staff); + return _mapToStaffEntity(rawStaff); } @override - Future updateStaffProfile(Staff staff) async { - // Update staff data through Firebase Data Connect + Future updateStaffProfile({required String staffId, required Map data}) async { + // Start building the update mutation + var updateBuilder = _dataConnect.updateStaff(id: staffId); + + // Apply updates from map if present + if (data.containsKey('name')) { + updateBuilder = updateBuilder.fullName(data['name'] as String); + } + if (data.containsKey('email')) { + updateBuilder = updateBuilder.email(data['email'] as String); + } + if (data.containsKey('phone')) { + updateBuilder = updateBuilder.phone(data['phone'] as String?); + } + if (data.containsKey('avatar')) { + updateBuilder = updateBuilder.photoUrl(data['avatar'] as String?); + } + if (data.containsKey('preferredLocations')) { + // After schema update and SDK regeneration, preferredLocations accepts List + updateBuilder = updateBuilder.preferredLocations(data['preferredLocations'] as List); + } + + // Execute the update final OperationResult result = - await _dataConnect - .updateStaff(id: staff.id) - .fullName(staff.name) - .email(staff.email) - .phone(staff.phone) - .photoUrl(staff.avatar) - .execute(); + await updateBuilder.execute(); if (result.data.staff_update == null) { throw Exception('Failed to update staff profile'); } // Fetch the updated staff profile to return complete entity - return getStaffProfile(staff.id); + return getStaffProfile(); } @override @@ -69,17 +94,24 @@ class PersonalInfoRepositoryImpl implements PersonalInfoRepositoryInterface { /// Maps a data_connect Staff DTO to a domain Staff entity. /// /// This mapping isolates the domain from data layer implementation details. - Staff _mapToStaffEntity(GetStaffByIdStaff dto) { + Staff _mapToStaffEntity(GetStaffByUserIdStaffs dto) { return Staff( id: dto.id, authProviderId: dto.userId, name: dto.fullName, email: dto.email ?? '', phone: dto.phone, - status: StaffStatus.active, // TODO: Map from actual status field when available - address: dto.addres, avatar: dto.photoUrl, - livePhoto: null, // TODO: Map when available in data schema + status: StaffStatus.active, + address: dto.addres, + totalShifts: dto.totalShifts, + averageRating: dto.averageRating, + onTimeRate: dto.onTimeRate, + noShowCount: dto.noShowCount, + cancellationCount: dto.cancellationCount, + reliabilityScore: dto.reliabilityScore, + // After schema update and SDK regeneration, preferredLocations is List? + preferredLocations: dto.preferredLocations, ); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_mock.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_mock.dart deleted file mode 100644 index e19847f9..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_mock.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:krow_domain/krow_domain.dart'; - -import '../../domain/repositories/personal_info_repository_interface.dart'; - -/// Mock implementation of [PersonalInfoRepositoryInterface]. -/// -/// This mock repository returns hardcoded data for development -/// and will be replaced with [PersonalInfoRepositoryImpl] when -/// Firebase Data Connect is fully configured. -/// -/// Following Clean Architecture, this mock: -/// - Implements the domain repository interface -/// - Returns domain entities (Staff) -/// - Simulates async operations with delays -/// - Provides realistic test data -class PersonalInfoRepositoryMock implements PersonalInfoRepositoryInterface { - // Simulated in-memory storage - Staff? _cachedStaff; - - @override - Future getStaffProfile(String staffId) async { - // Simulate network delay - await Future.delayed(const Duration(milliseconds: 500)); - - // Return cached staff or create mock data - return _cachedStaff ?? - const Staff( - id: 'mock-staff-1', - authProviderId: 'mock-auth-1', - name: 'Krower', - email: 'worker@krow.com', - phone: '', - status: StaffStatus.active, - address: 'Montreal, Quebec', - avatar: null, - livePhoto: null, - ); - } - - @override - Future updateStaffProfile(Staff staff) async { - // Simulate network delay - await Future.delayed(const Duration(milliseconds: 800)); - - // Store in cache - _cachedStaff = staff; - - // Return the updated staff - return staff; - } - - @override - Future uploadProfilePhoto(String filePath) async { - // Simulate upload delay - await Future.delayed(const Duration(seconds: 2)); - - // Return a mock URL - return 'https://example.com/photos/${DateTime.now().millisecondsSinceEpoch}.jpg'; - } -} diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/repositories/personal_info_repository_interface.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/repositories/personal_info_repository_interface.dart index bb327203..da0d595d 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/repositories/personal_info_repository_interface.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/repositories/personal_info_repository_interface.dart @@ -8,16 +8,16 @@ import 'package:krow_domain/krow_domain.dart'; /// Implementations must delegate all data operations through /// the data_connect layer, following Clean Architecture principles. abstract interface class PersonalInfoRepositoryInterface { - /// Retrieves the staff profile for the specified staff ID. + /// Retrieves the staff profile for the current authenticated user. /// /// Returns the complete [Staff] entity with all profile information. - Future getStaffProfile(String staffId); + Future getStaffProfile(); /// Updates the staff profile information. /// - /// Takes a [Staff] entity with updated fields and persists changes + /// Takes a [Staff] entity ID and updated fields map and persists changes /// through the data layer. Returns the updated [Staff] entity. - Future updateStaffProfile(Staff staff); + Future updateStaffProfile({required String staffId, required Map data}); /// Uploads a profile photo and returns the URL. /// diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/get_personal_info_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/get_personal_info_usecase.dart index 51c44264..265e6f8b 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/get_personal_info_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/get_personal_info_usecase.dart @@ -2,23 +2,12 @@ import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; import '../repositories/personal_info_repository_interface.dart'; -/// Arguments for getting staff profile information. -class GetPersonalInfoArguments extends UseCaseArgument { - /// The staff member's ID. - final String staffId; - - const GetPersonalInfoArguments({required this.staffId}); - - @override - List get props => [staffId]; -} - /// Use case for retrieving staff profile information. /// /// This use case fetches the complete staff profile from the repository, /// which delegates to the data_connect layer for data access. class GetPersonalInfoUseCase - implements UseCase { + implements NoInputUseCase { final PersonalInfoRepositoryInterface _repository; /// Creates a [GetPersonalInfoUseCase]. @@ -27,7 +16,7 @@ class GetPersonalInfoUseCase GetPersonalInfoUseCase(this._repository); @override - Future call(GetPersonalInfoArguments arguments) { - return _repository.getStaffProfile(arguments.staffId); + Future call() { + return _repository.getStaffProfile(); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/update_personal_info_usecase.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/update_personal_info_usecase.dart index ea399231..5c5e5b27 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/update_personal_info_usecase.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/domain/usecases/update_personal_info_usecase.dart @@ -3,14 +3,20 @@ import 'package:krow_domain/krow_domain.dart'; import '../repositories/personal_info_repository_interface.dart'; /// Arguments for updating staff profile information. -class UpdatePersonalInfoArguments extends UseCaseArgument { - /// The staff entity with updated information. - final Staff staff; +class UpdatePersonalInfoParams extends UseCaseArgument { + /// The staff member's ID. + final String staffId; - const UpdatePersonalInfoArguments({required this.staff}); + /// The fields to update. + final Map data; + + const UpdatePersonalInfoParams({ + required this.staffId, + required this.data, + }); @override - List get props => [staff]; + List get props => [staffId, data]; } /// Use case for updating staff profile information. @@ -18,7 +24,7 @@ class UpdatePersonalInfoArguments extends UseCaseArgument { /// This use case updates the staff profile information /// through the repository, which delegates to the data_connect layer. class UpdatePersonalInfoUseCase - implements UseCase { + implements UseCase { final PersonalInfoRepositoryInterface _repository; /// Creates an [UpdatePersonalInfoUseCase]. @@ -27,7 +33,10 @@ class UpdatePersonalInfoUseCase UpdatePersonalInfoUseCase(this._repository); @override - Future call(UpdatePersonalInfoArguments arguments) { - return _repository.updateStaffProfile(arguments.staff); + Future call(UpdatePersonalInfoParams params) { + return _repository.updateStaffProfile( + staffId: params.staffId, + data: params.data, + ); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_bloc.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_bloc.dart index 7bba02b1..29f5e700 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_bloc.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_bloc.dart @@ -16,18 +16,15 @@ class PersonalInfoBloc extends Bloc implements Disposable { final GetPersonalInfoUseCase _getPersonalInfoUseCase; final UpdatePersonalInfoUseCase _updatePersonalInfoUseCase; - final String _staffId; /// Creates a [PersonalInfoBloc]. /// - /// Requires the staff ID to load and update the correct profile. + /// Requires the use cases to load and update the profile. PersonalInfoBloc({ required GetPersonalInfoUseCase getPersonalInfoUseCase, required UpdatePersonalInfoUseCase updatePersonalInfoUseCase, - required String staffId, }) : _getPersonalInfoUseCase = getPersonalInfoUseCase, _updatePersonalInfoUseCase = updatePersonalInfoUseCase, - _staffId = staffId, super(const PersonalInfoState()) { on(_onLoadRequested); on(_onFieldUpdated); @@ -42,12 +39,24 @@ class PersonalInfoBloc extends Bloc ) async { emit(state.copyWith(status: PersonalInfoStatus.loading)); try { - final Staff staff = await _getPersonalInfoUseCase( - GetPersonalInfoArguments(staffId: _staffId), - ); + final Staff staff = await _getPersonalInfoUseCase(); + + // Initialize form values from staff entity + // Note: Staff entity currently stores address as a string, but we want to map it to 'preferredLocations' + final Map initialValues = { + 'name': staff.name, + 'email': staff.email, + 'phone': staff.phone, + 'preferredLocations': staff.address != null + ? [staff.address] + : [], // TODO: Map correctly when Staff entity supports list + 'avatar': staff.avatar, + }; + emit(state.copyWith( status: PersonalInfoStatus.loaded, staff: staff, + formValues: initialValues, )); } catch (e) { emit(state.copyWith( @@ -62,49 +71,9 @@ class PersonalInfoBloc extends Bloc PersonalInfoFieldUpdated event, Emitter emit, ) { - if (state.staff == null) return; - - final Staff updatedStaff = _updateField(state.staff!, event.field, event.value); - emit(state.copyWith(staff: updatedStaff)); - } - - /// Updates a specific field in the Staff entity. - /// - /// Returns a new Staff instance with the updated field. - Staff _updateField(Staff staff, String field, String value) { - // Note: Staff entity doesn't have a copyWith method or bio/languages/locations fields - // These fields would need to be added to the Staff entity or handled differently - // For now, we're just returning the same staff - // TODO: Add support for bio, languages, preferred locations to Staff entity - switch (field) { - case 'phone': - // Since Staff is immutable and doesn't have copyWith, we'd need to create a new instance - return Staff( - id: staff.id, - authProviderId: staff.authProviderId, - name: staff.name, - email: staff.email, - phone: value, - status: staff.status, - address: staff.address, - avatar: staff.avatar, - livePhoto: staff.livePhoto, - ); - case 'address': - return Staff( - id: staff.id, - authProviderId: staff.authProviderId, - name: staff.name, - email: staff.email, - phone: staff.phone, - status: staff.status, - address: value, - avatar: staff.avatar, - livePhoto: staff.livePhoto, - ); - default: - return staff; - } + final Map updatedValues = Map.from(state.formValues); + updatedValues[event.field] = event.value; + emit(state.copyWith(formValues: updatedValues)); } /// Handles saving staff profile information. @@ -117,11 +86,27 @@ class PersonalInfoBloc extends Bloc emit(state.copyWith(status: PersonalInfoStatus.saving)); try { final Staff updatedStaff = await _updatePersonalInfoUseCase( - UpdatePersonalInfoArguments(staff: state.staff!), + UpdatePersonalInfoParams( + staffId: state.staff!.id, + data: state.formValues, + ), ); + + // Update local state with the returned staff and keep form values in sync + final Map newValues = { + 'name': updatedStaff.name, + 'email': updatedStaff.email, + 'phone': updatedStaff.phone, + 'preferredLocations': updatedStaff.address != null + ? [updatedStaff.address] + : [], + 'avatar': updatedStaff.avatar, + }; + emit(state.copyWith( status: PersonalInfoStatus.saved, staff: updatedStaff, + formValues: newValues, )); } catch (e) { emit(state.copyWith( diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_event.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_event.dart index 05958631..f50adf60 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_event.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_event.dart @@ -16,7 +16,7 @@ class PersonalInfoLoadRequested extends PersonalInfoEvent { /// Event to update a field value. class PersonalInfoFieldUpdated extends PersonalInfoEvent { final String field; - final String value; + final dynamic value; const PersonalInfoFieldUpdated({ required this.field, diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_state.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_state.dart index 5641a4ed..c97a0931 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_state.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/blocs/personal_info_state.dart @@ -35,6 +35,9 @@ class PersonalInfoState extends Equatable { /// The staff profile information. final Staff? staff; + /// The form values being edited. + final Map formValues; + /// Error message if an error occurred. final String? errorMessage; @@ -42,6 +45,7 @@ class PersonalInfoState extends Equatable { const PersonalInfoState({ this.status = PersonalInfoStatus.initial, this.staff, + this.formValues = const {}, this.errorMessage, }); @@ -49,15 +53,17 @@ class PersonalInfoState extends Equatable { PersonalInfoState copyWith({ PersonalInfoStatus? status, Staff? staff, + Map? formValues, String? errorMessage, }) { return PersonalInfoState( status: status ?? this.status, staff: staff ?? this.staff, + formValues: formValues ?? this.formValues, errorMessage: errorMessage, ); } @override - List get props => [status, staff, errorMessage]; + List get props => [status, staff, formValues, errorMessage]; } diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_content.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_content.dart index 8f9fe8c8..41b89e6b 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_content.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_content.dart @@ -33,23 +33,23 @@ class PersonalInfoContent extends StatefulWidget { class _PersonalInfoContentState extends State { late final TextEditingController _phoneController; - late final TextEditingController _addressController; + late final TextEditingController _locationsController; @override void initState() { super.initState(); _phoneController = TextEditingController(text: widget.staff.phone ?? ''); - _addressController = TextEditingController(text: widget.staff.address ?? ''); + _locationsController = TextEditingController(text: widget.staff.preferredLocations?.join(', ')?? ''); // Listen to changes and update BLoC _phoneController.addListener(_onPhoneChanged); - _addressController.addListener(_onAddressChanged); + _locationsController.addListener(_onAddressChanged); } @override void dispose() { _phoneController.dispose(); - _addressController.dispose(); + _locationsController.dispose(); super.dispose(); } @@ -64,10 +64,18 @@ class _PersonalInfoContentState extends State { } void _onAddressChanged() { + // Split the comma-separated string into a list for storage + // The backend expects List (JSON/List) for preferredLocations + final List locations = _locationsController.text + .split(',') + .map((e) => e.trim()) + .where((e) => e.isNotEmpty) + .toList(); + context.read().add( PersonalInfoFieldUpdated( - field: 'address', - value: _addressController.text, + field: 'preferredLocations', + value: locations, ), ); } @@ -107,7 +115,7 @@ class _PersonalInfoContentState extends State { fullName: widget.staff.name, email: widget.staff.email, phoneController: _phoneController, - addressController: _addressController, + locationsController: _locationsController, enabled: !isSaving, ), const SizedBox(height: UiConstants.space16), // Space for bottom button diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_form.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_form.dart index 7b919362..2897c37b 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_form.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/presentation/widgets/personal_info_form.dart @@ -19,7 +19,7 @@ class PersonalInfoForm extends StatelessWidget { final TextEditingController phoneController; /// Controller for the address field. - final TextEditingController addressController; + final TextEditingController locationsController; /// Whether the form fields are enabled for editing. final bool enabled; @@ -30,7 +30,7 @@ class PersonalInfoForm extends StatelessWidget { required this.fullName, required this.email, required this.phoneController, - required this.addressController, + required this.locationsController, this.enabled = true, }); @@ -63,7 +63,7 @@ class PersonalInfoForm extends StatelessWidget { _FieldLabel(text: i18n.locations_label), const SizedBox(height: UiConstants.space2), _EditableField( - controller: addressController, + controller: locationsController, hint: i18n.locations_hint, enabled: enabled, ), diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/staff_profile_info_module.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/staff_profile_info_module.dart index 5679ae1f..984d010a 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/staff_profile_info_module.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/staff_profile_info_module.dart @@ -1,7 +1,9 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_modular/flutter_modular.dart'; +import 'package:krow_data_connect/krow_data_connect.dart'; -import 'data/repositories/personal_info_repository_mock.dart'; +import 'data/repositories/personal_info_repository_impl.dart'; import 'domain/repositories/personal_info_repository_interface.dart'; import 'domain/usecases/get_personal_info_usecase.dart'; import 'domain/usecases/update_personal_info_usecase.dart'; @@ -14,17 +16,19 @@ import 'presentation/pages/personal_info_page.dart'; /// personal information functionality following Clean Architecture. /// /// The module: -/// - Registers repository implementations (mock for now, will use real impl later) +/// - Registers repository implementations /// - Registers use cases that contain business logic /// - Registers BLoC for state management /// - Defines routes for navigation class StaffProfileInfoModule extends Module { @override void binds(Injector i) { - // Repository - using mock for now - // TODO: Replace with PersonalInfoRepositoryImpl when Firebase Data Connect is configured + // Repository i.addLazySingleton( - PersonalInfoRepositoryMock.new, + () => PersonalInfoRepositoryImpl( + dataConnect: ExampleConnector.instance, + firebaseAuth: FirebaseAuth.instance, + ), ); // Use Cases - delegate business logic to repository @@ -36,12 +40,10 @@ class StaffProfileInfoModule extends Module { ); // BLoC - manages presentation state - // TODO: Get actual staffId from authentication state i.addLazySingleton( () => PersonalInfoBloc( getPersonalInfoUseCase: i.get(), updatePersonalInfoUseCase: i.get(), - staffId: 'mock-staff-1', // TODO: Get from auth ), ); } diff --git a/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart b/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart index 1df58520..1e154963 100644 --- a/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart +++ b/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart @@ -13,6 +13,8 @@ import 'package:staff_attire/staff_attire.dart'; import 'package:staff_shifts/staff_shifts.dart'; import 'package:staff_payments/staff_payements.dart'; import 'package:staff_time_card/staff_time_card.dart'; +import 'package:staff_availability/staff_availability.dart'; +import 'package:staff_clock_in/staff_clock_in.dart'; import 'package:staff_main/src/presentation/blocs/staff_main_cubit.dart'; import 'package:staff_main/src/presentation/constants/staff_main_routes.dart'; @@ -31,58 +33,26 @@ class StaffMainModule extends Module { '/', child: (BuildContext context) => const StaffMainPage(), children: >[ - /// TOODO: FEATURE_NOT_YET_IMPLEMENTED - /// Replace PlaceholderPage with actual module when implemented - ChildRoute( + ModuleRoute( StaffMainRoutes.shifts, - child: (BuildContext context) => const PlaceholderPage(title: 'Shifts'), + module: StaffShiftsModule(), ), - // ModuleRoute( - // StaffMainRoutes.shifts, - // module: StaffShiftsModule(), - // ), - - /// TOODO: FEATURE_NOT_YET_IMPLEMENTED - /// Replace PlaceholderPage with actual module when implemented - ChildRoute( + ModuleRoute( StaffMainRoutes.payments, - child: (BuildContext context) => const PlaceholderPage(title: 'Payments'), + module: StaffPaymentsModule(), ), - // ModuleRoute( - // StaffMainRoutes.payments, - // module: StaffPaymentsModule(), - // ), - - - /// TOODO: FEATURE_NOT_YET_IMPLEMENTED - /// Replace PlaceholderPage with actual module when implemented - ChildRoute( + ModuleRoute( StaffMainRoutes.home, - child: (BuildContext context) => const PlaceholderPage(title: 'Home'), + module: StaffHomeModule(), ), - // ModuleRoute( - // StaffMainRoutes.home, - // module: StaffHomeModule(), - // ), - - - ChildRoute( + ModuleRoute( StaffMainRoutes.clockIn, - child: (BuildContext context) => - const PlaceholderPage(title: 'Clock In'), + module: StaffClockInModule(), ), - - /// TODO: FEATURE_NOT_YET_IMPLEMENTED - /// Replace PlaceholderPage with actual module when implemented - ChildRoute( + ModuleRoute( StaffMainRoutes.profile, - child: (BuildContext context) => const PlaceholderPage(title: 'Profile'), + module: StaffProfileModule(), ), - - // ModuleRoute( - // StaffMainRoutes.profile, - // module: StaffProfileModule(), - // ), ], ); r.module('/onboarding', module: StaffProfileInfoModule()); @@ -103,5 +73,10 @@ class StaffMainModule extends Module { '/time-card', module: StaffTimeCardModule(), ); + r.module('/availability', module: StaffAvailabilityModule()); + r.module( + '/clock-in', + module: StaffClockInModule(), + ); } } diff --git a/apps/mobile/packages/features/staff/staff_main/pubspec.yaml b/apps/mobile/packages/features/staff/staff_main/pubspec.yaml index 47e0e85e..441aea74 100644 --- a/apps/mobile/packages/features/staff/staff_main/pubspec.yaml +++ b/apps/mobile/packages/features/staff/staff_main/pubspec.yaml @@ -49,7 +49,11 @@ dependencies: path: ../payments staff_time_card: path: ../profile_sections/finances/time_card - + staff_availability: + path: ../availability + staff_clock_in: + path: ../clock_in + dev_dependencies: flutter_test: sdk: flutter diff --git a/apps/mobile/pubspec.lock b/apps/mobile/pubspec.lock index c8e7684c..594c00bd 100644 --- a/apps/mobile/pubspec.lock +++ b/apps/mobile/pubspec.lock @@ -428,6 +428,14 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.6" + flutter_launcher_icons: + dependency: transitive + description: + name: flutter_launcher_icons + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" + url: "https://pub.dev" + source: hosted + version: "0.14.4" flutter_lints: dependency: "direct dev" description: @@ -571,6 +579,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + url: "https://pub.dev" + source: hosted + version: "4.3.0" intl: dependency: transitive description: @@ -1079,6 +1095,13 @@ packages: relative: true source: path version: "0.0.1" + staff_availability: + dependency: transitive + description: + path: "packages/features/staff/availability" + relative: true + source: path + version: "0.0.1" staff_bank_account: dependency: transitive description: @@ -1093,6 +1116,13 @@ packages: relative: true source: path version: "0.0.1" + staff_clock_in: + dependency: transitive + description: + path: "packages/features/staff/clock_in" + relative: true + source: path + version: "0.0.1" staff_documents: dependency: transitive description: diff --git a/backend/dataconnect/connector/account/mutations.gql b/backend/dataconnect/connector/account/mutations.gql index 2ff80700..d8d55df4 100644 --- a/backend/dataconnect/connector/account/mutations.gql +++ b/backend/dataconnect/connector/account/mutations.gql @@ -4,6 +4,9 @@ mutation createAccount( $last4: String! $isPrimary: Boolean $ownerId: UUID! + $accountNumber: String + $routeNumber: String + $expiryTime: Timestamp ) @auth(level: USER) { account_insert( data: { @@ -12,6 +15,9 @@ mutation createAccount( last4: $last4 isPrimary: $isPrimary ownerId: $ownerId + accountNumber: $accountNumber + routeNumber: $routeNumber + expiryTime: $expiryTime } ) } @@ -22,6 +28,9 @@ mutation updateAccount( $type: AccountType $last4: String $isPrimary: Boolean + $accountNumber: String + $routeNumber: String + $expiryTime: Timestamp ) @auth(level: USER) { account_update( id: $id @@ -30,6 +39,9 @@ mutation updateAccount( type: $type last4: $last4 isPrimary: $isPrimary + accountNumber: $accountNumber + routeNumber: $routeNumber + expiryTime: $expiryTime } ) } diff --git a/backend/dataconnect/connector/account/queries.gql b/backend/dataconnect/connector/account/queries.gql index 7ad2d186..672211b6 100644 --- a/backend/dataconnect/connector/account/queries.gql +++ b/backend/dataconnect/connector/account/queries.gql @@ -6,9 +6,10 @@ query listAccounts @auth(level: USER) { last4 isPrimary ownerId + accountNumber + routeNumber + expiryTime createdAt - updatedAt - createdBy } } @@ -20,9 +21,10 @@ query getAccountById($id: UUID!) @auth(level: USER) { last4 isPrimary ownerId + accountNumber + routeNumber + expiryTime createdAt - updatedAt - createdBy } } @@ -34,9 +36,10 @@ query getAccountsByOwnerId($ownerId: UUID!) @auth(level: USER) { last4 isPrimary ownerId + accountNumber + routeNumber + expiryTime createdAt - updatedAt - createdBy } } @@ -60,5 +63,8 @@ query filterAccounts( last4 isPrimary ownerId + accountNumber + expiryTime + routeNumber } } diff --git a/backend/dataconnect/connector/application/queries.gql b/backend/dataconnect/connector/application/queries.gql index 6de03a97..dd0e0964 100644 --- a/backend/dataconnect/connector/application/queries.gql +++ b/backend/dataconnect/connector/application/queries.gql @@ -356,3 +356,48 @@ query listAcceptedApplicationsByBusinessForDay( staff { id fullName email phone photoUrl } } } + +#coverage list and today live +query listStaffsApplicationsByBusinessForDay( + $businessId: UUID! + $dayStart: Timestamp! + $dayEnd: Timestamp! + $offset: Int + $limit: Int +) @auth(level: USER) { + applications( + where: { + status: {in: [ACCEPTED, CONFIRMED, CHECKED_IN, CHECKED_OUT, LATE]} + shift: { + date: { ge: $dayStart, le: $dayEnd } + order: { businessId: { eq: $businessId } } + #status: { eq: ACCEPTED } + } + } + offset: $offset + limit: $limit + orderBy: { appliedAt: ASC } + ) { + id + shiftId + roleId + checkInTime + checkOutTime + appliedAt + status + + shiftRole{ + shift{ + location + cost + } + count + assigned + + role{ + name + } + } + staff { id fullName email phone photoUrl } + } +} \ No newline at end of file diff --git a/backend/dataconnect/connector/shiftRole/queries.gql b/backend/dataconnect/connector/shiftRole/queries.gql index e377fbca..d2d23a8d 100644 --- a/backend/dataconnect/connector/shiftRole/queries.gql +++ b/backend/dataconnect/connector/shiftRole/queries.gql @@ -301,12 +301,14 @@ query listShiftRolesByBusinessAndDateRange( $end: Timestamp! $offset: Int $limit: Int + $status: ShiftStatus ) @auth(level: USER) { shiftRoles( where: { shift: { date: { ge: $start, le: $end } order: { businessId: { eq: $businessId } } + status: { eq: $status } } } offset: $offset @@ -435,3 +437,90 @@ query listShiftRolesByBusinessDateRangeCompletedOrders( } } } + +#view for billing period +query listShiftRolesByBusinessAndDatesSummary( + $businessId: UUID! + $start: Timestamp! + $end: Timestamp! + $offset: Int + $limit: Int +) @auth(level: USER) { + shiftRoles( + where: { + shift: { + date: { ge: $start, le: $end } + status: { eq: COMPLETED } + order: { businessId: { eq: $businessId } } + } + } + offset: $offset + limit: $limit + orderBy: { createdAt: DESC } + ) { + roleId + hours + totalValue + role { id name } + } +} + +# ------------------------------------------------------------ +# BUSINESS: GET COMPLETED SHIFTS FOR A BUSINESS (via order.businessId) +# ------------------------------------------------------------ +#for spending insights in home view +query getCompletedShiftsByBusinessId( + $businessId: UUID! + $dateFrom: Timestamp! + $dateTo: Timestamp! + $offset: Int + $limit: Int +) @auth(level: USER) { + shifts( + where: { + order: { businessId: { eq: $businessId } } + status: {in: [IN_PROGRESS, CONFIRMED, COMPLETED, OPEN]} + date: { ge: $dateFrom, le: $dateTo } + } + offset: $offset + limit: $limit + ) { + id + #title + + #orderId + + date + startTime + endTime + hours + cost + + #location + #locationAddress + #latitude + #longitude + #description + + #status + workersNeeded + filled + #filledAt + + #managers + #durationDays + + createdAt + + order { + #id + #eventName + status + #orderType + #businessId + #vendorId + #business { id businessName email contactName } + #vendor { id companyName } + } + } +} diff --git a/backend/dataconnect/connector/staff/mutations.gql b/backend/dataconnect/connector/staff/mutations.gql index 6e272b63..17e2e25e 100644 --- a/backend/dataconnect/connector/staff/mutations.gql +++ b/backend/dataconnect/connector/staff/mutations.gql @@ -15,9 +15,9 @@ mutation CreateStaff( $reliabilityScore: Int $bio: String - #$skills: Any - $industries: Any - $preferredLocations: Any + $skills: [String!] + $industries: [String!] + $preferredLocations: [String!] $maxDistanceMiles: Int $languages: Any $itemsAttire: Any @@ -59,7 +59,7 @@ mutation CreateStaff( reliabilityScore: $reliabilityScore bio: $bio - #skills: $skills + skills: $skills industries: $industries preferredLocations: $preferredLocations maxDistanceMiles: $maxDistanceMiles @@ -106,9 +106,9 @@ mutation UpdateStaff( $reliabilityScore: Int $bio: String - #$skills: Any - $industries: Any - $preferredLocations: Any + $skills: [String!] + $industries: [String!] + $preferredLocations: [String!] $maxDistanceMiles: Int $languages: Any $itemsAttire: Any @@ -151,7 +151,7 @@ mutation UpdateStaff( reliabilityScore: $reliabilityScore bio: $bio - #skills: $skills + skills: $skills industries: $industries preferredLocations: $preferredLocations maxDistanceMiles: $maxDistanceMiles diff --git a/backend/dataconnect/connector/staff/queries.gql b/backend/dataconnect/connector/staff/queries.gql index f93b4e08..5b9dc6f5 100644 --- a/backend/dataconnect/connector/staff/queries.gql +++ b/backend/dataconnect/connector/staff/queries.gql @@ -20,7 +20,7 @@ query listStaff @auth(level: USER) { isRecommended bio - #skills + skills industries preferredLocations maxDistanceMiles @@ -65,7 +65,7 @@ query getStaffById($id: UUID!) @auth(level: USER) { isRecommended bio - #skills + skills industries preferredLocations maxDistanceMiles @@ -111,7 +111,7 @@ query getStaffByUserId($userId: String!) @auth(level: USER) { isRecommended bio - #skills + skills industries preferredLocations maxDistanceMiles @@ -162,7 +162,8 @@ query filterStaff( totalShifts ownerId isRecommended - + skills + industries backgroundCheckStatus employmentType initial diff --git a/backend/dataconnect/schema/account.gql b/backend/dataconnect/schema/account.gql index 65862520..f0422c15 100644 --- a/backend/dataconnect/schema/account.gql +++ b/backend/dataconnect/schema/account.gql @@ -10,7 +10,10 @@ type Account @table(name: "accounts") { type: AccountType! last4: String! isPrimary: Boolean + accountNumber: String + routeNumber: String ownerId: UUID! #staff/business + expiryTime: Timestamp createdAt: Timestamp @default(expr: "request.time") updatedAt: Timestamp @default(expr: "request.time") createdBy: String diff --git a/backend/dataconnect/schema/staff.gql b/backend/dataconnect/schema/staff.gql index fc201204..c098bd21 100644 --- a/backend/dataconnect/schema/staff.gql +++ b/backend/dataconnect/schema/staff.gql @@ -61,9 +61,9 @@ type Staff @table(name: "staffs") { # Profile bio: String - #skills: Any changed it for staffRole - industries: Any - preferredLocations: Any + skills: [String] #changed it for staffRole + industries: [String] + preferredLocations: [String] maxDistanceMiles: Int languages: Any itemsAttire: Any diff --git a/codemagic.yaml b/codemagic.yaml index f75718fc..0ddeaa08 100644 --- a/codemagic.yaml +++ b/codemagic.yaml @@ -2,29 +2,49 @@ client-app-android-apk-build-script: &client-app-android-apk-build-script name: 👷🤖 Build Client App APK (Android) script: | - make -C ../.. mobile-client-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk + dart pub global activate melos + export PATH="$PATH":"$HOME/.pub-cache/bin" + make mobile-install + make mobile-client-build PLATFORM=apk MODE=release client-app-ios-build-script: &client-app-ios-build-script name: 👷🍎 Build Client App (iOS) script: | - make -C ../.. mobile-client-build ENV=$ENV PLATFORM=ios + dart pub global activate melos + export PATH="$PATH":"$HOME/.pub-cache/bin" + make mobile-install + make mobile-client-build PLATFORM=ios MODE=release staff-app-android-apk-build-script: &staff-app-android-apk-build-script name: 👷🤖 Build Staff App APK (Android) script: | - make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk + dart pub global activate melos + export PATH="$PATH":"$HOME/.pub-cache/bin" + make mobile-install + make mobile-staff-build PLATFORM=apk MODE=release staff-app-ios-build-script: &staff-app-ios-build-script name: 👷🍎 Build Staff App (iOS) script: | - make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=ios + dart pub global activate melos + export PATH="$PATH":"$HOME/.pub-cache/bin" + make mobile-install + make mobile-staff-build PLATFORM=ios MODE=release # Reusable script for distributing Android to Firebase distribute-android-script: &distribute-android-script name: 🚛🤖 Distribute Android to Firebase App Distribution script: | # Distribute Android APK - firebase appdistribution:distribute "build/app/outputs/flutter-apk/app-${ENV}-release.apk" \ + # Note: Using wildcards to catch app-release.apk + APP_PATH=$(find apps/mobile/apps -name "app-release.apk" | head -n 1) + if [ -z "$APP_PATH" ]; then + echo "No APK found!" + exit 1 + fi + echo "Found APK at: $APP_PATH" + + firebase appdistribution:distribute "$APP_PATH" \ --app $FIREBASE_APP_ID_ANDROID \ --release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \ --groups "$FIREBASE_TESTER_GROUPS" \ @@ -35,7 +55,14 @@ distribute-ios-script: &distribute-ios-script name: 🚛🍎 Distribute iOS to Firebase App Distribution script: | # Distribute iOS - firebase appdistribution:distribute "build/ios/ipa/app.ipa" \ + IPA_PATH=$(find apps/mobile/apps -name "*.ipa" | head -n 1) + if [ -z "$IPA_PATH" ]; then + echo "No IPA found!" + exit 1 + fi + echo "Found IPA at: $IPA_PATH" + + firebase appdistribution:distribute "$IPA_PATH" \ --app $FIREBASE_APP_ID_IOS \ --release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \ --groups "$FIREBASE_TESTER_GROUPS" \ @@ -47,36 +74,48 @@ workflows: # ================================================================================= client-app-base: &client-app-base name: Client App Base - working_directory: apps/mobile-client + working_directory: . instance_type: mac_mini_m2 max_build_duration: 60 environment: flutter: stable xcode: latest cocoapods: default + artifacts: + - apps/mobile/apps/client/build/app/outputs/flutter-apk/*.apk + - apps/mobile/apps/client/build/ios/ipa/*.ipa + - apps/mobile/apps/client/build/app/outputs/bundle/release/app-release.aab + - /tmp/xcodebuild_logs/*.log + - flutter_drive.log cache: cache_paths: - $HOME/.pub-cache - - $FCI_BUILD_DIR/apps/mobile-client/build - - $FCI_BUILD_DIR/apps/mobile-client/.dart_tool + - $FCI_BUILD_DIR/apps/mobile/apps/client/build + - $FCI_BUILD_DIR/apps/mobile/apps/client/.dart_tool # ================================================================================= # Base workflow for staff_app # ================================================================================= staff-app-base: &staff-app-base name: Staff App Base - working_directory: apps/mobile-staff + working_directory: . instance_type: mac_mini_m2 max_build_duration: 60 environment: flutter: stable xcode: latest cocoapods: default + artifacts: + - apps/mobile/apps/staff/build/app/outputs/flutter-apk/*.apk + - apps/mobile/apps/staff/build/ios/ipa/*.ipa + - apps/mobile/apps/staff/build/app/outputs/bundle/release/app-release.aab + - /tmp/xcodebuild_logs/*.log + - flutter_drive.log cache: cache_paths: - $HOME/.pub-cache - - $FCI_BUILD_DIR/apps/mobile-staff/build - - $FCI_BUILD_DIR/apps/mobile-staff/.dart_tool + - $FCI_BUILD_DIR/apps/mobile/apps/staff/build + - $FCI_BUILD_DIR/apps/mobile/apps/staff/.dart_tool # ================================================================================= # Client App Workflows - Android diff --git a/makefiles/mobile.mk b/makefiles/mobile.mk index d7797efb..b3bb2a84 100644 --- a/makefiles/mobile.mk +++ b/makefiles/mobile.mk @@ -24,11 +24,12 @@ mobile-client-build: @if [ -z "$(PLATFORM)" ]; then \ echo "ERROR: PLATFORM is required (e.g. make mobile-client-build PLATFORM=apk)"; exit 1; \ fi - @echo "--> Building client app for $(PLATFORM)..." + $(eval MODE ?= release) + @echo "--> Building client app for $(PLATFORM) in $(MODE) mode..." @cd $(MOBILE_DIR) && \ - melos run gen:l10n --filter="core_localization" && \ - melos run gen:build --filter="core_localization" && \ - melos exec --scope="krowwithus_client" -- "flutter build $(PLATFORM)" + melos exec --scope="core_localization" -- "dart run slang" && \ + melos exec --scope="core_localization" -- "dart run build_runner build --delete-conflicting-outputs" && \ + melos exec --scope="krowwithus_client" -- "flutter build $(PLATFORM) --$(MODE)" # --- Staff App --- mobile-staff-dev-android: @@ -39,8 +40,9 @@ mobile-staff-build: @if [ -z "$(PLATFORM)" ]; then \ echo "ERROR: PLATFORM is required (e.g. make mobile-staff-build PLATFORM=apk)"; exit 1; \ fi - @echo "--> Building staff app for $(PLATFORM)..." + $(eval MODE ?= release) + @echo "--> Building staff app for $(PLATFORM) in $(MODE) mode..." @cd $(MOBILE_DIR) && \ - melos run gen:l10n --filter="core_localization" && \ - melos run gen:build --filter="core_localization" && \ - melos exec --scope="krowwithus_staff" -- "flutter build $(PLATFORM)" + melos exec --scope="core_localization" -- "dart run slang" && \ + melos exec --scope="core_localization" -- "dart run build_runner build --delete-conflicting-outputs" && \ + melos exec --scope="krowwithus_staff" -- "flutter build $(PLATFORM) --$(MODE)"