From 3db47c4648252a4e8239407058b8008d914187e1 Mon Sep 17 00:00:00 2001 From: Sewmina Date: Thu, 1 Oct 2026 16:03:32 +0530 Subject: [PATCH] init --- .gitignore | 45 ++ .metadata | 36 + README.md | 16 + analysis_options.yaml | 28 + android/.gitignore | 14 + android/app/build.gradle.kts | 44 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 46 ++ .../dealer_network/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2055 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 6904 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1044 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 3866 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3289 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 10408 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5826 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 18165 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8727 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 27262 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/colors.xml | 4 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle.kts | 24 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle.kts | 26 + assets/images/senaro_logo.png | Bin 0 -> 172723 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 154142 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 461 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1297 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2524 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 777 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2329 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 4429 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1297 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 3869 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 7000 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 7000 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 12470 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3543 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 9881 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 11233 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/config/api_config.dart | 6 + lib/labels.dart | 113 ++++ lib/main.dart | 41 ++ lib/models/models.dart | 252 +++++++ lib/screens/add_dealer_screen.dart | 96 +++ lib/screens/admin_screen.dart | 387 +++++++++++ lib/screens/auth_flow.dart | 177 +++++ lib/screens/dealer_stock_screen.dart | 112 ++++ lib/screens/event_form_screen.dart | 189 ++++++ lib/screens/events_screen.dart | 119 ++++ lib/screens/home_shell.dart | 156 +++++ lib/screens/login_requests_screen.dart | 102 +++ lib/screens/service_point_form_screen.dart | 93 +++ lib/screens/service_points_screen.dart | 132 ++++ lib/screens/splash_screen.dart | 27 + lib/screens/stock_detail_screen.dart | 224 +++++++ lib/screens/stock_form_screen.dart | 144 ++++ lib/screens/stock_screen.dart | 168 +++++ lib/services/api_client.dart | 228 +++++++ lib/services/auth_controller.dart | 103 +++ lib/theme/app_theme.dart | 35 + lib/ui/feedback.dart | 18 + pubspec.lock | 466 +++++++++++++ pubspec.yaml | 90 +++ test/widget_test.dart | 28 + web/favicon.png | Bin 0 -> 2831 bytes web/icons/Icon-192.png | Bin 0 -> 13490 bytes web/icons/Icon-512.png | Bin 0 -> 52192 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 8727 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 34520 bytes web/index.html | 38 ++ web/manifest.json | 35 + 102 files changed, 5067 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/dealernetwork/dealer_network/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle.kts create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 assets/images/senaro_logo.png create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/config/api_config.dart create mode 100644 lib/labels.dart create mode 100644 lib/main.dart create mode 100644 lib/models/models.dart create mode 100644 lib/screens/add_dealer_screen.dart create mode 100644 lib/screens/admin_screen.dart create mode 100644 lib/screens/auth_flow.dart create mode 100644 lib/screens/dealer_stock_screen.dart create mode 100644 lib/screens/event_form_screen.dart create mode 100644 lib/screens/events_screen.dart create mode 100644 lib/screens/home_shell.dart create mode 100644 lib/screens/login_requests_screen.dart create mode 100644 lib/screens/service_point_form_screen.dart create mode 100644 lib/screens/service_points_screen.dart create mode 100644 lib/screens/splash_screen.dart create mode 100644 lib/screens/stock_detail_screen.dart create mode 100644 lib/screens/stock_form_screen.dart create mode 100644 lib/screens/stock_screen.dart create mode 100644 lib/services/api_client.dart create mode 100644 lib/services/auth_controller.dart create mode 100644 lib/theme/app_theme.dart create mode 100644 lib/ui/feedback.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3820a95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ +/coverage/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..534977f --- /dev/null +++ b/.metadata @@ -0,0 +1,36 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "adc901062556672b4138e18a4dc62a4be8f4b3c2" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + base_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + - platform: android + create_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + base_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + - platform: ios + create_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + base_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + - platform: web + create_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + base_revision: adc901062556672b4138e18a4dc62a4be8f4b3c2 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000..a4e6a07 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# dealer_network + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..6f0010a --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.dealernetwork.dealer_network" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.dealernetwork.dealer_network" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..238b196 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/dealernetwork/dealer_network/MainActivity.kt b/android/app/src/main/kotlin/com/dealernetwork/dealer_network/MainActivity.kt new file mode 100644 index 0000000..aab9ca4 --- /dev/null +++ b/android/app/src/main/kotlin/com/dealernetwork/dealer_network/MainActivity.kt @@ -0,0 +1,5 @@ +package com.dealernetwork.dealer_network + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..80b730f --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..92ed378e220f9d1550e2bf9fb721fcddf345c352 GIT binary patch literal 2055 zcmZvddpOez7{`A{PG`sEn7fcxEg5sEhPfp>lo1)`(v*;EZe@muuw=7NZ09H>mCIs9 z$gLS7Q@N$come(Tt)WA6JL~`ReV+Gy|9s!)`MlrvCAm1Cl9f`I0suf3ZEx!;uJ%6z zBq7dYx1nGF_^l6ZYvUe2_T{ecX+@k?S8!hsUQOz`PdMGjAywC9(+$oz*-o$SX8t<&{Kt6T%tS@Io)?ex;=fDSm^^Ta+}x%7%ueb_ zA>nMeMM|I9#ygF6zP6r0kSTK|0U26G=iQs$+`cEMl6?4o61K`V=`zGK0$>#7GN1J3 z;uZ74xw$z4b20=$g=Ry&>BUF19}Ub84t}1We>}WcSX8tl)P$ljN+{6&)qTe(&^M*> z0jH^---nunkGPyWcMgN`Lj)aG5a#6#r=GarmwcW=rb7KFAKoKrZ`|G8FE)&a<~wUE zrl+T~SS${Q<0#On3knmK3f=ac#3-SuY5~M|8y04oe`RFsZWu3I8C7q!HadFLe5Sz5 z3xoo>t;nOw`ztDR$p^ZxAk?i0OJ0tS(l+1^A3o4%G%G8s;VR!0;cVxIKpw~*+lyNN z-D)@RTCAQPgnBKHn|AojeLORTyYi#?ykLcA_<-CKbi7~mW5OpoWWGw$=7jPAimS8z zmZeHop;-)@BgDtWO*h4K@m3bTi=N`@BdeYyefz|W;q`gLbM2uDS)D4Xs@4X`1-W~} zgM;oE492IqFRYiBFcpF*qtjzFhbJbQLuo7H*2xUiA4LkgsLODz(S z$5WL^z248$(9&wT%wg+lWI&c%^YiX6cPQz)KXd@UqUCgLEUq1tw8O~UKvjFe^G-Xs zUWtx|96MIq)HKS|*r%@UipAyzra>UY@%jjh?<SCPKaUIXWGxi2QaibNtlpD*@|RpP%(Q>=|4h9{Ho zz}>%1Yl z20{#|RwE({9eD|kq2&h^NJ))Yz1K&m&@MKczqsgRrh>)(@~b_y1ZJK?@!Y%^gTct7 zbPgUYE-Cr^iln%)CMe3wTM!6%2`$f_J!@^<;SVulV`CK+6@~H5rKP3S)xy!*U@>G< z)3qs9qD;qn(s3KGl3l{;{J>zz&NyS({jonq-WK7sqmQ^_-f?p}bdX$O*hG47Z`aKS=rbaA0AHOB~UKg z*rYru ztW1-@9fiTjJw`92RSocjDSQOs*40z)*i!Lwg?i^I+m)A>!*p~S@e2ywHK48de+tcG zb=71Dc>D2EzPoLs+ne zUh~1BA!8)6aW&iTZjqoO2f8rV{iZ4<#VqeMSTZL!m$2BMl3yq*0eCq6xh?(B9!!LF zwHK_wxt6$=$?)0Rh#huQx#gTe8sy2x&8il2t0ObG)?_O*72!lb37qiu-osx1I>|J+ zlLZ0gmxbmV7*0=YE*5Lkn%e3=w&V1C+Os=;5%gD47bD0N`-=JpM(;O}XH}z}~(-(N;3iCBo?` zSS5Mgj{^PO+xfM_QP?5Zuyu~@w=T8Zx17K4WhTd!M0uJ01;zcDiM^Le7}oNX&n7t;O%iZutg literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4178e462c38899559e68cbf4e9228b78a2327e8a GIT binary patch literal 6904 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 KRxVev2>n0g!*S67 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1a647783e201c7525690e67a693a1076d9a364a9 GIT binary patch literal 1044 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 ChiKIR literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..17fdd4326dec08a065029ac3a27531b5ce178108 GIT binary patch literal 10408 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..476fb16876ba352d3f9571ed1bd0951b8a1f7dc9 GIT binary patch literal 5826 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 k(ErQS_Wx$TA$h0r4@qjKow^bcfYkMq5uE@ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..791e7c50e7f83d1f2713d4fda48eecd84c11879c GIT binary patch literal 18165 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a9edb29813c8c758eba024006428b0cf813f3493 GIT binary patch literal 8727 zcmd6Nhdb5(|Ng-tp*nH0w?ju}HrX5;WkyCa%H~Z*R#s+?tfL4yWn>&H2iYVf4jG3e z*~!Y@`}^$kPyBw*>pHJ$?MpPQG!O{n5?V*o7`%V__o5~T z*NK*6LkNUt60NCb67X|1+vPEQw5Dr)^~oMe$TB7B9-^8%DvF-LzADOAJPFpCtc@cg z{5rihVud@<^2HdA>!O92jxVNu?yWGfxCf%{;xM|e;SNh1s_PV~l{@(t+|C9d>fB*g6-GszM*UYp4C?*#I!Q)*s z{YLJatJ=6zM}))3A#fD>7cMpRu8~ot^I&d6LqktbPrc7V?kYj}%9UFesE#gNhz(J; z@%Hu(4V`QXq^z&6N1${2=`LUP^YgC0N?=vwmk(ZYjr>(_BlF~CZ6@Dl7vC;_6 z?{P&3D=a8z(G;*b^!_#*8{2JN-PyP6OH0iIUNa9zJI|hx^}oE%dW}1ZuH6{Ul7Ja3 zdgp>~v%O>R_O6wciG_v5g9i`H<-}T!=ZWbCIK{)6SgwyBKPs>%)_HJ8A<*AEs-R98 z9?8vU_8e~?AMk+nrtNYEV#_@flPH<3rh&=H$)7=cvz_sLeENy;$;B_LdxJ-_$+*`YuhpPX(Tfxs8X8Xb`*A8$gQF_Um#IuIE$@~pb>s2g;7%=+5&Rl> zp-fG8WXrSMMj{gf%lcIB>tGRR2^h7BiHZ9}LrrC6N`Z?WDY=C~Womr9(Q~S0qS61Y zatLd-qVbIBWo5>J^HIZS4`wx3(Jqllly(2{!E5fz!Ka%N65ea>3 z+m{^+P6VJD4mNlZ*k634CY-@mW<=@nhpK73d5keiUuARj0=Haon`s6FYT_Q^d`&{eL{7$aR7sr~cUPnDjJU;UdRn`Pm zcmeW;9x1f7wPx2>SOCOikfLlFu@E1N=vFyD?7y8Zn$Y=>t{nnVK3dEJ(P03CHcouo zJ{cGo*x2~czYwpLhsP62MQ`158q7ucPmK9?arnRP6@Yv)2;E9u9k1m(KXQzzI+zYv zmAjQi2{-#x*y1LUf&JeAdyY*_C6P#}0FUn81y?AD@(7>rs!} z)5%E@U1L9hbRKE?U780vavfgmOw`bmP#a{25j-O^)1%VdLEcfEd3$@CB_;(C=kUa% zc4cEG62nUYncFTk;K-k?V9+C%h{7UP0e~$Hz0XAwgxTUW{nmbsO-|x6Gkdm!wY9rG zeF{gQ6|xf@EHVoOF}!Gcb#)^+M_zw#&r#Cu%GpZe`L#GrLRFQi>FIRj6$pegDRxdS zscUXCpvk&|IKLI3=utbqzW=m&QU|dmCbeElP!$vu1Q<$5Nf{j-4X)rb06HBdh3vJU zr-!F!!^6Y9y}dItGlPSJ=S};!q@_)zX-nGKnKq6!a$x=1$^I`KO>>b{k)7^dW;J-?9O(QARgy!bv^_Irif?_vqq5LcPuMf2HCGE?pBdDR|Voe*LYg=|j z@^Qt*#f5J}f6jZq&(HS-K>p+j8Kl=yQsQ=;hImwRt`0WeT&rSq>3r|YilAV(yu5sl z;n!8atUCoOHR0UUIvN1(!D*cSZ%|NB=ogY!b|b z2v&`;(@-`xG;D3tf&=jR)0^!-3BrUvL2G4s`6P5Ig>RiL;Y&a->xAuZ3n2_|U-&G> zxrvWj9o|`Xzg7UhVAgtMD#!kPW%udc-;6hJ?&#@_tn7|TUL=(2U`rqE%4A(re?Dsf z`)r8pAP5I>cs>gl4lh{h?R^1upOTgl!LGX(pcqL(kSQ^juxZ zFdtE(Vcr?{p0q^C^ONKwsG{=L&bKR(W4zAmk+(NC7wI-y&c?~f$-L-f;U_T5&Vahf znvi=iP*cm5ZHz{D-!)L;CrY42pw!e zasKb$yDOvHiYi$m1AIw}TfLI~Fjg|^hd(2~hf|qAW_)k!c}74W|1}&+UCOOwyn(-g zxv6J*8XD%UOK5Zc9f*5JJ$&TV9!VD?L4g%S(+d+X)6xBzpV#J1;nPlZpKP*#K_lBX zRz1%b7z`AzUIw+12}*{__5Azk24?GTRX-~o)o(eKGH4iX}m-*?PgR@loaL0+%bw2izCYrj)Eu*d1COeyMk4 z&t*D0q3@_5%T6~SnRxPdd%OF6j%0$Eq0v#N;Ve@<3frH2BjE}pl3_^^1V*YL8+b

YaVuM+zTQX7YO$!O$l2AB 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 AY5)KL literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..9396523 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FF000000 + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..dbee657 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ac3b479 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..fb605bc --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/assets/images/senaro_logo.png b/assets/images/senaro_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf67e0a832fa258cf0673c70550542fba14ba51 GIT binary patch literal 172723 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

%qNe&MbzICrB{iw-Asx=SpL3JIfSDq+ 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%0DNzmf;^ttKWROJD4WXcMD?ehdZn@wLM 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�v!X5#1;9G&_f-$-qbwh$2i|ZTb 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%0AZg%h*45uc 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 fLI@$`&Ex+8rF9h?k@G + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 13.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0fd6d09 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.dealernetwork.dealerNetwork; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@main +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..93821afec3b2e4564d0fafa8749561a008264336 GIT binary patch literal 154142 zcmeEug;!MT`#lJPf`oK~q_hH(Lr6C`fFLPINO!jq3IfssN+<)2NOvPhcMd%uAkEOo zP~Vq(@A|FZAMrU$uCC?s&N=USVn2KDXWnaTDiPq(;9+235U422LoqP0!5^_P?%V>u z?FBcEV_;%nsK`In^_kgj^7SxY^F>}ad#BM$$ndbrydmR^N_q&zXHzYA=-HivkPelJ=0SXrgwq3 z)=hoq=gU7KKCY-QKQXd}(dYYO0(bi7>fCEiU$n##gFE@(^}iGN-wFKh1papd|2u*I zoxuN2;D0CZ|DOPp>m3Y?MRsWe7@6!t*k9ZSVdhk-oah(9Y)$<_8pzW?WPT0yg42tX zD?dN0zwR1il|0$;&~8XYDPwe zk%7S{aHXZCW!+q6#>StsvW8aOV9*{{x}ihn7PvXp1#bXyjqzwX8wI&+Eg6aXbXBy` z5!!wm+$16RX;h)dC^yy^V^vEfu$ULMw*M6T=wAD2pa7hpovG%hrwPIni!olAHKE5+ z{EH?G8WR)4%gZ}IKQH06y}r3QQ)Q2crI(nQnOR?Um^DRRtsVMu!q$9Wy?TWxF>CSJ z|J~i)y|}m-Lo3oP(!J^y9UXlZu;BW+m9mB>`Vw>A<|UG8n_-xLd76h`S*{@t30|VS(I7GQMxMv$K<(on28;(c0QNFF$|n&mVRU zjuO)*aVe>wotY{JVOmkL2y=rJ1={?kuP99wA}cgKcXzkAxVXvxw7RNlVqzj(y6+G&ba>>KBeM~2V4|(t z^W7R(25BSEd)5?T{wa?-2(`Vvy|S_bQ%fy2X%L1$Ad-@j($dlb0s_Lq!s6oJ{ck($ z9uB%JX3b;GIJyzJ@PgZ*19#zLFN)#tScjSjxA8cYjpY60F18h2LQup4h7 zJn_TZz_q>YAaxT*(%!psef%u}`@cK35G7h#TDUYAw-mHPPws*nZ~;Gy1Fv_Zs|@vZ z;JV)4r;auAUTa^xcjp^wU@%x&Sy@xl7uoZ8Fqe zOg=j$GG@C}nz&#DF^{o8>h%aR#6lG5m3(EJZf%*ulr>~iF%5^qM@B}br>FP#_Yc>G zvZMmhn-hhkq@*1dj}KaLAegl`!w@d`S$Om^p?BERC$`=XmKmBP-OH1M5;XOS)AZ}g@ zP#BsWcM823*8T5*YRW_T?C`0!go_PK*tDcwo)LI&alt%h#~*#DuNNnon*(WM;yqs# ze0?Q>YINV4ECR_smqTmYxM>@@ov&ew8S7GiPrF7c=I}Qazf4IA~?hQ z5nJ`xi|-nwxS3v>rnV3|EB%!++PvURMsW+LYK#rb`-Bm%+$j>hm(HKlW{W*f>Oz-K z(evz*H?)mmhUr*sT|quEF)=VOFqPkofu5e8fq{XVdSh#=!DZ=9^9vFh3(~AGoiod&7)3-wDhH8o9Jf&znrGEYC& zeB;10uvfljesqcXZziM!trYD}t}cqCU14(iaat)Ub>+xKG6WutH0;(F78MnNlxS{l zhQr@4kJV$_w5}tT2dZ?t$1RvE!UrT&T38!WPGs*;SGSuWXc@DpXlQ8Y>Az%V4z9YX za?VzR1XEM%n=CT&_w$>XG5r3QVGhL|=3NR3Kq+i5PO3 zuR!&Rjg1A>mDi|xoqyTYM3MUb6MgQB7b0wTv+Ys3Gm9%L<9mCcjz{3)6cZ8j1B;C9zb7w3IY4neaR9v%km4kVgc;PHg}+Tg(8V8r?RV^T_|WgHBQ zn+CB*A&kZn=Du7I8c=6XRA)CbG~BISj#XmtUFnWz0X6V@NlA@khJyyhw1H zZ1U}--~Ia{7(Z$rDVCg!oRhZAq{r&?TDwfT`)^599|go?}F%CU!SU2tDbdk2^`9lbaZsw@JJ^#^szZAYYyct zL7a^=L`}l4mlTUVyBOz1toQBV^n7FT7b)F0=4+{}tgNl|xkL|xCNr2RDe~yiBVpl` zKC9G}6k|ly&L>;LP&CCn1xMMlKtGvQOGJhhJY({Z&h3>&nSsCmIp|BEtrIdpYQg7& z*zgelq6&k;bz9%8RfnnaJzWgA9TB`iBIoD#K$|6ZD<;CI9xGO<%z!m?1Oz;I%B8>i z%b*mGjg6_PsrkLa@YVS2Sl|YGfBa74zh-6-iN*BwySK;N$ zDB7T_InGvtUXRN3-?epgBrsY)D~&UhSx4*KF{grZ<^&8qQjw1I>d%%kyh@u8g9+8u ze>stUxj)q3Z`|PJ>EUtF88ecWHeEJS2C|s&o^fVo+E>&kb@o?fRJTj|aB5Vl3m+oz zM>=1X888EcLsIQnA-PlURA#_KhSy;cAK~j7-$Y^M4I_in$lmF4rR#DvK^!(3@Jxcn zG&?&Bo(r_6(b4k2a{vHt5C9tOcWLC4nV+PE`>R|XNeRW{WIHAS#Sh&>u!bq@b?Gu1 z@&#L}8yrek93yILiXIy>nAf~+PG?wVG3kj&~A2-p3(JPk5?WTea<0V2z5XRfZI zp`oF!&Ud!jF(!t4v;dayDxJIIlm|fyw`YA$gtZWm^_Y?@Uh^S=)i>!?x4H_Oq2_~L zZg7{Nk$@Wor&wnkdqor7vHr_dQ8uYdz=cv&D`t_7(8>H?tYk2>Z0iZhB+!nci!R@c zb+VS+YsHF_zWNJl;}}3`06UG0Jk!_jQfyfk-R4~ngk=bE9~)j$-$wN@`2>NW*Ej-{-7$%oAVt~ROB3N$Eg}K}dH~iVr7xDiQ+TwD3uy$7%e-{> zT<~a%;6J!MGuh(u{tAuhgKzg2vWYRQrv1pjEN+zKD@ZS07z{1|H|N90+Zz*lu+ zUZUXySv+)q^6%iX+D|)M4SzQa^OZp3>r`}}qpAzKM1!dXyztF*4{^uzJjYqT$9~hl z^?UV;*Pz?Rsx0yEI1=|Q1=9W*DtIX3I({c%4zo;#y6VSACVl~7`2IzrLw7I#Iyicno0R~!V0`Vk~*dsr)UO!Bn z)j*I{yEnelsw_}^|LbzA$>6kum!+lU%a@A>t9>AR_**Ux(gbZl$2*GIf^*H6g%SM+ z^s5Z7{YuShO1CyQM>jk`37%azsXlE!Z8|?iIXgHA-Fq7oRP0A-Sewo>BePa$AQ@oy z3dbtjN?7|BO5(c#7e#ajn8-k!&`JCLPP56Rrlad$J0z2)kQI%UGyGhsK`6WR`&5-v z!kQZvMiOD3JGK!K5rIb6dx(=pPp4S@ZT|fXXH~R$^ur&k>!(D;TS^)8_ZIGOzv6h}2ZI3h9`*gv2Q*57(EcjG`{t z6%~SsJ=(h#$F9#WVuS_lKQ!Uz=uy0%7?|V6O6=p%ZGpJeecq}E^$b*{>pvnbzS~n} z0Dr?^Y{g_G$$I(!)gk%WOH1dCQOPv*JQ&Oh*&IkDeX$3?&Q0?zGOB@k7>f*onPcfW zT6e~!)u3bsDQ~vnmdY!J;ZT(r*jQOx`A8)AcxG{9tRz7jROx=GSC1?GgKlwM*x3b>mVEIbu2n7eM1Y9X)Kl=&lAxL9pN<0ioZ^y3hjFnY!vz%Ta-$Tar=hUr zXTon%jXaYNV8&%1HY#clx(*wmaQU-P*&KP3jwFMZEE(bz(_UcIq^ISyDl-73ES<(R&{q z9f9Lq22IR&?%?Vh{uJ;yQw%P;31 z;`GrS-Md;asO|!3Tvq_n+hpj_cz%;$gHpvwDz89nrvlpc$nxyJ!gnm(QBD9DnNa%d^RRrhTk2_9%Dl48ku~`UFPi$qHx*(CNU? za#%gHG6bxE%@a82Bdg$VIhu!_rJ^Z6vT=TajU4Q?I z=5L-tBEjP)hlYl7>lg2_nea^;CXbNV!{2><2Y3=N&h1%yV|b884N#)_aRcFWpNk~z z@>t(C7Z*GArSR4ugU+um&*SLC+=e7iD{E>vNbWv!^0eZ%6FjGmJx;k+IT50r3olX;AW!Po~{6-#E^AGo^7Ya{wMOd4hypFd^8;>_Of{9>3J=X z7wWa9J>@*Jv1xhcFTB_j;e~yyB=3D7@v3YD?R$Z%^|4#xvVYMoxA01~aE-I9jHGV& z@^9TA5g9cpnb7Hc4xzguEBD8Wx1Sf74A$YxE8n18nb5A0k;?L>ixhvG%nW01#zlv3j?QbzH9QcKah5T3Qf>r>GWpWOI{**O8aEGpIeimZOb=nQJPxpYn3)*NR4m zW(-1JE4d0LDFp#Ve&FJ_cE_^*9*I;-g!_yebL9yC<%C<)xOmHygWdnz_I5J8|9hfHS>A< zxWw4txnzA<-MPlay8A){)T`&!^lGfj0|Od8mI44xSUk3aR5|u}N|p~v4sql5^_U$b zA0*=`hCiWA-+bet6+(}5U%2+T?1ij7&YcGJh0NdZ?c_#^~%Da0Gq8I z-sWOtUe18Z)c=rDiyb|dOOR*f8wc0u=qSMM3k%KOD0-z>hzm0CRFQ$$F%ADu_${Ya z>tgPvuJm)Q+L$GfSKzp)!Ku3}wFwSE4*La%)>j>QhFL3vycd|f-S8~|;d4WDIBR;$ zDu}$Utx9U|1hbs?yeA^?biM|R?Vt_sf{s&HmsTV9HF3%AYCryOfJK z;@{y$t zU57%%e*#sx>;n=Y<*@Vp9h3Rr7+u7T1ZEw#t zH`#Q>E&$vL_>q#PCf-qXO2g->x>PHTOIxZ*UlhZLDRhr>Ez9@bx9*#Ud^WP*RoxDhX0n zI>Kym4oOK9W$)N|vRyw&RxK;a zs~L@QYsh~9({1A);#bQbgX?~GR5M~u6Vm8=l*=x_l5`MY_UvP($X81ER!m#r+e_vn z|F@sRRLvj`6;TCk2{Ilny^}}c6f<_MlG>`&5h{rxPqrqB+g>hbcBLgphey>@-LLU; zhY`G(Nb27Yluqp%vG1m?a0GdHzT+Hx{w+>wW^61`l}#}1L(oKN{e81nb7PHXTdJp+ zzc%;VFBBj{eXDL@t^r*Wl%hFA^GTJU&7iuv`nu$!`ifuEA*J{D{>!_clhQAwd0aTd zx-A8A5C2xzH0}JvW!&D`DJm(+-_Ugsj(;In{R}Vz(YezWv!7hqg&ey=oZ^;60a=PD zL5jNn>E|wK97P~R05vErJtPjP|4lr7RA1X{P8GX+Cnr}Zj5xyf)2KQ-31}5y^e!{# zkDY!jk(YY_$%;13O_Cjk7)rn7ck70fpD4OxkWum%U9oxM7j&}_JFO9@y-`G~h0ecI zXL`80!KjE?*(5QB_)4>w5X2fVb4{fJQ63Y=&sf-SDfjo%v!q=jUr7D1J)IQp93sV z5PBm&EBNZHFO@$oE{-x<;RO5WJwZ1}yG4+83qD7SBA4tG(O^or=`*u{=>cy9-OUmQ z+UZBt500}A^P68%9Uk4bhA;ehYO?BgFVVr{fjnH7hM_rVwRZxrkfEV~#zAiaj8{JG zAdr^3xnsbSr-ZDd`f^S^H5)(ruIrVMmq@&_wZI0t9xcyP9F`#KcjX3a$k(moF-_K( zNFaX0t?fgROzbC7KJFh-$DL|K_I&mfCly1XdP>o-c&P=)&WEcm;91FjA38TQf%d0@ z1{CkXJ=ndR4W1$f#7pXkBgl~JXDEE7KGVG0?K))nylBXv7^qFg_DH#@|i z>G>M;wab%v9>4-o@|y8~5P@4-e1qtmEvT$tBghbS4)mOaEHU4MWI)&fmb#$JYDc?-+uQi018Tv>hB zB@%a6#9XpX!g@8^gw1lrsPv{Ps#PyH5&W~4={f2g(YI4?eQEybeOszD;P!raE?pOF z(tPwI7)K!(=4U>eD!Hxv8y_g6JD_mOSucNoFlBWCRuIg-$BS2a{u{;ie z(UOHHgG`0J)tMDH>I+rYMvF&T3F`NB#ac1Ya70B#1qE5cl-Uy_%zs%trg7P-XW*b~ zt7g&5qK$}GX9q+odm=bQUE@JNC9B(LJ(kK_lEdcapAY&mg&9*dOb2?+u1w<+XdZI1~D?OVEe%a59B7Y(1$5OJ! z+2z{V)s^LYl7v(-aeorfmV{H&dv~* zszcqpc4jUo{Ss6EZqpWDC|}MuwdOFh7d^yraFyGvF5pZc(0c*a z8Xx%%n9u-C#?(fg{f<4lm>4__5Ts_Yh#-5zayL;`P*})K5nbk$?__$1HzZJ}a-w5X zHh{3E;>|~tzq|V(q9pFKm^=EWz72lK`24xwy227t_EX7>%ORz#sPp8j<17F+teWYn zF!ixY#|&~b5N%y5z}zpg$fI{R2G{saNQ5=H{!`ucu_Cr&#swG`e{u8E`#I;FcHS7m zkP+cU3~U>)=`ic}o=8SVpNDT&sFxWVM?4;5Ok!FYk0~RPJ z4MYopLplDt;x78`IzZ4e@kL^rFx4jw|2aqa;)nW2R zIj39mP<(r?z;)nilB&K_`hfQNJ~HIEB#!vc;?}QUzrZM(mu~}TEFVCrrse|pPXrt&1eqzV>Nxk?2~%b`2_02LEM4p zyR@g=ygQ^`V2RYPkwA>&#Qg9u8*3=&z${piepe9o_KKDhhQfzoQ!ioCrt>*WdVCFr zGK8oHbh$drTDPPIX%*4SzE1$Sho_H^Ji0ERxX7^&ylfX#)9K0X)Ck~>D+2ukFUzIX zF@35BMK&&L7AkdbH0snz>pc&d@|Bt{B zVub#an!rO2C^;rjP(Vu&by;kcBa%GYYbQd@R27z$#mnaZ_}ESnJoTM4=VUHM45Pko zKtU>Y`NM|~rgd&-{b}y`noTnRv5AN%8E)tnJw?9h;*BqQm7WJ}JC&Syf+k4iiq{MP zEEZQX7Yaf^x7YXmNujDkE}5$DQIkjbaA_c2!OHv3D~6Z6vKc|dQc|H`Y34P)TdKRO z$s})u*06jR##G82dqN-L@~zIGD2mj#N`#|!O@DCxr0^Q6>>7{v50p0ed0BHf zclh65&tyXaOmZ}GC{(%FDnESuIGTN(K$`~O?DP*?njLzeRCt~qd4S;90z?mJk^Tk& zDaCfphFqMX#lDuzi4K^IS{WJ-YzISZ(**?u^R=>?U6y2ngRjB(>3*=H5`+TUflg zby8;VL4#sGg-dCbT+b!Zz5aR&lH}Fh3UxLj z4#T(?eDjuZ0fFR>SISt0^$x+wQ5Q4=Rhx{4t0lC2yJq^5X!Z$*T%mSCL6c`I>IXcx zkVZRq?!te4um5)7_&fEp1$-q*6=u-CQ13YlbbxAS)O1TQ5=gj+u?pV3WR)q7ZM7}f zSw;`-I#T&Hn+gD~AiTPO#{>{afPK@mwb8@Bu zJTnGtwPfjkBu@>X0dhaS*Y096bSf#%R47O;`y;(TZ=}GasH>zFH#@4R(fU%0mr!QM zIuKUtzDGP#?oHRu)Qat#*7C``bO|n!P0{2)(|% zo{|Qf51&7OPD>L5Og^a=#C3C=b2BYRWHhO))m={i&XkKFm>59DzO0y(R@myX%g=3L zxQ`$hlV>gi5gp0kw_eu8&~P{?QR9rvRAwFBsN}QOnl;Dw!8%dOrD-B=J0-VWNDa27 z>OAO6Nh!y|(l-U^3g+OW)6=*(Egqi!L>UQcZpgyB9|3sR+-C9AdB38pUZq<@oH$6{ z1M#*eH?fC|+R}I_TPyyN=39}nC9Wm8_+%Tjy8GB|{DpjHX6Md! zBlzD}Q>&)nBKAI$8g=>drF{0VU)%xdmD){E)ly>ZvwFi5hSyH6;5BP$4bgjVH=XZd zc>`Ptpcu(}Z0DG-8v#!bsA4jHFJT|Jt-So$o;b9|0enElb#CaR4UVjU1Aqg7d+7&T zZyCnr=x+y%`HVfxe;hzQO)=zU;$bRk0*JH9>gp3Pik_S_UtgkvPaBZ)U~HUwnh;ANX&}t9hWF1Y)!voDpr+PM=qm)W z)gc(d2pOd=Kqg%RR1f-HJwZ|AnJ@n5U8Kx>@bJOI$TdkMi&Y@{^7rrGH#&6|ie=ym zOhXRBYF3v#^B`6LoP`CK&-6`n@~uLWpuLoNw$qQft!I05%Wo#%oMz*erMlw2-@6wv z1!tjZY2kVEDoP=QCQQ9X4OrP-Pmej<%+JfC1_p{L5#iA^7H3ZeF$+5M3aj3eOo1?GTB?u@V;iZH)VOO-mh<8>|7UA?w6d?D2HN&^96UX7wFu)Cu_~R%3`TL(Q-RUAp-Z!I&2nnUGFAlY&FOL9!BOoeT zTUp84TannFCiGu%x4FdKte6ENJEK$pfG>bhJpb3hKyo7$jYw5*v*3H)dXqrQV4a)f zCOIUa5wtu}hyY;k2(FW_sH6le1x|Cd4{n&HIfv}XrQ<)ZW{k?mr_)QE3rf@w9n0@M z#DPQN-k5f;w@IAp2guOoN*b*sUaBKB@ihkrkh^rkOAdu!^ zatiVdl=m$ZD)@Lp-^^#}Hpv3H>_?6e>RbQN);}^rVl$oo;@HWGLi#7p99)6x4+%0F z!28zAQ)G)XvKjchHkVii{3TP&RJf#|KNB^=LL!-js-6Z8C)lQsKjaKEFf?ccx+Ks) z`Ai#qt}L#P#*e1{*6MJ*sHU%QY!?a~61>;$Y644oF{u10#d5>r0FSOK9-21>S7!&V z2OYR2bNq*{Wm!C=UbCCZ%d!B=0%f_|-!Bw=>3;B4wpojWJJc=Zq%ee(Ht~Jk{M*it ze}pJ5Y&QFm&tZ@y#r~ae>HFiUmOS~P2(^&O^I}A7_wz6smaWxS#aY@}QEwna-4#qyC!nE^N*kTs0gf4dliFI+Ph8;URCSv4#8FF_MV! z3TB3eVc`-2Ar?SpU|m3-0&drc+)uQ{>nK#C{+Ow^if`PVZe8an(5!BOyCf66bQqBiH5-(yZd}vwPOE>26Fb(HvasEq`|=dwcqYI~Q>R6d*A05EqHT2U<5qFkLPf z$2;cB#EdDPXRy_`45~@+cO4eZC@tVt0z!nkI^=96Q46yF3rHBpHDgj^4nIR$eo7}r z!gKtoZrnu|cQUTbb0iJD>r5ufdH8lyp-$7~tHlkwe&@5uD=+{cy=EN&UzesHp>O{z zwMZs&<{n0myQT*sVKN#)2P* z)}lL@lO?sE{VM<3@_;~Ysv4+v%5^Qx%~BN6Dz?gSh;vibMsQNt^$a0KOE$DA zXzJ_4EC+Kwu5Q^N3&B3u>ebc`n&9ZXctd#Hf>3eSG8wq5FsjrEgW3mv&YYXtY2m+{ zXd0{+ru4i7K81|DI*=(uL3?i*|F+@+8xLHU8Bq^ie&T%M`TElz+N=PKOU$a;T2V{gfE1sSCE{OD%`&f!{p5b`(v}sBIQ@DaGouqjw`JdM?Y@(A>tboY%9qIQvCUc$=<`)-i@Ee0sVLm_UGi@|zNHRQL&H z49ry1*SxAc(fNY);zX4SQW8>>0%#PCk94>(9XlT4z&7%!$Fjg`+S4SnW$Qe1I7zF$ z{6jpUj7%xp9(t1+tE}EYS=wreA>`QamOagWvfVC=r%zi?q%v-HCrLIJVXNPlNKX?t z=W1H_L+3Ti`^eJR~m@!;^)M72g0aBR(Kxngh-* z&hRf&`D{|b0ek}18(ZH@8&$ay-V|th-s;&?&wxz5&qHhQL5{?pU!<bYs_dWq$hKH4gKC0mu-kzD%0j{qn!MpLfd#ud2vKU_6(w)aH z>EMa}{P+3l_gNRi#ewbm$WzFiw2V^b*1qy$7SA8RKoA8iVo4tgN{`LYYuxsnE7Ej+ z4dm|_69R<`iHrMz5oVLL7FZ{@w|_ibV?8#v44t0+r}A99 zn-8)&|DcXteNIb5vv4-(z2MqK53CfyT@ni;Gc&ydKgrBE92s*IE(>S%o)}$6DSC*- zD*1&Uodc2hhH(ZaDKNkQZ~z3yv5k5k9?jl}*sWnxPUnta{M?`aDo!Vv3%(og6626z z=?NoiMh%my5FO$_2-|zzo8a^dSAg74a%jK}LzII1d6x%P9+cM(f{tz{3^7ofRYK)_ z5K1Z(@qWIK*#?i`LTJH$HrZR>T_7Qpc{!}d%UIGzrtkoCz-Rc8n8IrXuN zo~(-=#_N4X>43kb#BUV$4(RW5LJU^}ZWCHtX45?EMRkm$)8 zFuKemkpK}4$w}P#$H{nKnC!KJ!|T^mEy36EEJ_SPf0xd88=QgCT{(BK&iA~Qawaz? z#EQ7IeX{CgEMuL%nI8wY#02pFz^<6eM`X-czw7G+VW{EZrig1`)56<0>noFiF5g$B z>MW-r(!cyZ;rhCm)1v*ImjLkDELWTIF9rhIQ;S@KB zbeNDtk7Ii?pWRqnx533m#zY9x0k|vO$F*3T;WPtCWs&Uqx(jP-tZ?^aQ@TgZFZ>an z^ML8T80EhlZ9rav$>i8A_p1Iu{NqKd+xw|1NhCF#-~I0mTZn$A@4X`&v$CB`-d+2S>hn&z>^G2 zW5BcJ`ctOWV-m5*rQ_euwW!BS4o_Mfh>Q6Ue0`3TKHh}a)tv!fwz07N^mFFSM;c>? zfe6n4GZovYi7`b^g8O%*@gL|ae}IFOE&n4$a_sRXR3BA~LI4_4hgvg+M= zqbtt7Yj>M92LLCD#dXIOJ|#a7A74~C*ZmC6LOa`BYV&#pzR@Z}LDjoMkJRP9Ih34V zj4W|wE2lCYtSK*L?@@f$JzmdyzdIq%bvqnuCArhzF`N6;S_~t(KB_~JEmzn&vzhRX zaLF+*KMa^CflcspFxTj}_l6PXz_PJ|2);xRF+d&)u@xd5Pj5-dOlhogzFd;lLl2~v z8W!)S@bmE8yLYb2Fs{bmBm{w|54G&lPA(!im#Z`ia?@i}s z=e4)iJ{R6?@AQ}|FJXR1U9fVO^5h-fEs12Bd*46JOqh{w2orHB ztYeO%9AJTmNK`$<2^iv@(y=CtjgKGg#|2+d2JcfU`0|`?UB?{FkD(}=aQGK%747ah z@Q~yLGg~SASz7~3835fOuXd1E^Tb)}4Psp>SS*RnZ_P`~nQ< zL12QAI_PEr^PIM`volw6Ij9QJ`%&DoX-5M*Cl<*rk*IU2C&zx7>1k;UG&JIY=>Bm0 zwGuPN!L>sn^;UP2zRCir&>wrP!`y`98-y5$y>4+Nma|ueq;T?}! zwB2nkI;MM6yXIKp+Fp8A*amDJnW~ds$tp$}?{{&%;871PbAM>>_(>(B--@^_IUXFN zCmO6J4rqP6BTpkgY=G{j&K`I}P3GA)qXJRq$!2HC^9|l(o@%_M&e>}1ieg9&vh#cc z|LnPF+K+9?vJ)eRDFNO*-q^`cV#A49Z-F5ISgGo4GJXGmG6Lu{21dqwBG}W1<6KOW zf-eE50jh}z4wwIGfeUaZ{%6{_v514gt)QfY!#z~!7|TBQ9bR2gAN6qbJlJ;9iK+&B zI6!CjUha%hOXUM~cEpq3ZZoE9nXIUix6jjf=@#d= z#Tgt|X5#O|1c9%6ou`4Y##X8l7r7!+j#mCZvF7viB+szwxF#-iX(qY3^!xQ6!+mjY zb&P#&YekfDJ&TEz-+AtqD_Bu%croz0UMVPE`SE~AT@A{Y!MBgBH4|8v!F0}leZU_K zz#A)!hih{z->b2#7(em+i3#Wa37+VgOpRQQHnHrdJTWn`v!gMs zmcPHFfu9;swGY{_4aD!2=iJOyiv#w!cQiO8l2zwHI|kbNIw-Sldy79~V+jopfkIuM z9)iX-ip;owI9b)nS;`Sc#h6tK`Y-^_VCn?BUCp(%uU|YDNVDV!m6|z(s%L_jyV|-@82dNK&Q2lOU^Xc2-yqtFuF%-Yk_R)-jvhx)hm+Jl?#L z$>lZO5CI6T^ph4_MQxP$aJukm`u^2s#CiRPe9x-;`r^-@(0r@uY|=u2rG;?WB@>h% zB46ql4!V!FKujb$e(1V0$hDdOuUKN=DlplAZ5ZGWeN{FEY|>zNVst}jhxbf4ls(kb z*ZZ^4aQoQ>mLxfSSB?>wU2Y7rKyy1=%er173Ko6zDBGWjwwC7~Q=bpPPEg>B&F$?A z0BtW8-x7Iwdox0O9(~bF{A1-SjbDVZ_QW;~<- ze<;-t}2NyKq)+}qVt_eF?ZkG`yO70;f|mB{6g8R4m#+`+QKdzu&= zSZ>0D4ZrqB;d_!pycE&8>g1f~a+>TUHde}y+C?WJ(v9L{pp z(cSSNNnAe;J4&2D$)YKdixi@Zh~6NcK6DWhU33Hc;kr?Vet*9&T4aa}?;=hEtgZj_ zCUXNXHc-5HD57D|_fBQN8VS~u`pSU^m@i$obcvK~l6^Ax+v(Kaw+PkzBq&(F0%<`* zMfG>ryXD+F_|zLbpdLfrzau6)wqyh-`T0QLu#~*|yL?lRzz!K;wD<6Kp3{V;aB{=S+TCp86F!w3qx8ilC=$k*Zl5BBo|nba=C+b*o( z-+?AmJ&WpcOU6$LK)*$Ce>W(ga5l0hFm1_Q{>~8cP*Aq6xTZ4cI1nKe(`t!vKbe>~ zS?MCGV7P&yuH-8=O&VqaGo5bFmjZ!LKSpN}p33%F+Fm+5+lVoyLaT!50l!=Fe~iG^ z17GSlRWUmxKN;T5fEVZ) zepV0~NGRZRjs%)Sn0Oi~oZxM4I5)d~!nMDn+-ewmE=I}?&CFT=1Oh^@93y%-66|FF zGMg*;Yj_$9I&>p*0-=V?@AZd|_ePd~_42jVwbY`C;DmLr9i9c4TU(=n3HgQszPNZ} zl?K;M?{rf!=VEL3gVY;bMQs@K)vO*rnK7BJEPDP8i?~1@7?{=6qQhku9^IR*HbJnB zkQevEpOFadWo&jx*YlERVjFK9hf=HSNi`|b`n^i54)UN2K^&c|1t+ZToCh(-yU=x& z^9&v0g|~G{U+oVC{1M#unRBI!JwhJ!-~{kv>-xRcnj*|YxK!t8KLkDtW3Y1tSWz%4 z$1ZD+NQ+(TZnjqocybQcx<-j=k1qob1UNtajf{-sJXs{+$l*!GRS1TYuGwzWJ-r6CzSqnN}w_hc+7nB8vKv#mY-!A7Cm@iJ=L^v>sa z0;6kt!)MOp>%}6&-@lofYSxlRcL3(`x+3^w=xPCZ?hnCZ((XH@5yN2CXu!G0~ln(XqGwsnH!@&8dKm5o}z{0%;9+=K}*J zHMnvqu^S1?#0#tcxHAQ)L>ish=FR{kB~kF-c0lx=-((9w_&H|9*Dsz_ zDc!M6?>jyc6s)+sOa;5R{ASG_R~KOWVRLhHN-sO^o8EM}IxLrKYkcd;rFq4~9r7=c zj_ajZ+I?=O8Cb+ z>&Bs7#}w&A-GsfKcaBlt@;z>T74r=^P{4JA=4S^S;1?GV4XTx5zd^PG94z5_hK+1? zllDhblb~osn0t76?fxSWm*wZ@!(icFAw-&gV+$|kv2kp1gR;GD&j3xcs~J5}0%*v6 zpl1OskSukC(O4OnbU}O`^Op7DlvxkVRtEy}zBGFMn^G*D81RMZ>r>vo1s~Ef`_Qg7 zUyp;{5XaGJUv1v znbA?L8{ND&R~%|gSo(ET=2U`a}4r-dw&qb#`0Z+myZ4eJ&WTVSmyIg3eiKppUvfrtfq zOQqm@`8OQ?!&jx>wd!(SPi)@~tj3wX{DIpl6#@MY_#{=Bhqwti|9_XSW@j@r^E);% z11f*cWCbnlPx&c)T{w|(2Wj#fSQRusi|+r9=D%9Rm0sW48eiq~I{b7HDe6sV7 z7s`1^^6j0SufgB@07D!gKrhcvMTCT0dN{Yn^x)$2pG>|+{tP2t8#D%jPuI<}`HCs`Bj0c#Y z_n!#kglTA{TW)h}aUz9^EXp29NHmm|7EEvTb>={$VT53-W zf_RlU9mtF9bxMqQu44u;Ku?gV{rn|rOCYVEL;9>Ic#r7nDe#QsXa!NGmLdTiv#kXk z(1PoV2VY&>OifRoD1@u@SSFA`IKze<8zAK&&Ze2S*oAmsJ(pl|ez3@;y(&3x4ALjh z7FdSB#yqfq02k*gfD%9BPN{PNgKbxx28BKwcd(PwE(p^b$0q1iH}0F&L*FJrOaQRK zC~DBYyQT-oC_0GG9w@p<03k<#Ar{1tnOTWe+1<+D8+n$Z$1Qxk3VyEO8w);t5)DKj z6_#Xz^ula8mtlLfJ*`8gM8$PpC@L##=E--j?RGiZ85MMH_ zz9<%;=<(J_b%T585w^l5ED7KRCnqOsYejwXTz1=b;?RDXDK$9s9V7Lt*w0v{kGUb` zqWP+%Z+>{@l^dWQm52=6)NT;A4jf}1?Fn9f9Iyr}eAlZj7pc-$%hJVKqjydN^jn?? z2Pl1<=xdkz^XCuny7&W0aB0arU0$(Mq$%R$BmOJ-vuaq^yXLh}E~cQ^XG9^x>2J?Y zjrY4_x`lLpR8@I`O>VH;X6Nh-RxoINNS=#RZg&ow6CneEmlvR?8J}xItZF5Y*2UnzO&PRAd84Jw%{7AdzZvKdPoEY# zTx&?3z_xDFL^pq!WW_52$oD#nGM~+HxO3o^5m>aArDDbWfk6D^q zurW-Rm4qvoUU533gWDjDObD{7XE5)D$O8sUx)BWdYuZ-)?H!MS=3H$=Cd3;E; zV?Y2TYp4aiSqMJyvIdCHR_5lR5at|PEbOqsHX5^k2A#>WtLfKy-6_TS=IMWKTwzzI zE!Q_5Z(w2pjO6cqQSzaWcboG%NDWe6PfxnvYSzk=_WXf2jk#XwsXkkr{|LP!r@E9FSdwI}Ts7BWuPlddM)@}<$?|ozzU>Q! zo#||qYkDw-;AMN7(+LaMnd#UQ5Jb>n_@RJ$yt2ajbIJDYL;@5mm2m# z8qvW`7GEYDk33bb^u_Az5gzlb5?7P&N;mb)1E>L}1K4}M<#M*A2?%XnuIq!m$*Lav z$R9%!ybjgdo-Y_4+_<$gGa+Za+$A?fYh7C=T1Q^t$le3v7CPgr@gZsLmVz$@X0SM} zPA#ngXY$Y*I0!#Kzkl$5{mksFt0m~axYVk`2L!gtoG?K3259}2Rb_Fhh*XoGtUB08!CS+8 zsBxcjpzf(ri!g2o4^{gkYa1IdwgL{aFGo97jlIpQ)XDd70Y?a%g-C6MsdQ6QmRCvC zO^5anbK&8)3tmUa?NM(BniN&G`e-CDTU=eCuBCdequo9k^T)Q-b$yg2H;&e-KG@sa z+h6X|`XXLcS}Kz#-No+V&Gtj=c?UpukHhP;o1M^yE?Aill+CiFzg(-7lsRUU{{Uam za@Yt?8*JT!#UwCOA|@vOkEFAXigN9uI3bb(N+}IW3@uVBC7psaNQi=x64H$lA_~$9 zQo?|Ar<8;U2!o_ZcPX7i%y;H~^M}i|Tz6e@-uHRV*=O(HA(+5etE)tT8bwT#e#!T_196AKvUKHw@dq8hgo<$D4wTg+EYJ9W(L%XYZ{ zH>cfrwZL~e?>(M}2UW?cmRX9rh&PM>jLp#}gI_q8cpa3K zCY;{9YdR(is=YRQdTBJGagk_fV~_v_o`L&@f%~`8kKZ!i&EO5!*wVb;_KvzIH#&zr zfUO<+rCpRvAoy2&w5^1%p>`QNL1g9g?s|Gw&luE__97~Nuh(rb{cXSY)wGjP^8Q2KIb|tdWIYqs-q6Cog0o^@w0VNfK4LYQX7GP#jip0HyM-TtfL3tHPqG~wXvL+mXtWTx#@tbq-G#m({;xgYXK+J?r}fo+uB- zaJzS=qevnBGCiFpEz)Osda*i7yT^-+FGZL-ks5av!JG58gFl(X!Po%%Z3zDtMTIeC zbf;$A1dbuME>WIeK0S%aKT+f5s7f@AjypC{WW8lTd!{#Q&5pS_EVi;a!V z^XDVGrp3Q42{Q(~3yUw9SkJh)(|xApt&9Dm<;Cs9FWthK^=tjk>f8tkW}RF%QyVhZ zJy>Zg{cJ29Igff%@5804SzcFl8|Uwq?!R8RfnYUscrW(%YtxNP8jh2IPeT#2ToP39Cf9*6pnoLVY%<@y)2 zg&HX5p_F?EdJriXJC5>fn2%9rX8T1T)!nlE`8yeoRDB&jo3nC%R?FcTOe?WY<7v!E zAa<5DD9;R|PpAi-(CQvk9K1TZB^a!75*@IY1sS^gJ z@xGi2A2@Yj#BtoZD@ZndRZMfR+F{gP)806?6>;0`x{j`J5jNk?@ER@#;z1=5dp0)Ap*mHdQdC8i{7I zN+N~P!ncv4_i9(ed4>O0@GERuQVqdz9xRlf)1a(x{ZmfP* zGLz(OE)eFb9{723MU7onK)G-LZ@_Lk=5#(x0re>h zCWoz?XH%R0^9<8OZwG0`tAws#Cy@^QtwemEa4kRbIOg~Wr5Q?$y05RV%WOwzo$kOX z2O=u(;zq&Vi5en-GHo+%gp=WdNJO0PA2s9v=)qcPlHM>82UyEu`SFKTAxK%fb(9-~ z^(-nCBL9(g_|R8g83&KU7-&x>)DRIjtzHKN39!WkYiI^#@~$RvT?F4Lq%0ZLfdAqUe`JAwrkh_N4}e{G94q+ua+De$vXBHu~&C3l0`6 zU+7G@I5|OyaU9=~YI_ea-L52CsO{A-wl0rD|MbMe#dIWhf|?w6PdQbD0wjGn<1$6{ z5sURO+~Ogu@CU;@OU4Z2ZJf&31T~Hw7Qn>-tl_6GG@5V`0AmHIlg-}xhfWRAR=T&t zWq=p);TP}EKeUpIyrUvTV0+Zy%_6bkF2di2Jn_hNv^c%PQXZjw>|+kbaNs02UU+IWd!< zR8vSFWlYWZQZ);o;Fzvh@FV~$EK}PH3}?*{f`)jwsEEh~fm?OSJmf+BH=?^<(k0`_ zG_xkCd8diP7)4Z6^!9CU$gM+MF-eVs8PT$I_bf?22(LBk^cEDFC(8E@cg~X+17qX2 z)q1boy=^KC=$#KeiyI9uFfbS|K0Dc*C~M4h?4iYG6h$t*B9E{&vFo6qI}I6SCg7vv zObXAk$+uwKfjPv{CI%`^nD{X<3EY{lv@12SS=dLVUiG2nru=lJM*9sJc6@UwN_ede z;XP!%Fh2HpzC#tUe~3As{_o@kolsm^w{$DPt`p(zduw_YsQHjA+Bc1 zYPZUhn+I|$P<1!=(=K@uhX)2y$K(V_JZUV!Xx)bGj^pX~Cz^o_t+9mKBN+ z?W7Pu+YE|8_zaCTs6vDahVV^IX&2W?G(BZz@LyL6<1il46)Z+~Q3B+y8E|fJ(sq9T z4&$OP-&NCBzi}uzjD)AY4_f2)XFNp2Fg)U?8l;eR)MdGPWkqXCvPRF9vD4AkcB<;d za^@>fu+3fvS^BHxM>+mzdLjOY0zK@ch$Q903sE(cYDCv}{tmXWCG|8ydzyay^BMGG zc_^Jn;UR?K1hjMk_hfgBJb(8akzwCngt%YyUnaRS0Fa zmcSA3;7-!{{uq+FWq{H;qrhxYzyx~=O7-yr&V8xtf_lsv_eR-5DS*7PDRuG}%Wf!v zr)Sl2a>+aiKSTV2;COeA>bw_7tso;yLY4J9Tu z{EqxRhqcQm5FqcOH_O~bvj1aLJL;DQ&MOfzN3Ud#`opE6pRr1eRJN}~^jMxOHVFCe zL7f)5OV@PvZ}XGX3lATkJ4rp@cHy`}jM~?`UEi#uqV~-lp*i?oj%N{3Hu2!uxCe-) zFyd5Khp`$fRl4FH+^fOg(w6HsT=~*#e#*pAwD9A8qMRwl@wt>su+pK&v~VIlybMmg zqP)D1$!~9?DF3k{vJ86k(SPk@6z|K;fMXMC!cSBiD5`|W5;37)iR8(S<8C~FN`PjO zZ`6C;5vFonk_bLlu5#~5t+Kw>Am{y<=XFgFF7N#rH=q8b)EsdCQX61C8yg#;Dq02z zfONgT7-HiZv6Pg`ZW8$nG|NfNr;88~c<+^DG-+OblQ1ZY8GLuNksx_>bYOv#ajP<5 zLbMQqe^sW8DO=fZzLV{_lS`|F!AwL(n8*8GX6JJ`w!3>c_YtL$#f`s&vh(5vLuW~~ z5b45Kn%4h=Ch6o2f&VUA@@VFIbd#g9las%{5>aNnvspBn+O8SLXz82#B)}U3cb(3A z>6*3($i4dwUy}zGp7SnC?Y*ErXXV?#igK5$RtqpK1y7L4KvugQpqqE$b$Z>N239vd zf}-I$#8geSwALu~{+UeTKDtc&Ujm(l;bg7>Xh(B9Q=Al{%%PpzG5$g-iqoTu5; zp9e{qX2Oiida0u#+;;!p+S&w=Tx?H&eMg)x2xi6a>>nTSRci`96$i>t0ARy@#E+f@ z2gS+G`-V_wa zQ7>aV?jeu__>s?htc(3CbIq&w$)#RMT-paYJz&4UA~hui0*ebY@8`c!?cw3Zm@wiz zD2}@k(+`IPe5;=%TpmNZsCZa`{hpk>Rn*}8>uhwF zbWyjFYmASgGzq2>6(zR3I`H{Dq4I@n%0z3@d-C^xnhFRah4}4#H>1+gUFkkBm@#?y zur~M0y;8}v9`D{i2vO_UmH0vm#>eFG%-Xc$gf)^=#gI|WL zi@%ZkYL>^%TJF^UX6*DgmMm6^?YcpeH%MWHcq)8tyc)DGjX}7$;KK-`?Ohqni^g~Q z;co+`sK%=?%b3%2>==xJfx-Q*FyqU)Gr^M^LrM-LY{g~_l7R<*Nd+6c=8hslLyx^A zVW>TvfBd+TeEX1tS3WuCee1qtCqI4IFPNtREUsT$Yu1C!ue=#S%MrrLkm^h37HlVl zpYaf5wK!;BdlX*ew{ayW{^gXI?9HRcWh?c?n~`#vvcp)g2AHYg1Hbufs?mHUWe;g7 zpng?uFi*j|34ozFIrsBQhNcp&y`@W-YE$>6mYffg)-#tj|%L2jwtrUIi-7h@BmFd_|P z9jiUw{NZuK>7BHvpWo@a1qKaKtXkUF)Mr!?7nTY4X#K>#)wzhV#-SegBx_ znM)(O592L?xHkyXZ9x@nyu!e$mXNe>EqNEq0S%DB1pX_Pv(_n(7%9h`SU++C3O6L z(iVJBC1O8d>x6RkKPUU1cG20~(6jpO7fl2ID0qolaF1dlb4spB4Dr(LaV1ZEq~`V{ zPiaLvwIZHo=4I=PZ>wGibDhYRiGy}L9p;{P_korS;TK5FgT|MfoD7O;N^&w3*4)%g zQ%hL+_OM}DirTYe?`@7k#dBF0v-X88S6??4T}v1pq?SWVmIm|00-mTNIQZO4^4n*Yzl0ZCk7w5~Yve7O;^j_r zFP_{QC##g#vmN(RmrWC!Osg|3Zfrbzk$y6PykM;(w2 zvJ%c)?^dz>VV`{ozav-m%Soc@F=DaxY!Lm&#TO@v`=SdG@Yr+5dM8)EzW=}+Bmy6!`N%a0y>OF+`p&S+QEa?^4 zAlRkNz2G`VO4rvpzYXy2w6rvMci)@WQX1sxWe2f;1mkAhC)*W;BNJ+8#lW^*NfHl$ z(gJ-CENsah3LZGoR#6Ro_MZea+DH;bWxL5E*XzO8Q|(w#QlfSEbl*}o=38?w;nY-1 zf@>TL(?RXjz`hJ$bX@OKxc&kTJp+>pF|wZ?PLK@;mb0#UWL?3Ozzqn`r6;J*xr3s# z?^hy79~kUp1~A7e#Oa8MiUMshUDCV!|3mGl`5Rd6P&E*FH+AvUkkn1hUrp94-sm?j zkw)8>e^)*)2W9&HD*FJI83^$&zu2QLcf8B2RhXX`qo$U8O)gpiL=XWP_H0Usz-i>J z53JS$*4M1T%SC-WF`UJFWmyKj+sogZHcvnBUWaEomyIAeA*NZ72{r(ENP-d6;^fch z3Y)RNm@`NeDJj=yMY}&c=idNM%it=Ha+~|4pS0HXM0hGWNLIw*egE(Fco8ZWoOAQN z3Sgof1d;&s1Aj0~YK^~d$oQKi_wOP-OfD8mNg74pzgxBGQwF%Bt+knL9{oGq0HH1Hc>7BKz)5PF$wI@F6 zy3{X+#PrFAoSp1L9tu{Uuk#Xc&w+RdfTYoPl2Y9aKU^LrS_AZTzT|vO9d4gd0gL*H zq2ESHT|@}8&If87PqyWx1w$aBl_qF9`atbt;-Yu4ZE~3c;96LZwBH~+~z*Fy__(YgNfU5RKz0e#4 zDK*T}*x(Lrg%ql1c{eVOYIpYqu$Cb9T~jH-i~OP(`$vf94MAwJyqE-IXV;=@c0*HT zCA^A5lat_D&~K*NUkrQI~On77Zfu? zxJBwS^@~DE2ucpja5LI)(;Mac#rPoSnc0t~8pp4CJb+$;_=%I>JOjYX$nud4RY@us6(|N0lX60FtOY|iPVy5e=B=94+Q4o)Co zuNFo58Hwz0pN#nxBj~@10VvV-v%rIA(+3C2ex3SZmL`eZqc;csTz;+G&r<<&abSvK z>@7}A_-`xucqI}tqy#@>k}23%OuR*bMPSN~lge9e)%_iMztmYcF{ zCffc6hdVU&sifTSi!5F%} zDRL~z5!pFzur>}e^57xs5zcmFQZ@>sxn(w5E@Z@CI6pJG~!D+{Jx2bw8vO?AJ*pcx!>#P?o>PgY0=m2r%tqefql)caHmVE$lMfGOdqJJcy~NeLv)n_#>o z?>lx*jQqUFE8~uTxS4$4iN7x6hlmNQdD{cxGY?*B*JAs`@Czy1UO$B)CAqq)Ja8Vy zwyLV4s^T+2Lqfo&02dQXz5pE_h&c=lL>zX(h1MAA$3`0+p?#MBoN!Q{FZDjaEn=^% zBqPJ9Pv~f#hV0%^FMF$!WlXUWA`?0y*qsPu6vOSOwoBI+sZ2+E7hU0!hT9sv8+sIg zUlY4|^QM$kV`XK0?^DFGEcx4jCIbpJx_a9DI$^iEKg0yiI4!+3`-&=d{ETKqhJUvo zd0g=Vp9v4m(1~;X%KbzKMt&{quHP_av zpzKh)=ab9lsoHZ=oBlPFtuBmeCOf){o{~pIx(bCxdg*wOUtnxoohL@#u9R!5aTfVWPc7JHGt}dGjh{IF#-+3bf`$n>U4h+N!&~~!W z|KM5?xMvl76R0RSE#Dpe&s6V4s7LKwoVpU(@#TkfT$hNrxNb`mOx3fpUUj=eCxLx; z|NPneSW?Ac7p!FIul+b9#KeZjA!g)R#v?=nPDqMi+ofKgAO$@~=|OqncyWrrvn}0W zp+c-X$l`n_X>hf2{!X=ZQiHWEIqJ|1rP+Q(m3MV;&>}*oE285GbeRjfWlzZ!`~9br z8l_9om~ zd`2EptTqhJFbntFDrWy~uxw9C+yS);YF)UKn3$Nltn$%Di=|!WY0*!exdgoF;q6+$ zudJ$C#cc(Y)SG>NVYy4%#Heci=|hN-a>jW>RPY?445*(PtMJN6P4lf|_Wve#gv{_< z4J#`x-GZKdHyu5c+d4-me)x(zXRFsKV7I{HjOXjvgc;Z#&bdkT`xN*nn>H=LYy9)$ zEntes5ycK=TeCAquSZze6%We@Ji2E0QN&>UoD8BBU$lfN#*IZSp%D z$tiA9K5#5==xwn=t7HzSjJ{^+iDB{&R@!Z;>sM|atJXwh@n{pa9vvP1H$EBy111b> zS5~-1MX-ou6iPR67h34ZK1K863F^z-s&K+g39l<43#!#z-@nrf@J-k_2|9SmjdCY> zc+402vCB$DF&FwaAghBJ4TLx>G#3VV@Yv*a6%Ong3KkJFpo1smBxWi5l*9SGq?RuC zL=FFvDRtEm#%oN9cw+-Hv31t*w|Qps}6WkE@l8S|Mgk57|ef-u?Y zF>@->^nUl!Nx9?ZN%x@v;uQ9B9H;9oWC8g|byADy3l2eAGg`DoosNZaim2!9mJ_$6 z>a(~%lkgn)`=_qgAN$RMB_J#7Ivkh)WD_-B0>?_Y8bkvRILGY_K^skLMo21n- zs;G@Y=+2HmM%t1!h_0UKvj%sY00g4E8nn4TIa41>17*q8U^<=oUpHqP$$C|%XRBEZMzcidwU z0E07C>+}uHwN7gUbM-m?zl7j|WcowR!R-6fP_wHdY~z_5(_BeEo35kk)BVN=M#&zw z%o6$@>6FBK6o?3j>nQV{cDK|d0zR_mj)RUGc*+v!+8)DLEkUE;!|P6}h!CA(TaySY zIEl3C;-_bVtrs^)*T27;6%0J)g=q*_P=;I|UCr4nu_5c<)!y_fMi!^$io7A=-$DCb zJiB}GzWx5)0<iY|J zVktU~f8r8iO1JCm1}Hum|OQyuV)-(fmVMr}k!s&UM2C!rpq5Cc6mc z;o5I&_wr;BL^6K7m!1t{ z01*QSx&!wmkwEIww5RR$;&tuS;3oB18aa!rJIAMx=YVNAH2e~|*%YgVWhA%P=&AI` zG%*P}Q-BPB@Hk+hbO9gr1#^!G5z=f)S{wV){HSETTw+u-MB=ZE(~kGmzMpFuw@b%V~bNipRWaQ_w@$ zCOj{o7i@4=;oiBDAHT$p(SM&Tq$u8f!tYmis^B^iyMFulu{3Qo#~kq@5d!)CWqF>6 z`Ug6oZ~`G;u<2+3bvCikm%3X1sLbgqXF_$|&9s!MaN4FA-hI8H+G+!f z^N|KlUj7{W=Uk?4?W79A9|3|3AAb-|x=JieOuCn`sSS`w;8(aV;a8}>unC(IbJ!V# zWf>(WvloSKHFn)HY9)>9Z(qkN>k0b7W^WWaZQe19>x{#b{P$D-{9-VZPl+k2=q|pW zav7p)QZeRUC@fQhRVq(9$#o1Jo^aS8w!*{Cl@99<4?wbyFnfBWs%BD!t zYuNo5;>c`hX68=L3PVM&B&79q(~F+US;{u$RuNVy0GY)3-Y>vOp~ zt>o*5Fyl8#c(n11Prin~JjCKHfJqF))4ZGU9x3(JHlgfJ!4I2T=Yti8$VyVKa1`CR zth;J!x~jEUs}%o4w&^RUoiQJ^8F=;vAPFQyrsW+bEU#2SDOX>7OH#7oNv8)gWV2$q z?s;TG{S!alkFxqhU-tHdQ}+N)(q#o>Xuyfmc%AL-i42nhM)O^C^x*4C5CTEw1&{>% z%V=n6ExXqJSP#zsvlkREK+s3fD6;Ut!X9t@9y1Pk3p&j@IN3Hcuaw~Naj+Uq@kqa6 z9#G4%SWxVk$O(Y0AQwV%!yckBL#w}G&7K-krJR4DfAqy5T3J^n&WKmtOWg$HMrrr4 z=;}(|7v`2M%E`SwH};R*&4z0wK*^7V+7>uI4W66-kOSrKIg(0uf8br_3A9o-#}L}@ zhk!Q@(=sZbQF(m;xBrlB!0&BgA6WzML`*A%?x;J^so0A@9>KH*R2Yb}Lc0Kjv;y-a zjmC)L_1L$bG&fn^Wa`jo>hVBA{7w|0hnUZp3xDB$x!I#&F$;EPUkE_0uk)t3)~e7GM=3wK!@W8q&Lyn$wf^*43`-(%Z2)Ozb{NaolPQLIcOg$6%9$ zJy|_B7`i>FIy394lCIxdP+Xa>Y$Kj^KX$M;zfqV~nv<^G!Tb8}(ZFI6e$`3ZGVuc; zaQ#QCX3At_)5;`9s@FwC5c`O8ToYTZ96kE?T*~dA#GUJ(hDa_Xe7O+Ci5J>P#Bdt-Qt zxK!Y_jM!IXyc#hANg{OuoBaH0Dk|o|u_KW1M(udp>t+6F*T(X@71f}if5pvD^@+8Q zwI+6%J`xfQ?S=Q8h30Hg9rvh_%N~WdAd#Ka?!-jGrqD$J%F5H`(W6HIcLrM+fJ)_F z1Lx``#NLjY3=xSI#dNOT?=n}Gwzf()Pp~m6>GEf0bS=raw!)KBVBHYp=YI!Fx^o*{W0Lklbv~49qT%n+D$v8j_la!H zb5L>;CYG)F-WA7%+0(+r>%B78j1_PQ&|K(yv5=-?CDOJI7F9UV=UQ7|T3&^}A0s2O zRNPa%jDpfzUr()dqA*mrpIEyKF&r+mmgJTYhWj9sI-H@9DHr1Quy!DaL$TeT4awb8 zG~i;M^`h|LL5j>B18pSVJ&Av9G8Io`pTgEHC3%S=oEcnH1EBteA?lGi8 zQd6`8X7-TQ7@p8<=UZ2v;! z3c}#fwQr79?!04C!*OJ$+dm8NMvauEU*VBImlbXHx%ZDBzcb*sVE!Vn zu5-Ok2&cBa%{Y)QJtoN81CLEb#A`r{M}%(r7O%T7Tw~any^`UqsBQJLX@Ih3OSbE{EdxOt9e(8(83pihLbHm-vq)^u#T{mjTH-pS6ihM5Hz|sxINI6yoNjkw&?T5V>8Q9z>-Ki$P8k&*X6Uym zH_@XLZE9aH|KQYD#VZ`MGd6pRq~+l5mX7iG*C~BarsX$BrI(7Lm04GLUhWm!6zMoF z*tj=faoS-4rvC>zN#SDzP4{bs!$+BlYa!$-=`yEaVZm~#XMV)oTyUjKtFgIC<*ve# z5jz35_=_S~z^tnU|*Z(VR*5QR9LA4)fbNIh=o50c7F@*EV)z5jHH$$OuE#4BRfb#^FAP z9`G+sX+>tIV}aI}5PTd10-8N$zNS)}DaZd`fb#Nfuz7G3R?5K2Gw3J2#ulN1HOyFa zZPrB43g%P6TR%Cg!|`yLM+CkIFnC5v#o}c-+ehfU-f2(d34d*!(v?`nS77Q|zxJ1i zBi<6a=aVK29-73I0Y*R%OyXP~_GCC9#QWwerI=wz82XUF?TM5yJ|(RY(S@Vyw{X}+ zbb>er@TXKB83_V>Z;Uol(a!Jh=4N_I$~pl1fg~J=xGtRCJFRyZURT^A^cK!8wsu&^ z^yPw_9_7m~Qm?2>-M}1|rw6MRd{MqryZa@9jT1#|;@Z}Fk;msI+d-JTu652A^2Os{qyzyTl#l;MPP(L>Z}6aGyUxEv$}tGojo1C{!?|X2>=Lc$Us+{pQZ)x^0GuSH(tCz#k99fJNLdGq>QeS^JG!<5bcmh>-2C}S3Cx1fLa(PMT$Tjy+x+*l$K4)kFP! z_Z=VZKuO3C9d`dfLc=iDEt=O%OuI&56E8RwpLsy}r=LKmx>|pmB zMF3@_@##OWYXxUYk#9!`1M14gt92-3_Z76Q{2y7puZk6A@j6#P-||DddGDw+Hmm&l z;Or~=Zj4{Ln$NGRDjABB6Yveas;(BR|G76J>vL9L7E+FL3uwuH27S}1AkARJ~4$%S%bX< z)tmixq$-AoA9q$=oYGz3kn}iF|GB%in!x(oB0CrJ;u8z1r1Y0&u6BTJPB5liaGH5i%r+LFT+y5%H%*X*^ zEZFQf00h7j4Zp$`17N}4xpQal(w!(^ckX)>v}jYDX9U$(Jb!Fp;aTuSC*&*6KKGyK zm-anj!UVetm#&1!4GIty?pcazvGvP;mb@Xw9<;>6QsHiQ8cR$2r>6nG z4TFKX?HiY_Wqf#V9@1N*(~`X44_P_@EP&7i?}aBgWr3~jvmvXl@oz~qP&rXE+rJ5% zzi?bade^X+S!`e5^47N_XR3b}X+Nkb1!fnqeB_?b)jm1|%$e8kXA8djPk!XeH}AB0 zn6q*+9jNo(zJa^?@WIBwFWo|`NX&r~<^ZIpR{e7ZU833L+fo-+&=_pYtwS&XR^~ug z{H(&*1K%iBTksECV9)^GLi@lv)V|QOf-Uj(ojcv3s(V~%eSN)8<#^A@#w{Uyrq(>_ zU%f9-ZXaNPcaf6kFfEa}fq#k0|GYqQ{M14zTN!U21YjeB5GF(W!OF6AJ7tCVva8HB#s=`7xxKZo!EIOMND~cp>;!{ zWt?n*1TV^FfpOx;E7VO_1JcDg-cffjca)F)g@y>c2R^=@zq|yKzjxpcIU}F`E@Zo% z1YI{4jC+2v>11P*;j{5WC-~1M=N+Pj`~8l9)rFjA+1S`enASY#Q>G&c{Zmu-^i{XL zOIw)z*L^DLA9s|{sM*MSA@tv_zjHl^+S^iVK@5Mz+sk!9_6Q2g>vPD+dIUXpgfIv= zzALbNh&=@bE9=vXGh@`)iXi=bH67gqyTeN>D;1vekFU?ZP#~phDfQri& z0xk!UpI+c1g0(_eXeBI~mc*_lUHoG5kb=&&Xof%iLaith&d7r$9U(N*+8E{x*svAs zfAJZ2tPvFxtFEbmxZHzaR*O3#WiP+B_A zkNSX?rR$dyt+B3H=+WqYSV4WF&KVc~`jI%R^ToWs@0h9GNVRvnUZAjRUuBD*ddE+7 z`%@FiuiVo;sCCOsc&8Z8Uct*y%jq=2ZiEyM5}-tMl-I}FuJBK~5hVEE&{g|5kha!T z;x*)XCBPjZVkJ9$g%)qx4O{{*E>}AO-@c~0dSk3&8R8S;f~T!O@Zx(5 zYbT))kO@489Y4}Odn@hj7tC;mPP=&J_Ho!5gT$E@28h|fA_a{YC=ZHgU`HruhAdol z4hT|uu);>GRu?OhKtyv|G-_0$H~M-hzh}UWt8^35zQIXfa8AjUUlBUtAG|q69ry$Xmd1Z4lIyaRJ4Ynkm z;O@pcVPV?3y7xf!Y{|aL`+A~vDm*gKT|>w=LgBMExAsknx~haeK2k~=Xg{o>2A-Lj z!3O!IrSFg5c=alPXejy3@MB~22;L+jrY^(8w14zAvG%<7ILTctA580^zdXHL?dOto z*TtHqD3xmtZ#nm0c62D}NPOvV8tuF=S@`qH@9e`Ly|+IXw#u0>nF=nSG&zog(geev zv}G)%C;fac7aPxp?IQp%f+&v}3`*bxhS5y+b5By1;)jE{8BuMp_DuTV_mfS(<-0J1 zs!e&Ha4lZv^v4oMa6xe0J>5<1JS#3oX}81Vi+az?##5fmig4D|liZ;D?5sMS{9TtP zm3^Ox25pK!T7O&=YTlCM2w@Lo)y@;FBsXa!3{t<$(~C=4ppL;G2|VJr#OHOcyQn7E zzDA$Mb6_w-kihpt*8in>cyF%|$VeiZB*VJfZ4h;Kt(yRpyzoad{+bvL*_ccVAHbKx zUz|%T&2J$_*(-7FDWf{cf%acme*y80HcFX;Co))q*uh`p@-4C5%Oz$wq5~Y{dvSU@ zA9-np^}4SrMAecf?djP)%fFe}ymT+p@2>a)?3DpOXh-uA9ndRtKjCzo;}hIsICqO( zyba0%HdgiPV6{1Za}Gxav7qFG5Rn;npM;oy;}&R@adA1evHe`bb-(B$^bRT3k1vQs z;WO|1aGf`KcQfbj_1IcCBB{C#{cQU^E$Y6j@V!p)tGs^gCUwW5e>Y~-s~t~EhWlqj zSrSR=?>{pVE7lWjcII^BRTk%Vuhk{L=p835eEs#gk-MC;{;(B%gAS75w~i+5`2h_PIMq7qNZY9I7)w5>?xu{(dars@6zJiVUGEbFS`;`@4i z2J2j}nVN%eI~7A5lH%yg%7pFI!sPA`V0R(glFM=wp;{D#GWXf^lF-D3O7$XMM@hK7 zjE#s=wXLSa9f|H!N7-mHy979!osLMZi~DisSmh9ul* z?bJ=0WjAD#e5-1MpMuw+S7q8*5|ctFa*MmTe)$eeoq2@}0ea z6c%=jDGk9pI7m;IAYc%P*~BoBw>%76hJ9&}yxp3adBhp_>y`YhwUW5o-WOu;klC$3 zj^ijE>y-rN!m3;XJL+ph6vh+3@0cLHh%@2S7}B+K_MOP9S ziy`<0v#ZUxgAH%q+ho6Le^?-F#=E76hwk;^`Vw$)Ke%b(;%~8pdk+&6%uP)pH}DsT z0Wf=H0-W|yldD;YY07d+j=n8Dz5N|nF$5k{$iStv9>@*4n>p>N&^g3_nQdvenZc~$Eh7R7HZ=DK?_hc_tkUr95877JCX?I67{8$QSEu&cjFVvN=oPRfv3^H z_Q~k-v@$KW}6afWw?n5OOP5C!VKF^$6q=*>K z94H9PsaA;SM1SgyS^dcQu7pw}&ph`d<#s|h#p+zmVY|_}f7@f8)UyA^BOj`F2QSRh z$?aw;zRV@1vDy1<#@o#KkvEeb9Hy`_$a=mP`2K@Js+h1?B)YZwpP%$*{l?tfXWQgs zzjN^J*Q}M*!>SjU_4UYXQ^{<@<_Aw8UA$^?LxlKtb(r8A*n7JUOJ`P~!TK%fi|_r) zy^+IJR_BO6CUWn)E4_Vy_QJ!ri(;mRn_I;Jb}ReA+oZVSL4kD>7k(%9v^(>yQ3`l=+d=6T6V-Uso9dh z0p|d{yZU&x_{BaZ4u1D8b!J-yW4u1E{&3e)-NLky8**pgeB#_5y)|s%ES_XB8pLl{ zEe@?FL#Qzfyh<(%bfmnhbz*#<>0x5W3C-)XUmYm3z~RGB%%W~Ws~Tk_cwVpY*XyBt$g!;}=HfsFK2ST3IV9>(M)<6q zoWqt-$MLBeCl>21gdB^vW1)R1b?8UO@c>XdvAfztMPpRjnL2;*=Z?yqWvQ(z8r=~S z{>|cXif3(GkGkf;HFbJV+H6Owrujc61cdnl%Z#$^9pcWKJ{OW|eD{=2$5hCiRKR2% zB2vG&VtooXo~{gTd({)ru|XFU2lxJ6&nQ2=sI$oKcPF2UGp}UH-Ve%sRW{i3PRpmB zPpF(zc$IFW-nhbJ-JMhWQq>%jsyx3;rv4Zer5qniqJrf8$k6_^i9Ot9Nv$GnZg3k0 zRhV)7)VTHvz~pJaizbE8i8%*DEbl&0%Rz8?zB3woPBlBtwz>9n2Z4SbIeqk9JYbtH z(8bE?MuM8lm1?z5=T+ooPOKMbyl9)rzjBGie{HT~(erO)dlJeN#53r(S1O{9t0>@r zy9~i6hOo;YsID1tdf$%LTc;=pRO-WvijvdE$w0rvD9`u750ZtPDw$?q2m0n4{Azwi-4vb3=Ui@PX61s zdk=~uBdI@r5vDU1w7&5wP5NcP(@DEDDO636IZ-wjBi?R8t*h&<;=TI%KFv$V$_gdj znE`AedUC5wraIk5lHb9y>dE1p3niQ@j$Pe3;sLNeUF#V0#4<0<(1J~rBTm&0jfM>+ zt^ja-=tbR9w2IT8dMpmecIY6Tc@nx8T^X737I5_P?-dHC8lr^4STu&;?WiT`A)Cs6 zNEI^kO&d|PBqNW-*I%`V|Qt~5L9$)g6Wt@s1e-%q-3?V%9w zG0k20ka+D&HJx<=+PPAcvSHc%rX;Ye?S%-p26Zyq#pD@Nc-+#CgGhXQXBRMtOo#yI&C48282h;<0*!N7VpRQpdTrf zfg)~EC%gsF1qjR~k0?A#v!5dzsI8~?s^*n0hNWG_58G-qFnPvHMy z@zp~!{)D=2r1^V@^HI7aX{ewHy=U8JI=+sc;zH&xOPRK46Ix?wy7$*6O9Oo?28htN z-ZYhK|3cu^%i~WM4+#I0xX=G2XjRK?z5>70+li_{wY3upVQ>v%bI8qmNWsZJyFpH4 zw{hYx95rJOF#&&{u%x7?=ZZemOMBRqAJl31CO1TT(Q`4wD;sCGo<42lvf#2zcM5G! zv_ZJ`H?0W2`TX3X*JwTj`!ZJ{Lg|6EVz!j~ z_lO;ey}t?8y#?;VnJgcqxa^BVGi@2rbiPNKZjA%%nuc?t@j4B*?o z-|>7O9yVG$eseJWN@W|LQads30SVrAKvU*#1#O8t@34pWzm(nc11GSxkg z$2q7}{XdR~cH^zm_2KA^?hP?WLK4c>`ra8TMUva}BvJ~+z`}w_0dq63nEuS)1>2ch z?&&yub8Qqd6Tg1l1XC=zQLGeKPxbl^1#j?$6Dbl@8bP_xR(B~=AQeCeeQj1!-kHb{!BYN2T?~xz(fwXV^dbqdKE?8;V@FWs z^XEIzHUqlr38UaMvgMzIs6#XnI(<$Di64T zO5cm84{$k~vgCbhU{S0YNu<CCPkuAFCbd~!9v{{cumL=6 z5T5>RjQm~X((i#RbcfB>Yfk`bL_+avff7;|<2Rxao8)wS5Gv!t=Gf$?)rNxpdW)Tn zw!lozM4?dXztt08QJBKJ?leCuBt692W?iVdQ*+{S_M>7i7vRBwQ7eDurBECrTF<;P?XjtLA&W`=3z@K3ftH z(unM2oHQqS6k`tFp|87xH64xWsJ+ae^@75`hhXa#4u8;Rd?+k*;Lzb3vs-EINO0gc zU?%9vi}i-FrW1fr-QO`DWt}BK#UCWo&PD=o^Yu!FcT{tvi&%!jo>j!IA(W8sgi>3# ze^}{t$_Owj(tS`V3NJGd13!o_nZYDGv{>$~mcDNY_V)Hx9suALm|U6HNPSnNS*DsV zV9IBriUTs96_`o`!CruHzuJ|cjCr1_dWQ*wHq?jBYd}X94rm}a0u3M*(pm~|>02t; zxZh?vdMZ*4d6#(t#hY6GoH2Zlu~HwIVk|s^1$Lru5+C=_;R&T-<&USpE4z zMF}zz{_|jNAoo)DI-6Atu@ce0SmYUf_S61+1_(#Xa=0mW6%U4*Ea*{(wDa$mz6#Vq zN4`5ck)Sd=>^E57+mvb&6EwLY{k{09xU|h!J9VY_@^^CKPV3y2?+B04LjDej*`V!q z*CDI!WU$qq-3VDjN?!^K{@D~92LO3c4!-3&B@B7V(Ei4Xn4Qe{j=1WVY|G+OTc1aw zyGV$(jq;mL(2(zk|zyWCSdtq{7n7BfA2GaL?nE`jVR?$gN z=5Nplpv;@Rk~D*9DVv;FbeZ$;v3_xp;ywf-tpGbuynmf>>y7?7iifP86rz61=o} z%o)phtccA!IN@CnSsi2PJZGgvMMseOW7Ie84hKM40Z4t2W)|C%dRNIAigc0^c>9%k zmK$K?pLR1KaYI)c&%WYM$D^!nz!G62p^3vd_k1mVYI77iuQuVwg~geQkr`(d4Wi;U zO!g)Cm6n+!s#@>0Ze}v}l@g-ee0?8)c(JIje^&<*w-})kf->YJhzucI%4|s`AAhZT zwmJM`F&iWl?bZ=VFF*kMd5SSwJ%VO75j3yB?}vWkH&_^^6xGB&WmiI0KLEe68cPvU zi~UPyxbgJzps=>E08E>srB7H^!2_!r6kkgeT9? zDMN8XCCorNvs?@D2hLYea|hyEdB{_L1LD?NLU|Xm{$s{ zd2?eA)#N1@EQ#z}f?qZSK@Rpi<-zW5&T4!O{$5b+c8hHW@EX_D0BqVW7#%!wNd9%8r2Y#|e#;EQxTwJ?Bsk}o*P*0z#SHue@GM5GMPUgB&ywq(3z3H(|* zCd6rSFPOFRWS`l3@AKr$vA`6-z!!`lXR)c;cN9<=fB>6L328t0#T8RhQUaQuoSXNo zE~>y~pL;SmO&b+|{|&I_fZtF|`cAIldtg~IzB(EF-N;9U%5kO;$K`#}fL-fslXrC9 zS_IW!5t<^g157@O8*TE_U%hnAOsJ_DY&>^Xwrgh^8CB}JMr7myMJ}T2laLJ%;!$+F{dq{ZakwpPz#rzn1xJ(G! z+9`W}xiGq-xsQ(>k(^|&^F@U0yCX4rA7J6KSQ;2)PQGEF+kk6g(S_vHfs8AdAp=Tj zB_Ifc`eNCh;?-G zVAu}&M^C5eBEfqh}W|LD#YkHKrV{BB02l#kpAHSZbI{gw%fv4Miq< zj>n7?-NXPbtE{A59*_}Lm&PTvb65`zXOmX&*DgUs2X>1EXF_pUi@z|Uk?<@fzv@DR zsZOo(!sUouY8)nGFBeqNGYj-phf26O07`9if)0^W{$`^_N}Q4a{%*D79k^Bk=QFUC z+KXf}1=FlS$`^tX)q#=IfgdQOD^E)yINhwHIQjk;e;n*m)5I|+QHBA^eaOb=4VYaq zR4dU8L!RbDuhKDvj|AvFeyC?z`~&aVj~A-o1PQWrNrUunKP0qgIYa`j--5?$Z<+y} zuJ%gBpps7SuXk3rvw)~cF~ul6xJ!9%nH87o!kt>gm9R|Y%IaJmGZ8PpgNLQSa0Tn9 zymU!s*lpP06x+|zmsq_(68jCUDSm?<;HL*A0*EpVMw^T>RvYe8KI%z zeo`O;d3y_eg+G;_@7C}Yc4CoZsE!kF8et*)()I`|w-YmYYX zicoVRy|Uwi{>Q!iv|LFsslhaA=9C|-?MGB%qDU^yZKy-LPH6!v&QfXj+&c+5@tT#h z{jI9zpl#P?^^za&INEPh!lS3U8y(-KE1l2>SSVq=!Pzp}Y7uj~!76SJhrQ|BXU$=q z_pw-^fxgnWJ^rxv-01k$N_u;~;p_AA*Z@;GnmIA6=ZiBJtHA3##sMVpqvd9{gox*1 za=T@msiD=Uj(YPT5d?ao&lBQ&EDANnk_-($AcUz8b3H30PF8;k2S2s$&ZU}jap#$k zSR5ZvwreUf&Sw;9mn^B@7fZzLKEb5!pN{hSMf5Q1`3CWpkiltTU|TYIm@|2&63HPq zKNeGuadQ+YWe$uN;9C&bug70*U;k**x}oj6&-E|Se!{a>H%FdkZ5}_6u6<$F^*5(^ z2AmelT=u>Dyc)UsxlDKbsUgUt>OgTv|VNT_1jF_ze$|4IAZ7Jc>#9`uwA4_&T z1~AW1^=Dr88ylA=34ds zi!KQ~c3q_rxZFu)h{!>h0f`$(=r}k0az>{zO52r$&=gPPOG8 z*VIx}^5pbxcMyanN}x~Z5K<|xZyC&ahtKUp>MeVAET^FYydd0<|dAZRWi^i>v0&a*TxTOQw7TeNejjC zKi*$HtcBXkv9Jk3YWp)aO0_on5U~StwT<-@nZ-l1FcF@MrIdMr-l9LD8x&@HyOw$u z-p=KRo3-Soc6K&D73(Rvk~P&?Suk^l1P58&887M!Q8+yybo7gEp-)6n9biRDNp+?z zWC$H-kQ~8bow!OqTR0r6pxTaekRpP;4W{3C&?@~aZK*u5FAOmkrfe4&@iD{5k}SPA zX>gpmdLJE)v9a- zikm|TVe8)=mqJ~UZy8T9j|t%`Ly#$T#pWs??ElA*9a8ZRs9Hb?sl#WMefSW&p<2Nw zq?3k^=tjLKtEKvB7wJ=Pt%Lx>o*Btj6tr20dFIM@W|KE3yTm@CFOL()Lw~oA7bWe0 zT^g(QU9FI>5_*1{F1fkZU$LAY=>nCVCESp0{Xq$(UKi|S^=CM2asy$t`1>%dz zwT#><422(1lk6x`KIxNgm7+=-boj2%d8Z(~$tn9Z!Ax!w7URrHcS}_mKdeT3XSMh{ zp@-(JB$~->m>F|(TkSs^Rt{a!Hzu%eew7gJLh;n(WC<2Y&96pug%QPuspQ@^wvE}- zZC_kFZR?TL%07)}T-N$5Is8P>rK|>LGSm`G$@$+GvcQI8(B6V1mdTZ@`|*%2Jjdn| zxF5mb)VvGkU>=1(H)r{u>SQ}=v!OL>C~n8j=Pc^Vy|`oq!gm{f^p3tY-T;^H{SWqN zAYEpy{6W0jiL%m2zvl0?IU&2VFEe>(T2T3m7fIhK?HwI4G$}QCN?0bHGPZyJ{{2J; zGPw>li5S?}B%JJ-@CqiA^&|^BY1>M4!dGv5_`CE($pclfcF0!ZVyjo6)P-Y<^qv1T zy~$7=$9p3itg9zFBDkxF{}o^p3S;u0d*t1YnVia(%?5o#z;pQKQ^HJ@r!`1af@Fs$ zn5_r_wkXKfSO+?_FJf4{jC7TW-VgF@;aY_S9)?pj$5Cay$Qae#cw{bwj?B^xp$rsZ z^{Od&W-Tl)Q^XDQF6N%#Zuy9a3J4H4M@Su4Cx=<~2~808a50;TzX%S&?=j>LM)pFL z5xW$;clQ~yu{1ETbMNg}D0Dr-7K=s5DE_%z{ks0pA_1@3LDJc`zC_zMk2W^rgERd! zA9@o4Yw2SoR^8m6sQ;w8?lcuhEtHb!l`nE0-|c4ICU`&u4W)GAEGIK+SUakOiDL-K z`FcLA4AN%}94go*i|S}-{6+fcVY!A~()08385@$Hfb0ErC))&P1Gs%%mxkr9S9ucs zBx*)$fZM0HJGfb!tYS0X3WXAPN8zs6jQ`=>Rp;$5@xOADby2x_sLkoeB32&Ud%7IL>PShrjL$L^5=2K(K#nTA}U$;17rX4^{v8 zxVfi5DLudVb*zwCzYE3E_Y%A1+Hx=*!^Xk+sL#V?Rq!|ZpYn0!>3I}BA}Fis~}s^Z642~2q2?8EnbQ|7Hl@W?Zk(o z>HlN1I?q^_uXrwIHxq~?47o@ve~q+OrWP+&De?^7DYV*{l5d8(&LXXfD2!B1x63g< z2nlf=CS(XeL{D3ENRg(x=u`Sb%07|Y0FcNaaa57UkbEZm;YMEHLqqemF9p@vu)@c6 zj+KDfI49=a12s>4XZD)EgR9So)||&A3kvc5P|vu_S8%Gi33CP;>qKR&(?Q{iC76PM z?-v7p*M1MmFY(vo6lWS=>(+M!?B`|K(<|9((EtkZ>p zn)pogKrqF=C~41=Sn91X!|uomw0@YJ+N^piTey|(A?|ANhV&3GEr7-r0PBu?^QM@r zIh+jh7Hc3*(Hn41P;f zV_kbF3%g7Ric~;xe9$tJWx+C$qrJ}kRnq!6bpUrFoi5S%1|uaMiM~3%^1W)+u}-nFBOBSlAhxD9 zMuV)Fof9uMK$Rrba17M2S|?F*$i$+AIoKfaD3uDWGDp!yPHYpQ;oTyToQRgTU`>k9 z!OB-^k!&CJr`B zY6|by>`QC+{V`!l$?1$at!B z`r2vBTI4((M7r@iqq&x)Q}s?x!D=D`JX!0`BvQnQ|59n`V+wycePV?H*bYF^2zeZm zm>D)MDMw}h5mBh|k&(g*!sa}FS0X;2XGbn7U>7YAPP2F_KTBG->~tl8lh&8^Jho4=cYY11JB@d}4WY`9AUcoHiDP3s+(+V{PQkOiApZVM}b{2!iaGaeZ zE4#*nOurdh0*#7kiEdv=)0I@MW7ff}ONS>QV?m(9ZWuYrf! zQ_;OAV_!X4Re)C^H^^%B^21v^n-sWS^b5s(bjXAxGFfz=`S5q4;fEJ3mp48D91XYS zjs`Fz43r6s9Z6S&wSQ@Ae+DD;XiiSXyYEGjyFFWv%@F)C{_9)3O_kSf*s{Mvy>rve z{br(r@BD2wc$xLb$F6?}m9DMAK;sQFE7z?-JZdXIqK`wEeLlHLi24k`t+1(tJbSSO zo&}4Cd>Pq;bU1&R#K{%e0AS-M#&~Nh`8)Kz*kqH+5(n&suNOHa?*V1?-=M6B#PO7c z=O>rlY^rPr{yQM@GJ*cdU~%J6Z7NMU3J@FzLl`YBK4D?slQr=+(&v%rkRA22nwBC;T2Im#yAZc|j4SYf1K z1s)e>s2=VV_7R_$Udd_qWSW^xSfQSSnU3Hi9XrhQWVlaEoK*hCsKv~tC!~#HE!SS= z^$YhK3oGT;YT59uCC0aQJIVdD^;=BpdR|>hgU!i5mid(5uhqS7OwvLO_%yVM{06~H zMETXVimVd#Fl|8@fiUN3z%b^I3PsXeAJvoJvXAOjMb|;O66?c**0c*|undIFqz0Yn z>SZULnx>q4z%x7(K9f|m^>g(GAY+=t-_kkgxe5W<9I1HNI%W)@Q8BF20A6UDVXK!> zsTTttY=6CZO~hU>C&wv%eXVqWq%7wL^lh=scPQjaiH{bgf6a6G)m8GVrvr68J6}PW z2eRaw?>8*uYhUR3%)x9FhCw!77X|pY=jUMhAnX5dU;;e56cI)DIeE1(q?r=ur>tv*VKYza zNG_~w^w^Q%*!nBa4(3}g}0xMb_DWR z?C{`AQrNyixJ8T8dh`+gl{a(+0~;RAG00UOiu81p{)eRVh=BySn#tx$uK(b(^e)U3{)Vdu+uAbdzTwHeYB_FNQQWMq7zx` zB$*96i#cXUhTKc=?>!q1!b!$`)?#>U%9V4FF>*9cT$j>7Gg7TvXp1Jmv3R67-hr{U zq8D1{L#k%2^apxUHToB1^56LkQ5|BGFN4XFag_iGri7jep>$3sb?rpN^9ztf7g+J! z0Om~RH{Zs$TzCH(Pm>L;mkh9hO!ms>KR{^_G+6%iZjs~Rc;EH(+w``Y{H3G6H$Ew``(&Jm0OkS0#zIuYKSPi71K&Lh_(!fk z4IP>0BneDdlUZ#3&Qo1vl^R`7y_3qlk{=9Zf-sBHxD4JJC^DMCA~hAK*c^7fr+C@> z-HZf?jO*QuMhaX#Jy$bTk3W~8rBQiCNZk5#m?w~;+`e_UVjC^eo|xi5;Xcn6;5?K+ zu41psRsG~CLOs<^<{8k31T1B&$+ zljL8w(pxNJgd%z?vD?#fhNer9NW*PmL}a0e!b#UcLd_;aKO65*>vB=JVSf%2u^~M0 ze^}XPf(Y}WGL+DJ0CI&XjE#Wd+Jh{(mw=cJ#OPSblH+s&AdW4|qTgW9giLL(E_*^S! z`uzcGcQf+eSWA75#t~lPYaKs-8VYPSCS&yTletg{+5|a}Oy{xBY^iL;YRqlLjI%dm zuZLRcN0%MJTYjnR{nkS%?|ezxIpS*YTB5t~H?=H9;j%&cDs$(U#ptAah2{~9a4FGD zg^$R1i#g&&(4?WOJSuaNeM>g{;>7i@Ev&Od@-Ff}; zjOeYRZ3M$}2*yN>_V_c45|Y>R$Ri@r`!BR_eqk`c7?dxMQhJ-kT$C3`tbY_cn=~$h zMm$`|NrP$NJ4xTqRB_hp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..d9cb6d1 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Dealer Network + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + dealer_network + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/config/api_config.dart b/lib/config/api_config.dart new file mode 100644 index 0000000..a819a3d --- /dev/null +++ b/lib/config/api_config.dart @@ -0,0 +1,6 @@ +/// Hosted API. Override with --dart-define=API_BASE_URL=... +String resolveApiBaseUrl() { + const fromEnv = String.fromEnvironment('API_BASE_URL'); + if (fromEnv.isNotEmpty) return fromEnv; + return 'https://snrodealer.playpoolstudios.com/api'; +} diff --git a/lib/labels.dart b/lib/labels.dart new file mode 100644 index 0000000..052379c --- /dev/null +++ b/lib/labels.dart @@ -0,0 +1,113 @@ +const stageOrder = [ + 'received', + 'orderedByCustomer', + 'documentsProcessed', + 'paymentApproved', + 'rmvRegistration', + 'plateReceived', +]; + +const modelOptions = ['gn125', 'boxer125', 'click150i']; + +const sriLankaDistricts = [ + 'Ampara', + 'Anuradhapura', + 'Badulla', + 'Batticaloa', + 'Colombo', + 'Galle', + 'Gampaha', + 'Hambantota', + 'Jaffna', + 'Kalutara', + 'Kandy', + 'Kegalle', + 'Kilinochchi', + 'Kurunegala', + 'Mannar', + 'Matale', + 'Matara', + 'Moneragala', + 'Mullaitivu', + 'Nuwara Eliya', + 'Polonnaruwa', + 'Puttalam', + 'Ratnapura', + 'Trincomalee', + 'Vavuniya', +]; + +String stageLabel(String stage) { + switch (stage) { + case 'received': + return 'Received'; + case 'orderedByCustomer': + return 'Ordered by customer'; + case 'documentsProcessed': + return 'Documents processed'; + case 'paymentApproved': + return 'Payment approved'; + case 'rmvRegistration': + return 'RMV registration'; + case 'plateReceived': + return 'Plate received'; + default: + return stage; + } +} + +String? nextStage(String stage) { + final index = stageOrder.indexOf(stage); + if (index < 0 || index >= stageOrder.length - 1) return null; + return stageOrder[index + 1]; +} + +String modelLabel(String model) { + switch (model) { + case 'gn125': + return 'GN125'; + case 'boxer125': + return 'Boxer 125'; + case 'click150i': + return 'Click 150i'; + default: + return model; + } +} + +String roleLabel(String role) { + switch (role) { + case 'superAdmin': + return 'Super admin'; + case 'salesRep': + return 'Sales rep'; + case 'dealer': + return 'Dealer'; + default: + return role; + } +} + +String leaseProviderLabel(String provider) { + switch (provider) { + case 'gci': + return 'GCI'; + case 'thirdPartyFinance': + return 'Finance'; + case 'both': + return 'GCI and finance'; + default: + return provider; + } +} + +String planLabel(String planType) { + switch (planType) { + case 'monthlySpecial': + return 'Monthly special'; + case 'general': + return 'General'; + default: + return planType; + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..7014044 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import 'screens/auth_flow.dart'; +import 'screens/home_shell.dart'; +import 'screens/splash_screen.dart'; +import 'services/auth_controller.dart'; +import 'theme/app_theme.dart'; + +void main() { + WidgetsFlutterBinding.ensureInitialized(); + runApp(const DealerNetworkApp()); +} + +class DealerNetworkApp extends StatelessWidget { + const DealerNetworkApp({super.key}); + + @override + Widget build(BuildContext context) { + return ChangeNotifierProvider( + create: (_) => AuthController()..bootstrap(), + child: MaterialApp( + title: 'Dealer Network', + theme: buildAppTheme(), + home: const _Root(), + ), + ); + } +} + +class _Root extends StatelessWidget { + const _Root(); + + @override + Widget build(BuildContext context) { + final auth = context.watch(); + if (!auth.ready) return const SplashScreen(); + if (auth.user == null) return const AuthFlow(); + return const HomeShell(); + } +} diff --git a/lib/models/models.dart b/lib/models/models.dart new file mode 100644 index 0000000..520a9f5 --- /dev/null +++ b/lib/models/models.dart @@ -0,0 +1,252 @@ +class Dealer { + Dealer({ + required this.id, + required this.name, + required this.code, + this.district, + this.address, + this.phone, + }); + + final String id; + final String name; + final String code; + final String? district; + final String? address; + final String? phone; + + factory Dealer.fromJson(Map json) { + return Dealer( + id: json['id'] as String, + name: json['name'] as String, + code: json['code'] as String, + district: json['district'] as String?, + address: json['address'] as String?, + phone: json['phone'] as String?, + ); + } +} + +class AppUser { + AppUser({ + required this.id, + required this.name, + required this.phone, + required this.role, + this.dealerId, + this.assignedDealerIds = const [], + this.dealers = const [], + }); + + final String id; + final String name; + final String phone; + final String role; + final String? dealerId; + final List assignedDealerIds; + final List dealers; + + factory AppUser.fromJson(Map json) { + return AppUser( + id: json['id'] as String, + name: json['name'] as String, + phone: json['phone'] as String, + role: json['role'] as String, + dealerId: json['dealerId'] as String?, + assignedDealerIds: ((json['assignedDealerIds'] as List?) ?? const []) + .map((id) => id as String) + .toList(), + dealers: ((json['dealers'] as List?) ?? const []) + .map((item) => Dealer.fromJson(item as Map)) + .toList(), + ); + } +} + +class LoginRequestItem { + LoginRequestItem({ + required this.id, + required this.name, + required this.phone, + this.dealerName, + required this.createdAt, + }); + + final String id; + final String name; + final String phone; + final String? dealerName; + final DateTime createdAt; + + factory LoginRequestItem.fromJson(Map json) { + final user = json['user'] as Map; + return LoginRequestItem( + id: json['id'] as String, + name: user['name'] as String, + phone: user['phone'] as String, + dealerName: json['dealerName'] as String?, + createdAt: DateTime.parse(json['createdAt'] as String), + ); + } +} + +class DealerLoginStatus { + DealerLoginStatus({required this.status, this.token, this.user}); + + final String status; + final String? token; + final AppUser? user; + + factory DealerLoginStatus.fromJson(Map json) { + return DealerLoginStatus( + status: json['status'] as String, + token: json['token'] as String?, + user: json['user'] is Map + ? AppUser.fromJson(json['user'] as Map) + : null, + ); + } +} + +class StockItem { + StockItem({ + required this.id, + required this.chassisNumber, + required this.engineNumber, + required this.model, + required this.color, + required this.currentDealerId, + this.dealerName, + required this.dateReceived, + required this.currentStage, + required this.stageLogDates, + this.paymentType, + this.leaseProviderType, + this.financeCompanyName, + this.plateNumber, + required this.ageInDays, + required this.badge, + }); + + final String id; + final String chassisNumber; + final String engineNumber; + final String model; + final String color; + final String currentDealerId; + final String? dealerName; + final DateTime dateReceived; + final String currentStage; + final Map stageLogDates; + final String? paymentType; + final String? leaseProviderType; + final String? financeCompanyName; + final String? plateNumber; + final int ageInDays; + final String badge; + + factory StockItem.fromJson(Map json) { + final rawLogs = json['stageLogDates']; + final logs = {}; + if (rawLogs is Map) { + rawLogs.forEach((key, value) { + if (value != null) { + logs[key.toString()] = DateTime.parse(value.toString()); + } + }); + } + return StockItem( + id: json['id'] as String, + chassisNumber: json['chassisNumber'] as String, + engineNumber: json['engineNumber'] as String, + model: json['model'] as String, + color: json['color'] as String, + currentDealerId: json['currentDealerId'] as String, + dealerName: json['dealerName'] as String?, + dateReceived: DateTime.parse(json['dateReceived'] as String), + currentStage: json['currentStage'] as String, + stageLogDates: logs, + paymentType: json['paymentType'] as String?, + leaseProviderType: json['leaseProviderType'] as String?, + financeCompanyName: json['financeCompanyName'] as String?, + plateNumber: json['plateNumber'] as String?, + ageInDays: (json['ageInDays'] as num).toInt(), + badge: json['badge'] as String, + ); + } +} + +class EventPlan { + EventPlan({ + required this.id, + required this.dealerId, + this.dealerName, + required this.planType, + this.month, + this.year, + required this.title, + required this.description, + required this.expense, + required this.imageUrls, + required this.createdAt, + }); + + final String id; + final String dealerId; + final String? dealerName; + final String planType; + final int? month; + final int? year; + final String title; + final String description; + final double expense; + final List imageUrls; + final DateTime createdAt; + + factory EventPlan.fromJson(Map json) { + return EventPlan( + id: json['id'] as String, + dealerId: json['dealerId'] as String, + dealerName: json['dealerName'] as String?, + planType: json['planType'] as String, + month: json['month'] as int?, + year: json['year'] as int?, + title: json['title'] as String, + description: json['description'] as String, + expense: (json['expense'] as num).toDouble(), + imageUrls: ((json['imageUrls'] as List?) ?? const []) + .map((url) => url as String) + .toList(), + createdAt: DateTime.parse(json['createdAt'] as String), + ); + } +} + +class ServicePoint { + ServicePoint({ + required this.id, + required this.name, + required this.district, + this.address, + this.phone, + this.notes, + }); + + final String id; + final String name; + final String district; + final String? address; + final String? phone; + final String? notes; + + factory ServicePoint.fromJson(Map json) { + return ServicePoint( + id: json['id'] as String, + name: json['name'] as String, + district: json['district'] as String, + address: json['address'] as String?, + phone: json['phone'] as String?, + notes: json['notes'] as String?, + ); + } +} diff --git a/lib/screens/add_dealer_screen.dart b/lib/screens/add_dealer_screen.dart new file mode 100644 index 0000000..fc7efe5 --- /dev/null +++ b/lib/screens/add_dealer_screen.dart @@ -0,0 +1,96 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class AddDealerScreen extends StatefulWidget { + const AddDealerScreen({super.key}); + + @override + State createState() => _AddDealerScreenState(); +} + +class _AddDealerScreenState extends State { + final _name = TextEditingController(); + final _code = TextEditingController(); + final _address = TextEditingController(); + final _phone = TextEditingController(); + String? _district; + bool _saving = false; + + @override + void dispose() { + _name.dispose(); + _code.dispose(); + _address.dispose(); + _phone.dispose(); + super.dispose(); + } + + Future _save() async { + setState(() => _saving = true); + try { + await context.read().api.createDealer({ + 'name': _name.text.trim(), + 'code': _code.text.trim(), + 'district': _district ?? '', + 'address': _address.text.trim(), + 'phone': _phone.text.trim(), + }); + if (!mounted) return; + showNotice(context, 'Dealer and login created'); + Navigator.pop(context, true); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Add dealer')), + body: ListView( + padding: const EdgeInsets.all(16), + children: [ + TextField(controller: _name, decoration: const InputDecoration(labelText: 'Name')), + const SizedBox(height: 12), + TextField(controller: _code, decoration: const InputDecoration(labelText: 'Code')), + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _district, + isExpanded: true, + decoration: const InputDecoration(labelText: 'District'), + items: [ + for (final district in sriLankaDistricts) + DropdownMenuItem(value: district, child: Text(district)), + ], + onChanged: (value) => setState(() => _district = value), + ), + const SizedBox(height: 12), + TextField(controller: _address, decoration: const InputDecoration(labelText: 'Address')), + const SizedBox(height: 12), + TextField( + controller: _phone, + keyboardType: TextInputType.phone, + inputFormatters: [FilteringTextInputFormatter.digitsOnly], + decoration: const InputDecoration( + labelText: 'Contact phone', + hintText: '0715127342', + helperText: 'This number becomes the dealer login', + ), + ), + const SizedBox(height: 16), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Create dealer'), + ), + ], + ), + ); + } +} diff --git a/lib/screens/admin_screen.dart b/lib/screens/admin_screen.dart new file mode 100644 index 0000000..13d135f --- /dev/null +++ b/lib/screens/admin_screen.dart @@ -0,0 +1,387 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class AdminScreen extends StatelessWidget { + const AdminScreen({super.key}); + + @override + Widget build(BuildContext context) { + return DefaultTabController( + length: 2, + child: Column( + children: [ + const TabBar( + tabs: [ + Tab(text: 'Dealers'), + Tab(text: 'Sales reps'), + ], + ), + const Expanded( + child: TabBarView( + children: [ + _DealersTab(), + _RepsTab(), + ], + ), + ), + ], + ), + ); + } +} + +class _DealersTab extends StatefulWidget { + const _DealersTab(); + + @override + State<_DealersTab> createState() => _DealersTabState(); +} + +class _DealersTabState extends State<_DealersTab> { + final _name = TextEditingController(); + final _code = TextEditingController(); + final _address = TextEditingController(); + final _phone = TextEditingController(); + String? _district; + int _districtField = 0; + List _dealers = []; + bool _loading = true; + bool _saving = false; + + @override + void initState() { + super.initState(); + _load(); + } + + @override + void dispose() { + _name.dispose(); + _code.dispose(); + _address.dispose(); + _phone.dispose(); + super.dispose(); + } + + Future _load() async { + try { + final dealers = await context.read().api.adminDealers(); + if (!mounted) return; + setState(() { + _dealers = dealers; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + Future _delete(Dealer dealer) async { + final confirmed = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Delete dealer'), + content: Text( + 'Delete ${dealer.name}? Its login, stock, and plans will be removed.', + ), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: const Text('Cancel')), + FilledButton(onPressed: () => Navigator.pop(context, true), child: const Text('Delete')), + ], + ), + ); + if (confirmed != true || !mounted) return; + try { + await context.read().api.deleteDealer(dealer.id); + await _load(); + } catch (error) { + if (mounted) showError(context, error); + } + } + + Future _save() async { + setState(() => _saving = true); + try { + await context.read().api.createDealer({ + 'name': _name.text.trim(), + 'code': _code.text.trim(), + 'district': _district ?? '', + 'address': _address.text.trim(), + 'phone': _phone.text.trim(), + }); + _name.clear(); + _code.clear(); + _address.clear(); + _phone.clear(); + _district = null; + _districtField++; + await _load(); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + if (_loading) return const Center(child: CircularProgressIndicator()); + return ListView( + padding: const EdgeInsets.all(16), + children: [ + Text('New dealer', style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 12), + TextField(controller: _name, decoration: const InputDecoration(labelText: 'Name')), + const SizedBox(height: 12), + TextField(controller: _code, decoration: const InputDecoration(labelText: 'Code')), + const SizedBox(height: 12), + DropdownButtonFormField( + key: ValueKey(_districtField), + initialValue: _district, + isExpanded: true, + decoration: const InputDecoration(labelText: 'District'), + items: [ + for (final district in sriLankaDistricts) + DropdownMenuItem(value: district, child: Text(district)), + ], + onChanged: (value) => setState(() => _district = value), + ), + const SizedBox(height: 12), + TextField(controller: _address, decoration: const InputDecoration(labelText: 'Address')), + const SizedBox(height: 12), + TextField( + controller: _phone, + keyboardType: TextInputType.phone, + inputFormatters: [FilteringTextInputFormatter.digitsOnly], + decoration: const InputDecoration( + labelText: 'Contact phone', + hintText: '0715127342', + helperText: 'This number becomes the dealer login', + ), + ), + const SizedBox(height: 12), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Create dealer'), + ), + const SizedBox(height: 20), + for (final dealer in _dealers) + ListTile( + contentPadding: EdgeInsets.zero, + title: Text(dealer.name), + subtitle: Text('${dealer.code}${dealer.district == null ? '' : ' · ${dealer.district}'}'), + trailing: IconButton( + tooltip: 'Delete', + onPressed: () => _delete(dealer), + icon: const Icon(Icons.delete_outline), + ), + ), + ], + ); + } +} + +class _RepsTab extends StatefulWidget { + const _RepsTab(); + + @override + State<_RepsTab> createState() => _RepsTabState(); +} + +class _RepsTabState extends State<_RepsTab> { + final _name = TextEditingController(); + final _phone = TextEditingController(); + final _password = TextEditingController(); + List _dealers = []; + List _reps = []; + final Set _selected = {}; + bool _loading = true; + bool _saving = false; + + @override + void initState() { + super.initState(); + _load(); + } + + @override + void dispose() { + _name.dispose(); + _phone.dispose(); + _password.dispose(); + super.dispose(); + } + + Future _load() async { + final api = context.read().api; + try { + final results = await Future.wait([api.adminDealers(), api.salesReps()]); + if (!mounted) return; + setState(() { + _dealers = results[0] as List; + _reps = results[1] as List; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + Future _save() async { + setState(() => _saving = true); + try { + await context.read().api.createSalesRep({ + 'name': _name.text.trim(), + 'phone': _phone.text.trim(), + 'password': _password.text, + 'dealerIds': _selected.toList(), + }); + _name.clear(); + _phone.clear(); + _password.clear(); + _selected.clear(); + await _load(); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + Future _changeAssignment(AppUser rep, {required bool assign}) async { + final choices = _dealers.where((dealer) { + final has = rep.assignedDealerIds.contains(dealer.id); + return assign ? !has : has; + }).toList(); + if (choices.isEmpty) { + showError(context, assign ? 'Every dealer is already assigned' : 'No dealers to remove'); + return; + } + String? dealerId = choices.first.id; + final confirmed = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text(assign ? 'Assign dealer' : 'Remove dealer'), + content: DropdownButtonFormField( + initialValue: dealerId, + items: [ + for (final dealer in choices) + DropdownMenuItem(value: dealer.id, child: Text(dealer.name)), + ], + onChanged: (value) => dealerId = value, + ), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: const Text('Cancel')), + FilledButton(onPressed: () => Navigator.pop(context, true), child: const Text('Save')), + ], + ), + ); + if (confirmed != true || dealerId == null || !mounted) return; + try { + await context.read().api.assignDealer( + salesRepId: rep.id, + dealerId: dealerId!, + assigned: assign, + ); + await _load(); + } catch (error) { + if (mounted) showError(context, error); + } + } + + String _dealerNames(AppUser rep) { + if (rep.assignedDealerIds.isEmpty) return 'No dealers assigned'; + return rep.assignedDealerIds + .map((id) { + for (final dealer in _dealers) { + if (dealer.id == id) return dealer.name; + } + return id; + }) + .join(', '); + } + + @override + Widget build(BuildContext context) { + if (_loading) return const Center(child: CircularProgressIndicator()); + return ListView( + padding: const EdgeInsets.all(16), + children: [ + Text('New sales rep', style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 12), + TextField(controller: _name, decoration: const InputDecoration(labelText: 'Name')), + const SizedBox(height: 12), + TextField( + controller: _phone, + keyboardType: TextInputType.phone, + inputFormatters: [FilteringTextInputFormatter.digitsOnly], + decoration: const InputDecoration(labelText: 'Phone', hintText: '0715127342'), + ), + const SizedBox(height: 12), + TextField( + controller: _password, + obscureText: true, + decoration: const InputDecoration(labelText: 'Password'), + ), + const SizedBox(height: 8), + for (final dealer in _dealers) + CheckboxListTile( + contentPadding: EdgeInsets.zero, + title: Text(dealer.name), + value: _selected.contains(dealer.id), + onChanged: (checked) { + setState(() { + if (checked == true) { + _selected.add(dealer.id); + } else { + _selected.remove(dealer.id); + } + }); + }, + ), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Create sales rep'), + ), + const SizedBox(height: 20), + for (final rep in _reps) + Card( + child: Padding( + padding: const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(rep.name, style: Theme.of(context).textTheme.titleMedium), + Text(rep.phone), + const SizedBox(height: 4), + Text(_dealerNames(rep)), + Row( + children: [ + TextButton( + onPressed: () => _changeAssignment(rep, assign: true), + child: const Text('Assign'), + ), + TextButton( + onPressed: () => _changeAssignment(rep, assign: false), + child: const Text('Remove'), + ), + ], + ), + ], + ), + ), + ), + ], + ); + } +} diff --git a/lib/screens/auth_flow.dart b/lib/screens/auth_flow.dart new file mode 100644 index 0000000..e0896a0 --- /dev/null +++ b/lib/screens/auth_flow.dart @@ -0,0 +1,177 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +import '../services/auth_controller.dart'; + +class AuthFlow extends StatefulWidget { + const AuthFlow({super.key}); + + @override + State createState() => _AuthFlowState(); +} + +class _AuthFlowState extends State { + final _phone = TextEditingController(); + final _password = TextEditingController(); + bool _staff = false; + bool _waiting = false; + Timer? _poll; + + @override + void dispose() { + _poll?.cancel(); + _phone.dispose(); + _password.dispose(); + super.dispose(); + } + + Future _staffLogin() async { + final auth = context.read(); + try { + await auth.staffLogin(_phone.text.trim(), _password.text); + } catch (_) {} + } + + Future _dealerLogin() async { + final auth = context.read(); + try { + final started = await auth.startDealerLogin(_phone.text.trim()); + if (!mounted) return; + setState(() => _waiting = true); + _poll = Timer.periodic( + const Duration(seconds: 2), + (_) => _check(started.requestId, started.secret), + ); + await _check(started.requestId, started.secret); + } catch (_) {} + } + + Future _check(String requestId, String secret) async { + final auth = context.read(); + try { + final status = await auth.pollDealerLogin(requestId, secret); + if (!mounted) return; + if (status == 'pending') return; + _poll?.cancel(); + if (status != 'approved') setState(() => _waiting = false); + } catch (_) { + if (!mounted) return; + _poll?.cancel(); + setState(() => _waiting = false); + } + } + + void _cancelWait() { + _poll?.cancel(); + context.read().error = null; + setState(() => _waiting = false); + } + + @override + Widget build(BuildContext context) { + final auth = context.watch(); + final theme = Theme.of(context); + return Scaffold( + body: SafeArea( + child: Align( + alignment: Alignment.topCenter, + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 440), + child: ListView( + padding: const EdgeInsets.fromLTRB(24, 48, 24, 24), + children: [ + Center( + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.asset( + 'assets/images/senaro_logo.png', + width: 300, + semanticLabel: 'Senaro', + ), + ), + ), + const SizedBox(height: 20), + Text( + 'Dealer Network', + textAlign: TextAlign.center, + style: theme.textTheme.headlineMedium, + ), + const SizedBox(height: 8), + Text( + _waiting + ? 'Waiting for a sales rep or super admin to approve ${_phone.text.trim()}.' + : _staff + ? 'Staff sign in with the phone number and password on the account.' + : 'Dealers sign in with the phone number already registered for the dealership.', + style: theme.textTheme.bodyLarge, + ), + const SizedBox(height: 28), + if (_waiting) + const Center(child: CircularProgressIndicator()) + else ...[ + SegmentedButton( + segments: const [ + ButtonSegment(value: false, label: Text('Dealer')), + ButtonSegment(value: true, label: Text('Staff')), + ], + selected: {_staff}, + onSelectionChanged: auth.busy + ? null + : (value) => setState(() => _staff = value.first), + ), + const SizedBox(height: 16), + TextField( + controller: _phone, + keyboardType: TextInputType.phone, + inputFormatters: [FilteringTextInputFormatter.digitsOnly], + decoration: const InputDecoration( + labelText: 'Phone', + hintText: '071xxxxxxx', + ), + onSubmitted: (_) => _staff ? _staffLogin() : _dealerLogin(), + ), + if (_staff) ...[ + const SizedBox(height: 12), + TextField( + controller: _password, + obscureText: true, + decoration: const InputDecoration(labelText: 'Password'), + onSubmitted: (_) => _staffLogin(), + ), + ], + ], + if (auth.error != null) ...[ + const SizedBox(height: 12), + Text( + auth.error!, + style: TextStyle(color: theme.colorScheme.error), + ), + ], + const SizedBox(height: 20), + if (_waiting) + TextButton( + onPressed: _cancelWait, + child: const Text('Cancel'), + ) + else + FilledButton( + onPressed: auth.busy + ? null + : (_staff ? _staffLogin : _dealerLogin), + child: Text( + auth.busy + ? 'Please wait' + : (_staff ? 'Sign in' : 'Request login'), + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/screens/dealer_stock_screen.dart b/lib/screens/dealer_stock_screen.dart new file mode 100644 index 0000000..461bd9b --- /dev/null +++ b/lib/screens/dealer_stock_screen.dart @@ -0,0 +1,112 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../theme/app_theme.dart'; +import '../ui/feedback.dart'; +import 'stock_detail_screen.dart'; +import 'stock_form_screen.dart'; + +class DealerStockScreen extends StatefulWidget { + const DealerStockScreen({super.key, required this.dealer, required this.dealers}); + + final Dealer dealer; + final List dealers; + + @override + State createState() => _DealerStockScreenState(); +} + +class _DealerStockScreenState extends State { + List? _stocks; + bool _loading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + Future _load() async { + try { + final stocks = await context.read().api.stocks(dealerId: widget.dealer.id); + if (!mounted) return; + setState(() { + _stocks = stocks; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + @override + Widget build(BuildContext context) { + final role = context.watch().user?.role; + final stocks = _stocks ?? []; + final canAdd = role == 'dealer' || role == 'salesRep' || role == 'superAdmin'; + + return Scaffold( + appBar: AppBar(title: Text(widget.dealer.name)), + floatingActionButton: canAdd + ? FloatingActionButton.extended( + onPressed: () async { + final created = await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => StockFormScreen(dealers: [widget.dealer]), + ), + ); + if (created == true) _load(); + }, + icon: const Icon(Icons.add), + label: const Text('Add stock'), + ) + : null, + body: _loading && _stocks == null + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: _load, + child: ListView( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 96), + children: [ + if (stocks.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('No bikes for this dealer.')), + ), + for (final stock in stocks) + Card( + child: ListTile( + leading: CircleAvatar( + backgroundColor: badgeColor(stock.badge), + child: Text( + '${stock.ageInDays}', + style: const TextStyle(color: Colors.white, fontSize: 12), + ), + ), + title: Text('${modelLabel(stock.model)} · ${stock.color}'), + subtitle: Text( + '${stock.chassisNumber}${stock.plateNumber == null ? '' : ' · ${stock.plateNumber}'}\n${stageLabel(stock.currentStage)}', + ), + isThreeLine: true, + trailing: Text('${stock.ageInDays}d'), + onTap: () async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => StockDetailScreen(stock: stock, dealers: widget.dealers), + ), + ); + if (mounted) _load(); + }, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/event_form_screen.dart b/lib/screens/event_form_screen.dart new file mode 100644 index 0000000..5415cf3 --- /dev/null +++ b/lib/screens/event_form_screen.dart @@ -0,0 +1,189 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class EventFormScreen extends StatefulWidget { + const EventFormScreen({super.key}); + + @override + State createState() => _EventFormScreenState(); +} + +class _EventFormScreenState extends State { + final _title = TextEditingController(); + final _description = TextEditingController(); + final _expense = TextEditingController(); + final _urls = TextEditingController(); + String _planType = 'general'; + int _month = DateTime.now().month; + int _year = DateTime.now().year; + String? _dealerId; + List _dealers = []; + bool _loading = true; + bool _saving = false; + + @override + void initState() { + super.initState(); + _prepare(); + } + + Future _prepare() async { + final user = context.read().user; + if (user?.role == 'dealer') { + setState(() { + _dealerId = user?.dealerId; + _loading = false; + }); + return; + } + try { + final dealers = await context.read().api.dealers(); + if (!mounted) return; + setState(() { + _dealers = dealers; + if (dealers.length == 1) _dealerId = dealers.first.id; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + @override + void dispose() { + _title.dispose(); + _description.dispose(); + _expense.dispose(); + _urls.dispose(); + super.dispose(); + } + + Future _save() async { + final expense = double.tryParse(_expense.text.trim()); + if (_dealerId == null || expense == null) { + showError(context, 'Dealer and a numeric expense are required'); + return; + } + final urls = _urls.text + .split('\n') + .map((line) => line.trim()) + .where((line) => line.isNotEmpty) + .toList(); + setState(() => _saving = true); + try { + await context.read().api.createEvent({ + 'dealerId': _dealerId, + 'planType': _planType, + 'title': _title.text.trim(), + 'description': _description.text.trim(), + 'expense': expense, + 'imageUrls': urls, + if (_planType == 'monthlySpecial') 'month': _month, + if (_planType == 'monthlySpecial') 'year': _year, + }); + if (mounted) Navigator.pop(context, true); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + if (_loading) { + return const Scaffold(body: Center(child: CircularProgressIndicator())); + } + final isDealer = context.watch().user?.role == 'dealer'; + return Scaffold( + appBar: AppBar(title: const Text('New plan')), + body: ListView( + padding: const EdgeInsets.all(16), + children: [ + SegmentedButton( + segments: const [ + ButtonSegment(value: 'general', label: Text('General')), + ButtonSegment(value: 'monthlySpecial', label: Text('Monthly')), + ], + selected: {_planType}, + onSelectionChanged: (value) => setState(() => _planType = value.first), + ), + const SizedBox(height: 12), + TextField(controller: _title, decoration: const InputDecoration(labelText: 'Title')), + const SizedBox(height: 12), + TextField( + controller: _description, + minLines: 3, + maxLines: 5, + decoration: const InputDecoration(labelText: 'Description'), + ), + const SizedBox(height: 12), + TextField( + controller: _expense, + keyboardType: TextInputType.number, + decoration: const InputDecoration(labelText: 'Expense'), + ), + const SizedBox(height: 12), + TextField( + controller: _urls, + minLines: 2, + maxLines: 4, + decoration: const InputDecoration( + labelText: 'Image URLs', + hintText: 'One URL per line', + ), + ), + if (!isDealer) ...[ + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _dealerId, + decoration: const InputDecoration(labelText: 'Dealer'), + items: [ + for (final dealer in _dealers) + DropdownMenuItem(value: dealer.id, child: Text('${dealer.name} (${dealer.code})')), + ], + onChanged: (value) => setState(() => _dealerId = value), + ), + ], + if (_planType == 'monthlySpecial') ...[ + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _month, + decoration: const InputDecoration(labelText: 'Month'), + items: [ + for (var month = 1; month <= 12; month++) + DropdownMenuItem(value: month, child: Text('$month')), + ], + onChanged: (value) { + if (value != null) setState(() => _month = value); + }, + ), + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _year, + decoration: const InputDecoration(labelText: 'Year'), + items: [ + for (var year = DateTime.now().year - 1; year <= DateTime.now().year + 2; year++) + DropdownMenuItem(value: year, child: Text('$year')), + ], + onChanged: (value) { + if (value != null) setState(() => _year = value); + }, + ), + ], + const SizedBox(height: 16), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Save plan'), + ), + ], + ), + ); + } +} diff --git a/lib/screens/events_screen.dart b/lib/screens/events_screen.dart new file mode 100644 index 0000000..cc8c6c5 --- /dev/null +++ b/lib/screens/events_screen.dart @@ -0,0 +1,119 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; +import 'event_form_screen.dart'; + +class EventsScreen extends StatefulWidget { + const EventsScreen({super.key}); + + @override + State createState() => _EventsScreenState(); +} + +class _EventsScreenState extends State { + List? _events; + String? _planType; + bool _loading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + Future _load() async { + try { + final events = await context.read().api.events(planType: _planType); + if (!mounted) return; + setState(() { + _events = events; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + @override + Widget build(BuildContext context) { + final events = _events ?? []; + if (_loading && _events == null) { + return const Center(child: CircularProgressIndicator()); + } + + return Scaffold( + floatingActionButton: FloatingActionButton.extended( + onPressed: () async { + final created = await Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const EventFormScreen()), + ); + if (created == true) _load(); + }, + icon: const Icon(Icons.add), + label: const Text('New plan'), + ), + body: RefreshIndicator( + onRefresh: _load, + child: ListView( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 96), + children: [ + Wrap( + spacing: 8, + children: [ + ChoiceChip( + label: const Text('All'), + selected: _planType == null, + onSelected: (_) { + setState(() => _planType = null); + _load(); + }, + ), + ChoiceChip( + label: const Text('General'), + selected: _planType == 'general', + onSelected: (_) { + setState(() => _planType = 'general'); + _load(); + }, + ), + ChoiceChip( + label: const Text('Monthly'), + selected: _planType == 'monthlySpecial', + onSelected: (_) { + setState(() => _planType = 'monthlySpecial'); + _load(); + }, + ), + ], + ), + const SizedBox(height: 12), + if (events.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('No plans yet.')), + ), + for (final event in events) + Card( + child: ListTile( + title: Text(event.title), + subtitle: Text( + '${planLabel(event.planType)}' + '${event.month != null ? ' · ${event.month}/${event.year}' : ''}' + '\n${event.dealerName ?? ''}\n${event.description}', + ), + isThreeLine: true, + trailing: Text(event.expense.toStringAsFixed(0)), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/home_shell.dart b/lib/screens/home_shell.dart new file mode 100644 index 0000000..56ad890 --- /dev/null +++ b/lib/screens/home_shell.dart @@ -0,0 +1,156 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../services/auth_controller.dart'; +import 'add_dealer_screen.dart'; +import 'admin_screen.dart'; +import 'events_screen.dart'; +import 'login_requests_screen.dart'; +import 'service_points_screen.dart'; +import 'stock_screen.dart'; + +class HomeShell extends StatefulWidget { + const HomeShell({super.key}); + + @override + State createState() => _HomeShellState(); +} + +class _HomeShellState extends State { + int _index = 0; + int _pendingLogins = 0; + int _stockVersion = 0; + Timer? _pendingTimer; + + @override + void initState() { + super.initState(); + _refreshPending(); + _pendingTimer = Timer.periodic(const Duration(seconds: 8), (_) => _refreshPending()); + } + + @override + void dispose() { + _pendingTimer?.cancel(); + super.dispose(); + } + + Future _refreshPending() async { + final role = context.read().user?.role; + if (role != 'superAdmin' && role != 'salesRep') return; + try { + final requests = await context.read().api.loginRequests(); + if (!mounted) return; + setState(() => _pendingLogins = requests.length); + } catch (_) {} + } + + Future _logout() async { + final auth = context.read(); + final confirmed = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Log out'), + content: Text('Remove the saved login for ${auth.user?.name ?? 'this account'}?'), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: const Text('Cancel')), + FilledButton(onPressed: () => Navigator.pop(context, true), child: const Text('Log out')), + ], + ), + ); + if (confirmed == true && mounted) { + await context.read().logout(); + } + } + + @override + Widget build(BuildContext context) { + final auth = context.watch(); + final role = auth.user?.role ?? 'dealer'; + final pages = [ + StockScreen(key: ValueKey(_stockVersion)), + const EventsScreen(), + const ServicePointsScreen(), + if (role == 'superAdmin') const AdminScreen(), + ]; + final destinations = [ + const NavigationDestination(icon: Icon(Icons.inventory_2_outlined), label: 'Stock'), + const NavigationDestination(icon: Icon(Icons.event_note_outlined), label: 'Plans'), + const NavigationDestination(icon: Icon(Icons.handyman_outlined), label: 'Service'), + if (role == 'superAdmin') + const NavigationDestination(icon: Icon(Icons.admin_panel_settings_outlined), label: 'Admin'), + ]; + final safeIndex = _index.clamp(0, pages.length - 1); + final titles = ['Stock', 'Plans', 'Service', 'Admin']; + + return Scaffold( + appBar: AppBar( + title: Text(titles[safeIndex]), + actions: [ + if (role == 'superAdmin' || role == 'salesRep') + IconButton( + tooltip: 'Login requests', + onPressed: () async { + await Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const LoginRequestsScreen()), + ); + _refreshPending(); + }, + icon: Badge( + isLabelVisible: _pendingLogins > 0, + label: Text('$_pendingLogins'), + child: const Icon(Icons.how_to_reg_outlined), + ), + ), + if (role == 'salesRep') + IconButton( + tooltip: 'Add dealer', + onPressed: () async { + final created = await Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const AddDealerScreen()), + ); + if (created != true || !context.mounted) return; + try { + await context.read().refreshProfile(); + } catch (_) {} + if (context.mounted) setState(() => _stockVersion++); + }, + icon: const Icon(Icons.add_business_outlined), + ), + IconButton( + tooltip: 'Account', + onPressed: _logout, + icon: const Icon(Icons.logout), + ), + ], + ), + body: Align( + alignment: Alignment.topCenter, + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 960), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 0), + child: Text( + '${auth.user?.name ?? ''} · ${roleLabel(role)}', + style: Theme.of(context).textTheme.labelLarge, + ), + ), + Expanded(child: pages[safeIndex]), + ], + ), + ), + ), + bottomNavigationBar: NavigationBar( + selectedIndex: safeIndex, + destinations: destinations, + onDestinationSelected: (index) => setState(() => _index = index), + ), + ); + } +} diff --git a/lib/screens/login_requests_screen.dart b/lib/screens/login_requests_screen.dart new file mode 100644 index 0000000..97dd3ba --- /dev/null +++ b/lib/screens/login_requests_screen.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class LoginRequestsScreen extends StatefulWidget { + const LoginRequestsScreen({super.key}); + + @override + State createState() => _LoginRequestsScreenState(); +} + +class _LoginRequestsScreenState extends State { + List? _requests; + bool _loading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + Future _load() async { + try { + final requests = await context.read().api.loginRequests(); + if (!mounted) return; + setState(() { + _requests = requests; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + Future _decide(LoginRequestItem request, {required bool approve}) async { + final api = context.read().api; + try { + if (approve) { + await api.approveLogin(request.id); + } else { + await api.rejectLogin(request.id); + } + await _load(); + } catch (error) { + if (mounted) showError(context, error); + } + } + + @override + Widget build(BuildContext context) { + final requests = _requests ?? []; + return Scaffold( + appBar: AppBar(title: const Text('Login requests')), + body: _loading && _requests == null + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: _load, + child: ListView( + padding: const EdgeInsets.all(16), + children: [ + if (requests.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('No dealers are waiting to sign in.')), + ), + for (final request in requests) + Card( + child: Padding( + padding: const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(request.name, style: Theme.of(context).textTheme.titleMedium), + Text(request.phone), + if (request.dealerName != null) Text(request.dealerName!), + Row( + children: [ + TextButton( + onPressed: () => _decide(request, approve: false), + child: const Text('Reject'), + ), + FilledButton( + onPressed: () => _decide(request, approve: true), + child: const Text('Approve'), + ), + ], + ), + ], + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/service_point_form_screen.dart b/lib/screens/service_point_form_screen.dart new file mode 100644 index 0000000..57e347e --- /dev/null +++ b/lib/screens/service_point_form_screen.dart @@ -0,0 +1,93 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class ServicePointFormScreen extends StatefulWidget { + const ServicePointFormScreen({super.key}); + + @override + State createState() => _ServicePointFormScreenState(); +} + +class _ServicePointFormScreenState extends State { + final _name = TextEditingController(); + final _address = TextEditingController(); + String? _district; + final _phone = TextEditingController(); + final _notes = TextEditingController(); + bool _saving = false; + + @override + void dispose() { + _name.dispose(); + _address.dispose(); + _phone.dispose(); + _notes.dispose(); + super.dispose(); + } + + Future _save() async { + if (_district == null) { + showError(context, 'Choose a district'); + return; + } + setState(() => _saving = true); + try { + await context.read().api.createServicePoint({ + 'name': _name.text.trim(), + 'district': _district, + 'address': _address.text.trim(), + 'phone': _phone.text.trim(), + 'notes': _notes.text.trim(), + }); + if (mounted) Navigator.pop(context, true); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Add service point')), + body: ListView( + padding: const EdgeInsets.all(16), + children: [ + TextField(controller: _name, decoration: const InputDecoration(labelText: 'Name')), + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _district, + isExpanded: true, + decoration: const InputDecoration(labelText: 'District'), + items: [ + for (final district in sriLankaDistricts) + DropdownMenuItem(value: district, child: Text(district)), + ], + onChanged: (value) => setState(() => _district = value), + ), + const SizedBox(height: 12), + TextField(controller: _address, decoration: const InputDecoration(labelText: 'Address')), + const SizedBox(height: 12), + TextField(controller: _phone, decoration: const InputDecoration(labelText: 'Phone')), + const SizedBox(height: 12), + TextField( + controller: _notes, + minLines: 2, + maxLines: 4, + decoration: const InputDecoration(labelText: 'Notes'), + ), + const SizedBox(height: 16), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Save service point'), + ), + ], + ), + ); + } +} diff --git a/lib/screens/service_points_screen.dart b/lib/screens/service_points_screen.dart new file mode 100644 index 0000000..1b9dd0b --- /dev/null +++ b/lib/screens/service_points_screen.dart @@ -0,0 +1,132 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; +import 'service_point_form_screen.dart'; + +class ServicePointsScreen extends StatefulWidget { + const ServicePointsScreen({super.key}); + + @override + State createState() => _ServicePointsScreenState(); +} + +class _ServicePointsScreenState extends State { + final _search = TextEditingController(); + String? _district; + List? _points; + bool _loading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + @override + void dispose() { + _search.dispose(); + super.dispose(); + } + + Future _load() async { + try { + final points = await context.read().api.servicePoints( + district: _district, + search: _search.text.trim(), + ); + if (!mounted) return; + setState(() { + _points = points; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + @override + Widget build(BuildContext context) { + final role = context.watch().user?.role; + final points = _points ?? []; + if (_loading && _points == null) { + return const Center(child: CircularProgressIndicator()); + } + + return Scaffold( + floatingActionButton: role == 'dealer' + ? null + : FloatingActionButton.extended( + onPressed: () async { + final created = await Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const ServicePointFormScreen()), + ); + if (created == true) _load(); + }, + icon: const Icon(Icons.add), + label: const Text('Add point'), + ), + body: RefreshIndicator( + onRefresh: _load, + child: ListView( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 96), + children: [ + DropdownButtonFormField( + initialValue: _district, + isExpanded: true, + decoration: const InputDecoration(labelText: 'District'), + items: [ + const DropdownMenuItem(value: null, child: Text('All districts')), + for (final district in sriLankaDistricts) + DropdownMenuItem(value: district, child: Text(district)), + ], + onChanged: (value) { + setState(() => _district = value); + _load(); + }, + ), + const SizedBox(height: 12), + TextField( + controller: _search, + decoration: const InputDecoration( + labelText: 'Search', + hintText: 'Name, repair work, phone', + ), + onSubmitted: (_) => _load(), + ), + const SizedBox(height: 12), + Align( + alignment: Alignment.centerLeft, + child: FilledButton(onPressed: _load, child: const Text('Search')), + ), + const SizedBox(height: 12), + if (points.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('No service points match.')), + ), + for (final point in points) + Card( + child: ListTile( + title: Text(point.name), + subtitle: Text( + [ + point.district, + if (point.address != null && point.address!.isNotEmpty) point.address, + if (point.phone != null && point.phone!.isNotEmpty) point.phone, + if (point.notes != null && point.notes!.isNotEmpty) point.notes, + ].join('\n'), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/splash_screen.dart b/lib/screens/splash_screen.dart new file mode 100644 index 0000000..635e620 --- /dev/null +++ b/lib/screens/splash_screen.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +class SplashScreen extends StatelessWidget { + const SplashScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Image.asset( + 'assets/images/senaro_logo.png', + width: 220, + semanticLabel: 'Senaro', + ), + SizedBox(height: 16), + Text('Dealer Network'), + SizedBox(height: 24), + CircularProgressIndicator(), + ], + ), + ), + ); + } +} diff --git a/lib/screens/stock_detail_screen.dart b/lib/screens/stock_detail_screen.dart new file mode 100644 index 0000000..34f8f7e --- /dev/null +++ b/lib/screens/stock_detail_screen.dart @@ -0,0 +1,224 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../theme/app_theme.dart'; +import '../ui/feedback.dart'; + +class StockDetailScreen extends StatefulWidget { + const StockDetailScreen({super.key, required this.stock, required this.dealers}); + + final StockItem stock; + final List dealers; + + @override + State createState() => _StockDetailScreenState(); +} + +class _StockDetailScreenState extends State { + late StockItem _stock = widget.stock; + String _paymentType = 'cash'; + bool _useGci = true; + bool _useFinance = false; + String? _transferDealerId; + final _financeName = TextEditingController(); + final _plateNumber = TextEditingController(); + bool _saving = false; + + @override + void dispose() { + _financeName.dispose(); + _plateNumber.dispose(); + super.dispose(); + } + + Future _advance() async { + final stage = nextStage(_stock.currentStage); + if (stage == null) return; + final body = {'stage': stage}; + if (stage == 'paymentApproved') { + body['paymentType'] = _paymentType; + if (_paymentType == 'lease') { + if (!_useGci && !_useFinance) { + showError(context, 'Choose GCI, finance, or both'); + return; + } + body['leaseProviderType'] = _useGci && _useFinance + ? 'both' + : _useGci + ? 'gci' + : 'thirdPartyFinance'; + if (_useFinance) body['financeCompanyName'] = _financeName.text.trim(); + } + } + if (stage == 'plateReceived') { + final plateNumber = _plateNumber.text.trim(); + if (plateNumber.isEmpty) { + showError(context, 'Enter the plate number'); + return; + } + body['plateNumber'] = plateNumber; + } + setState(() => _saving = true); + try { + final updated = await context.read().api.updateStage(_stock.chassisNumber, body); + if (!mounted) return; + setState(() => _stock = updated); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + Future _transfer() async { + final dealerId = _transferDealerId; + if (dealerId == null) return; + setState(() => _saving = true); + try { + final updated = await context.read().api.transferStock(_stock.chassisNumber, dealerId); + if (!mounted) return; + setState(() { + _stock = updated; + _transferDealerId = null; + }); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + final role = context.watch().user?.role; + final upcoming = nextStage(_stock.currentStage); + final targets = widget.dealers.where((dealer) => dealer.id != _stock.currentDealerId).toList(); + + return Scaffold( + appBar: AppBar(title: Text(_stock.chassisNumber)), + body: ListView( + padding: const EdgeInsets.all(16), + children: [ + Row( + children: [ + CircleAvatar( + backgroundColor: badgeColor(_stock.badge), + child: Text('${_stock.ageInDays}', style: const TextStyle(color: Colors.white, fontSize: 12)), + ), + const SizedBox(width: 12), + Expanded( + child: Text( + '${_stock.ageInDays} days in stock · ${stageLabel(_stock.currentStage)}', + style: Theme.of(context).textTheme.titleMedium, + ), + ), + ], + ), + const SizedBox(height: 16), + _line('Model', modelLabel(_stock.model)), + _line('Color', _stock.color), + _line('Engine', _stock.engineNumber), + if (_stock.plateNumber != null) _line('Plate', _stock.plateNumber!), + _line('Dealer', _stock.dealerName ?? _stock.currentDealerId), + _line('Received', _stock.dateReceived.toLocal().toString().split(' ').first), + if (_stock.paymentType != null) _line('Payment', _stock.paymentType!), + if (_stock.leaseProviderType != null) + _line('Lease', leaseProviderLabel(_stock.leaseProviderType!)), + if (_stock.financeCompanyName != null) _line('Finance company', _stock.financeCompanyName!), + const SizedBox(height: 16), + Text('Stage log', style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 8), + for (final stage in stageOrder) + if (_stock.stageLogDates.containsKey(stage)) + ListTile( + contentPadding: EdgeInsets.zero, + title: Text(stageLabel(stage)), + trailing: Text(_stock.stageLogDates[stage]!.toLocal().toString().split(' ').first), + ), + if (upcoming != null) ...[ + const Divider(), + Text('Advance to ${stageLabel(upcoming)}', style: Theme.of(context).textTheme.titleMedium), + if (upcoming == 'paymentApproved') ...[ + const SizedBox(height: 12), + SegmentedButton( + segments: const [ + ButtonSegment(value: 'cash', label: Text('Cash')), + ButtonSegment(value: 'lease', label: Text('Lease')), + ], + selected: {_paymentType}, + onSelectionChanged: (value) => setState(() => _paymentType = value.first), + ), + if (_paymentType == 'lease') ...[ + CheckboxListTile( + contentPadding: EdgeInsets.zero, + title: const Text('GCI'), + value: _useGci, + onChanged: (value) => setState(() => _useGci = value ?? false), + ), + CheckboxListTile( + contentPadding: EdgeInsets.zero, + title: const Text('Finance'), + value: _useFinance, + onChanged: (value) => setState(() => _useFinance = value ?? false), + ), + if (_useFinance) + TextField( + controller: _financeName, + decoration: const InputDecoration(labelText: 'Finance company'), + ), + ], + ], + if (upcoming == 'plateReceived') ...[ + const SizedBox(height: 12), + TextField( + controller: _plateNumber, + textCapitalization: TextCapitalization.characters, + decoration: const InputDecoration(labelText: 'Plate number'), + ), + ], + const SizedBox(height: 12), + FilledButton( + onPressed: _saving ? null : _advance, + child: Text(_saving ? 'Saving' : 'Update stage'), + ), + ], + if (role != 'dealer' && targets.isNotEmpty) ...[ + const Divider(), + Text('Transfer', style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _transferDealerId, + decoration: const InputDecoration(labelText: 'Destination dealer'), + items: [ + for (final dealer in targets) + DropdownMenuItem(value: dealer.id, child: Text('${dealer.name} (${dealer.code})')), + ], + onChanged: (value) => setState(() => _transferDealerId = value), + ), + const SizedBox(height: 12), + OutlinedButton( + onPressed: _saving || _transferDealerId == null ? null : _transfer, + child: const Text('Transfer unit'), + ), + ], + ], + ), + ); + } + + Widget _line(String label, String value) { + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(width: 140, child: Text(label)), + Expanded(child: Text(value)), + ], + ), + ); + } +} diff --git a/lib/screens/stock_form_screen.dart b/lib/screens/stock_form_screen.dart new file mode 100644 index 0000000..b057f90 --- /dev/null +++ b/lib/screens/stock_form_screen.dart @@ -0,0 +1,144 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../labels.dart'; +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../ui/feedback.dart'; + +class StockFormScreen extends StatefulWidget { + const StockFormScreen({super.key, required this.dealers}); + + final List dealers; + + @override + State createState() => _StockFormScreenState(); +} + +class _StockFormScreenState extends State { + final _chassis = TextEditingController(); + final _engine = TextEditingController(); + final _color = TextEditingController(); + String _model = modelOptions.first; + String? _dealerId; + DateTime _received = DateTime.now(); + bool _saving = false; + + @override + void initState() { + super.initState(); + final user = context.read().user; + if (user?.role == 'dealer') { + _dealerId = user?.dealerId ?? (widget.dealers.isNotEmpty ? widget.dealers.first.id : null); + } else if (widget.dealers.length == 1) { + _dealerId = widget.dealers.first.id; + } + } + + @override + void dispose() { + _chassis.dispose(); + _engine.dispose(); + _color.dispose(); + super.dispose(); + } + + Future _save() async { + if (_dealerId == null) { + showError(context, 'Choose a dealer'); + return; + } + setState(() => _saving = true); + try { + await context.read().api.createStock({ + 'chassisNumber': _chassis.text.trim(), + 'engineNumber': _engine.text.trim(), + 'model': _model, + 'color': _color.text.trim(), + 'currentDealerId': _dealerId, + 'dateReceived': _received.toUtc().toIso8601String(), + }); + if (mounted) Navigator.pop(context, true); + } catch (error) { + if (mounted) showError(context, error); + } finally { + if (mounted) setState(() => _saving = false); + } + } + + @override + Widget build(BuildContext context) { + final lockedToOwnDealer = context.watch().user?.role == 'dealer'; + Dealer? ownDealer; + for (final dealer in widget.dealers) { + if (dealer.id == _dealerId) { + ownDealer = dealer; + break; + } + } + return Scaffold( + appBar: AppBar(title: const Text('Add stock')), + body: ListView( + padding: const EdgeInsets.all(16), + children: [ + TextField(controller: _chassis, decoration: const InputDecoration(labelText: 'Chassis number')), + const SizedBox(height: 12), + TextField(controller: _engine, decoration: const InputDecoration(labelText: 'Engine number')), + const SizedBox(height: 12), + DropdownButtonFormField( + initialValue: _model, + decoration: const InputDecoration(labelText: 'Model'), + items: [ + for (final model in modelOptions) + DropdownMenuItem(value: model, child: Text(modelLabel(model))), + ], + onChanged: (value) { + if (value != null) setState(() => _model = value); + }, + ), + const SizedBox(height: 12), + TextField(controller: _color, decoration: const InputDecoration(labelText: 'Color')), + const SizedBox(height: 12), + if (lockedToOwnDealer) + InputDecorator( + decoration: const InputDecoration(labelText: 'Dealer'), + child: Text( + ownDealer == null ? 'Your dealership' : '${ownDealer.name} (${ownDealer.code})', + ), + ) + else + DropdownButtonFormField( + initialValue: _dealerId, + decoration: const InputDecoration(labelText: 'Dealer'), + items: [ + for (final dealer in widget.dealers) + DropdownMenuItem(value: dealer.id, child: Text('${dealer.name} (${dealer.code})')), + ], + onChanged: (value) => setState(() => _dealerId = value), + ), + const SizedBox(height: 12), + ListTile( + contentPadding: EdgeInsets.zero, + title: const Text('Received date'), + subtitle: Text(_received.toLocal().toString().split(' ').first), + trailing: const Icon(Icons.calendar_today), + onTap: () async { + final picked = await showDatePicker( + context: context, + initialDate: _received, + firstDate: DateTime(2000), + lastDate: DateTime.now().add(const Duration(days: 1)), + ); + if (picked != null) setState(() => _received = picked); + }, + ), + const SizedBox(height: 16), + FilledButton( + onPressed: _saving ? null : _save, + child: Text(_saving ? 'Saving' : 'Save stock'), + ), + ], + ), + ); + } +} diff --git a/lib/screens/stock_screen.dart b/lib/screens/stock_screen.dart new file mode 100644 index 0000000..f74cfa1 --- /dev/null +++ b/lib/screens/stock_screen.dart @@ -0,0 +1,168 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../models/models.dart'; +import '../services/auth_controller.dart'; +import '../theme/app_theme.dart'; +import '../ui/feedback.dart'; +import 'dealer_stock_screen.dart'; +import 'stock_form_screen.dart'; + +class StockScreen extends StatefulWidget { + const StockScreen({super.key}); + + @override + State createState() => _StockScreenState(); +} + +class _StockScreenState extends State { + List _dealers = []; + List _stocks = []; + bool _loading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + Future _load() async { + final api = context.read().api; + try { + final results = await Future.wait([ + api.dealers(), + api.stocks(), + ]); + if (!mounted) return; + setState(() { + _dealers = results[0] as List; + _stocks = results[1] as List; + _loading = false; + }); + } catch (error) { + if (!mounted) return; + setState(() => _loading = false); + showError(context, error); + } + } + + int _count(String dealerId, String badge) { + return _stocks.where((item) => item.currentDealerId == dealerId && item.badge == badge).length; + } + + @override + Widget build(BuildContext context) { + final role = context.watch().user?.role; + final canAdd = role == 'dealer' || role == 'salesRep' || role == 'superAdmin'; + + if (_loading && _dealers.isEmpty && _stocks.isEmpty) { + return const Center(child: CircularProgressIndicator()); + } + + return Scaffold( + floatingActionButton: canAdd + ? FloatingActionButton.extended( + onPressed: () async { + final created = await Navigator.of(context).push( + MaterialPageRoute(builder: (_) => StockFormScreen(dealers: _dealers)), + ); + if (created == true) _load(); + }, + icon: const Icon(Icons.add), + label: const Text('Add stock'), + ) + : null, + body: RefreshIndicator( + onRefresh: _load, + child: ListView( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 96), + children: [ + if (_dealers.isEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 32), + child: Center(child: Text('No dealers to show.')), + ), + for (final dealer in _dealers) + Card( + clipBehavior: Clip.antiAlias, + child: InkWell( + onTap: () async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => DealerStockScreen(dealer: dealer, dealers: _dealers), + ), + ); + if (mounted) _load(); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(dealer.name, style: Theme.of(context).textTheme.titleMedium), + const SizedBox(height: 2), + Text( + dealer.district == null || dealer.district!.isEmpty + ? dealer.code + : '${dealer.code} · ${dealer.district}', + style: Theme.of(context).textTheme.bodySmall, + ), + const SizedBox(height: 12), + Row( + children: [ + Expanded( + child: _AgeCount( + label: 'Under 30', + count: _count(dealer.id, 'green'), + badge: 'green', + ), + ), + Expanded( + child: _AgeCount( + label: '30–45', + count: _count(dealer.id, 'yellow'), + badge: 'yellow', + ), + ), + Expanded( + child: _AgeCount( + label: 'Over 45', + count: _count(dealer.id, 'red'), + badge: 'red', + ), + ), + ], + ), + ], + ), + ), + ), + ), + ], + ), + ), + ); + } +} + +class _AgeCount extends StatelessWidget { + const _AgeCount({required this.label, required this.count, required this.badge}); + + final String label; + final int count; + final String badge; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Text( + '$count', + style: Theme.of(context).textTheme.headlineSmall?.copyWith(color: badgeColor(badge)), + ), + const SizedBox(height: 2), + Text(label, style: Theme.of(context).textTheme.bodySmall, textAlign: TextAlign.center), + ], + ); + } +} diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart new file mode 100644 index 0000000..dc39529 --- /dev/null +++ b/lib/services/api_client.dart @@ -0,0 +1,228 @@ +import 'package:dio/dio.dart'; + +import '../config/api_config.dart'; +import '../models/models.dart'; + +class ApiException implements Exception { + ApiException(this.message, {this.statusCode}); + + final String message; + final int? statusCode; + + @override + String toString() => message; +} + +class ApiClient { + ApiClient() { + dio = Dio( + BaseOptions( + baseUrl: resolveApiBaseUrl(), + connectTimeout: const Duration(seconds: 15), + receiveTimeout: const Duration(seconds: 15), + headers: const { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + ), + ); + dio.interceptors.add( + InterceptorsWrapper( + onRequest: (options, handler) { + if (token != null && token!.isNotEmpty) { + options.headers['Authorization'] = 'Bearer $token'; + } + handler.next(options); + }, + ), + ); + } + + late final Dio dio; + String? token; + + Future<({String token, AppUser user})> staffLogin(String phone, String password) { + return _send( + dio.post('/auth/staff-login', data: {'phone': phone, 'password': password}), + (data) { + final map = data as Map; + return ( + token: map['token'] as String, + user: AppUser.fromJson(map['user'] as Map), + ); + }, + ); + } + + Future<({String requestId, String secret})> dealerLogin(String phone) { + return _send(dio.post('/auth/dealer-login', data: {'phone': phone}), (data) { + final map = data as Map; + return (requestId: map['requestId'] as String, secret: map['secret'] as String); + }); + } + + Future dealerLoginStatus(String requestId, String secret) { + return _send( + dio.get('/auth/dealer-login/$requestId', queryParameters: {'secret': secret}), + (data) => DealerLoginStatus.fromJson(data as Map), + ); + } + + Future> loginRequests() { + return _send(dio.get('/auth/login-requests'), (data) => _list(data, LoginRequestItem.fromJson)); + } + + Future approveLogin(String id) { + return _send(dio.post('/auth/login-requests/$id/approve'), (_) {}); + } + + Future rejectLogin(String id) { + return _send(dio.post('/auth/login-requests/$id/reject'), (_) {}); + } + + Future me() { + return _send( + dio.get('/auth/me'), + (data) => AppUser.fromJson(data as Map), + ); + } + + Future> dealers() { + return _send(dio.get('/dealers'), (data) => _list(data, Dealer.fromJson)); + } + + Future> stocks({String? dealerId}) { + return _send( + dio.get( + '/stocks', + queryParameters: { + if (dealerId != null && dealerId.isNotEmpty) 'dealerId': dealerId, + }, + ), + (data) => _list(data, StockItem.fromJson), + ); + } + + Future createStock(Map body) { + return _send( + dio.post('/stocks', data: body), + (data) => StockItem.fromJson((data as Map)['data'] as Map), + ); + } + + Future updateStage(String chassisNumber, Map body) { + return _send( + dio.patch('/stocks/$chassisNumber/stage', data: body), + (data) => StockItem.fromJson((data as Map)['data'] as Map), + ); + } + + Future transferStock(String chassisNumber, String dealerId) { + return _send( + dio.post('/stocks/$chassisNumber/transfer', data: {'dealerId': dealerId}), + (data) => StockItem.fromJson((data as Map)['data'] as Map), + ); + } + + Future> events({String? dealerId, String? planType}) { + return _send( + dio.get( + '/events', + queryParameters: { + if (dealerId != null && dealerId.isNotEmpty) 'dealerId': dealerId, + if (planType != null && planType.isNotEmpty) 'planType': planType, + }, + ), + (data) => _list(data, EventPlan.fromJson), + ); + } + + Future createEvent(Map body) { + return _send( + dio.post('/events', data: body), + (data) => EventPlan.fromJson((data as Map)['data'] as Map), + ); + } + + Future> servicePoints({String? district, String? search}) { + return _send( + dio.get( + '/service-points', + queryParameters: { + if (district != null && district.isNotEmpty) 'district': district, + if (search != null && search.isNotEmpty) 'search': search, + }, + ), + (data) => _list(data, ServicePoint.fromJson), + ); + } + + Future createServicePoint(Map body) { + return _send( + dio.post('/service-points', data: body), + (data) => ServicePoint.fromJson((data as Map)['data'] as Map), + ); + } + + Future createDealer(Map body) { + return _send( + dio.post('/admin/dealers', data: body), + (data) => Dealer.fromJson((data as Map)['data'] as Map), + ); + } + + Future deleteDealer(String id) { + return _send(dio.delete('/admin/dealers/$id'), (_) {}); + } + + Future> adminDealers() { + return _send(dio.get('/admin/dealers'), (data) => _list(data, Dealer.fromJson)); + } + + Future> salesReps() { + return _send(dio.get('/admin/sales-reps'), (data) => _list(data, AppUser.fromJson)); + } + + Future createSalesRep(Map body) { + return _send( + dio.post('/admin/sales-reps', data: body), + (data) => AppUser.fromJson((data as Map)['data'] as Map), + ); + } + + Future assignDealer({ + required String salesRepId, + required String dealerId, + required bool assigned, + }) { + return _send( + dio.patch( + '/admin/assign-dealer', + data: { + 'salesRepId': salesRepId, + 'dealerId': dealerId, + 'assigned': assigned, + }, + ), + (data) => AppUser.fromJson((data as Map)['data'] as Map), + ); + } + + Future _send(Future> request, T Function(dynamic data) parse) async { + try { + final response = await request; + return parse(response.data); + } on DioException catch (error) { + final data = error.response?.data; + final message = data is Map && data['message'] is String + ? data['message'] as String + : 'Network request failed'; + throw ApiException(message, statusCode: error.response?.statusCode); + } + } + + List _list(dynamic data, T Function(Map) parse) { + final raw = (data as Map)['data'] as List; + return raw.map((item) => parse(item as Map)).toList(); + } +} diff --git a/lib/services/auth_controller.dart b/lib/services/auth_controller.dart new file mode 100644 index 0000000..c8f2940 --- /dev/null +++ b/lib/services/auth_controller.dart @@ -0,0 +1,103 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +import '../models/models.dart'; +import 'api_client.dart'; + +class AuthController extends ChangeNotifier { + AuthController({FlutterSecureStorage? storage, ApiClient? apiClient}) + : _storage = storage ?? const FlutterSecureStorage(), + api = apiClient ?? ApiClient(); + + final FlutterSecureStorage _storage; + final ApiClient api; + + AppUser? user; + bool ready = false; + bool busy = false; + String? error; + + Future bootstrap() async { + try { + final stored = await _storage.read(key: 'jwt_token'); + if (stored == null || stored.isEmpty) return; + api.token = stored; + user = await api.me(); + } catch (_) { + api.token = null; + user = null; + await _storage.delete(key: 'jwt_token'); + } finally { + ready = true; + notifyListeners(); + } + } + + Future staffLogin(String phone, String password) async { + await _run(() async { + final result = await api.staffLogin(phone, password); + await _storeSession(result.token, result.user); + }); + } + + Future<({String requestId, String secret})> startDealerLogin(String phone) async { + late ({String requestId, String secret}) started; + await _run(() async { + started = await api.dealerLogin(phone); + }); + return started; + } + + Future pollDealerLogin(String requestId, String secret) async { + final status = await api.dealerLoginStatus(requestId, secret); + if (status.status == 'approved' && status.token != null && status.user != null) { + await _storeSession(status.token!, status.user!); + notifyListeners(); + } else if (status.status == 'rejected') { + error = 'Login was rejected'; + notifyListeners(); + } else if (status.status == 'expired' || status.status == 'consumed') { + error = 'Login request expired. Try again.'; + notifyListeners(); + } + return status.status; + } + + Future _storeSession(String token, AppUser profile) async { + api.token = token; + await _storage.write(key: 'jwt_token', value: token); + user = profile; + } + + Future refreshProfile() async { + if (api.token == null) return; + user = await api.me(); + notifyListeners(); + } + + Future logout() async { + api.token = null; + user = null; + error = null; + await _storage.delete(key: 'jwt_token'); + notifyListeners(); + } + + Future _run(Future Function() action) async { + busy = true; + error = null; + notifyListeners(); + try { + await action(); + } on ApiException catch (error) { + this.error = error.message; + rethrow; + } catch (error) { + this.error = 'Network request failed'; + rethrow; + } finally { + busy = false; + notifyListeners(); + } + } +} diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart new file mode 100644 index 0000000..1df1e2a --- /dev/null +++ b/lib/theme/app_theme.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; + +ThemeData buildAppTheme() { + const seed = Color(0xFF0E4D6C); + final scheme = ColorScheme.fromSeed(seedColor: seed); + return ThemeData( + colorScheme: scheme, + useMaterial3: true, + scaffoldBackgroundColor: const Color(0xFFF4F7F8), + inputDecorationTheme: const InputDecorationTheme( + border: OutlineInputBorder(), + ), + cardTheme: CardThemeData( + elevation: 0, + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: BorderSide(color: scheme.outlineVariant), + ), + ), + ); +} + +Color badgeColor(String badge) { + switch (badge) { + case 'green': + return const Color(0xFF1B7F4E); + case 'yellow': + return const Color(0xFF8A6A12); + case 'red': + return const Color(0xFFB42318); + default: + return const Color(0xFF5C6B73); + } +} diff --git a/lib/ui/feedback.dart b/lib/ui/feedback.dart new file mode 100644 index 0000000..b9bc158 --- /dev/null +++ b/lib/ui/feedback.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +import '../services/api_client.dart'; + +void showError(BuildContext context, Object error) { + final message = switch (error) { + ApiException(:final message) => message, + String message => message, + _ => 'Something went wrong', + }; + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(message))); +} + +Future showNotice(BuildContext context, String message) { + return ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text(message))) + .closed; +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..d863ca5 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,466 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + dio: + dependency: "direct main" + description: + name: dio + sha256: "852ec3b48cc431ac04fff978413c541502b67ffc3e26921e74e3d994694192c1" + url: "https://pub.dev" + source: hosted + version: "5.11.1" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "3a1b2cd7be71086f38504956e3ebcd2837288d231ff454bafa78021244102bfc" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + jni: + dependency: transitive + description: + name: jni + sha256: "6b9ca0602fef0230e83149afbe3f9f8227e94f2bbe84a1da4f14d699742f402d" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: c399ad579bfba12eb20c924f7a23160a42902f3023a871e1cad40a8a679656a4 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + jni_util: + dependency: transitive + description: + name: jni_util + sha256: "1ba86da04a5f2bf18fde2edb235587e70c5b0fc5bd4ba955f46b00942c3fc35f" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + lints: + dependency: transitive + description: + name: lints + sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + url: "https://pub.dev" + source: hosted + version: "5.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4" + url: "https://pub.dev" + source: hosted + version: "2.5.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + provider: + dependency: "direct main" + description: + name: provider + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" + url: "https://pub.dev" + source: hosted + version: "6.1.5+1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + url: "https://pub.dev" + source: hosted + version: "0.7.6" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + url: "https://pub.dev" + source: hosted + version: "2.2.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "5f37239c4851efcef929cea7824e76df7f2f0970aef85d66bbc430afa40e72f0" + url: "https://pub.dev" + source: hosted + version: "15.3.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" +sdks: + dart: ">=3.9.2 <4.0.0" + flutter: ">=3.35.6" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..671cc35 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,90 @@ +name: dealer_network +description: Dealership inventory and operations client. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ^3.9.2 + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.8 + dio: ^5.9.0 + flutter_secure_storage: ^9.2.4 + provider: ^6.1.5 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^5.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + assets: + - assets/images/senaro_logo.png + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..6ae3a6e --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,28 @@ +import 'package:dealer_network/models/models.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test('parses a stock item age badge', () { + final stock = StockItem.fromJson({ + 'id': '1', + 'chassisNumber': 'CH-1', + 'engineNumber': 'EN-1', + 'model': 'gn125', + 'color': 'Red', + 'currentDealerId': 'd1', + 'dealerName': 'Kandy Motors', + 'dateReceived': '2026-01-01T00:00:00.000Z', + 'currentStage': 'received', + 'stageLogDates': {'received': '2026-01-01T00:00:00.000Z'}, + 'paymentType': null, + 'leaseProviderType': null, + 'financeCompanyName': null, + 'ageInDays': 50, + 'badge': 'red', + }); + + expect(stock.badge, 'red'); + expect(stock.ageInDays, 50); + expect(stock.stageLogDates['received'], DateTime.parse('2026-01-01T00:00:00.000Z')); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0b9504d5d76db87cd67ed3b4e0d613c8953faa GIT binary patch literal 2831 zcmV+q3-I)bP)000WsNklMT!(DeiiUnc7u>02nZp|vdNdZxw*BqwKX+0 zMMcG0tp*_x!!QzwnBzE~&o?%G0b z7KBO_z;=FQu-ZL6-XW?61@bZlf~cy?ySzw8(G zL}C&a{?(Pd0E(C+YWG_LCFwrA- z2HwBA!YB_~kJi@K=bwMRzP=t~@V#~7)~%sw`!thCAQ21({T#*(dnmmjp}53=eJJ3x}8QmIrb zl`56WYPG)q{`;HSHud#gA08Q=ve|;ckb+X`v^te4gHlp6GxvsuZUF$2rmx&X002$X z@4ox)bI(0zv)Rs^IWs&wJUu;4({w?BaqHHto7&oX{@v5r*;!Ur=J)#pfj}q}ibkUk zw@|e5VcoiQm6a7`W#vYr(O@v>^?J2hO(`h|AOK+F#y^?O=0k`6A(n^$;5Aw`fM989 z(d~BXbeRQ z>B7PyjBz*|xpU|4*ytF`aU92Cj5&^*pLh6tK8Zxaa&ec-9S8)X(P$!(h(@DRQ?}*h zWt~p9XU`soV}5wpf-w$^arBI1QVgNA! z0APSIz<}p@3;+&>mIns{#ik z!T}f^9W5>{-o1PGxpU{j;V?lELK_I7TCJAJWPA7QduG?p#>U2UN{s;^AOQ&g0RbQY z7y|$jEE}Tzt53+v2ZT^oR;E}g;(3l`8HSCsT%6+*1c4<|5rp8I-f!G)x6Njoo10r$ zSfFW|W!ZQQ&OG--Qa`}fJemFQdh%qKflIMAX zAV`vw$z)!y*WqyZm;JrHy%0jN6hVULFq2>zhK(iIIFDJ0RIJa^A%q?gMzvb)8*jX! z(`nPwGn7h7p-_-ynnWU2D5!%64^B)>n9XLXRH{@e)oQiF;c&TJ<>loZ$Nlib4-i6? zN)?Gj;_$ig#v+Pk7x0ncmC$}`X06e5JH-!^YZfQ>diSh zISK{E^MIylx7*|Pco0GcgQ2djuBN7@rKLr$*B?7}Z1?WnO-)T+uXk!{YRi@_CX-1j zl^#2GOeT|MWo4O6rpn67FTVJ~>2x+WHa_*#Q{&^~H8nM#fBw1AX#DK6&t7`zC6me2 z-Q8VVTU%CEmXVQx5b}6DZnuY~X^b&NQ8_s|_4Q_h!9detA(}n#5MzvEvDmI%yHpt( z0uqpb001EbArT6Nf_3%ls;a6uj&r$OQmNEnFznyI|Fzd%TUc0dxm-OxJw~IEW!aXN zmV*Zmwzs$2?RKlxnxCKF)zxJ*8U?31apFWtNl8yn&+Xf{T`m{HFvG*cmo8mm7-nc_ zXmZl_$+1tlA2SpT0LDDe^ZsS;Pli!+|J4g2)M|BFoeqgaLWoF{%jI%~R3>w|7K)3D zh4Ae0cuGr4X_~%rG#a&9tzxm5BuS^!aqZeQy*^u^P>>`^lBA3zB@&5BrRI4q zL2yk^5&$5TN^LeRDTCG~G7P?oNs@mJPA%sq!KD}y2nx@yTT`L6QN8iK(LV&YaENyLVd-v`Q z(_si920$v6xLt0M2uY=+J~K&U@+9xnRo7dMk*D*{`%`eZoF!l$H&KC ze);9{^73#v?DcvV78V5K3JMBp*VXm+_aP+8&dwr9nT(XlWYPr32n+OZ*B3qHo1oj{ zaeF-OmG8w~3CFY5Rcj|FCm@8C6_uu{>V}4fHEVL-dh4y3nVD5P&htD%Xm)nCqod>K z(W5WC@B&GaXU?3te*HSbFjb~%mQBpe-eVK&!h++M7BuMRRF5km2!i8Sg+j4@ee>et z;uB9aR8*KsOG}E1ia!4M$f;AORyxnh8wMdXGBU!l?Dp;3O(v6GuUD&8GO4V!we4Ep zRh!Kw9MhF^{XPPIQquhV{PykJ^_khBKuDLVqbTarlP9{r{1PFQtTyl0AQFkLT)ENs4*V^?^y8WS zuhSP56*V_Eo6Y9DygZDt-@mLETyxG^+XS3N>mLI?6AE6W}Qlv|Jk>dZG{{YxGmylW9tcm~t002ovPDHLkV1h9Rd)fd1 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..568afc019cfbff089a059d85d1634155c5cee33a GIT binary patch literal 13490 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 z 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..5a754d8bd8738ec7202b8d9ecb5d28d25648a87d GIT binary patch literal 52192 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..a9edb29813c8c758eba024006428b0cf813f3493 GIT binary patch literal 8727 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

YaVuM+zTQX7YO$!O$l2AB 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 j6Zrq=3Ct@`Y;Di|?}?PCRF*gS? + + + + + + + + + + + + + + + + + + + dealer_network + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..cc41447 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "dealer_network", + "short_name": "dealer_network", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +}