From 3236104a0fa165477a745415ec986c3adeb1ba19 Mon Sep 17 00:00:00 2001 From: Wiraba Salamah Date: Fri, 24 Apr 2026 08:04:20 +0700 Subject: [PATCH] Initial project import --- .gitignore | 20 + BRIEF.md | 2 + Ina Trading Dev.postman_environment.json | 52 + Ina Trading.postman_collection.json | 4454 +++++++++++++++++ app/.gitignore | 1 + app/build.gradle.kts | 170 + app/google-services.json | 29 + app/proguard-rules.pro | 21 + .../inatrading/ExampleInstrumentedTest.kt | 24 + app/src/main/AndroidManifest.xml | 44 + app/src/main/ic_launcher-playstore.png | Bin 0 -> 27255 bytes .../java/id/iiyh/inatrading/InaApplication.kt | 7 + .../java/id/iiyh/inatrading/MainActivity.kt | 155 + .../core/data/local/SessionManager.kt | 72 + .../inatrading/core/data/remote/ApiService.kt | 161 + .../data/remote/SessionExpiredException.kt | 3 + .../remote/interceptor/HeaderInterceptor.kt | 36 + .../core/data/remote/model/ApiResponse.kt | 17 + .../id/iiyh/inatrading/core/di/AuthModule.kt | 18 + .../id/iiyh/inatrading/core/di/CartModule.kt | 19 + .../iiyh/inatrading/core/di/ExploreModule.kt | 18 + .../iiyh/inatrading/core/di/FavoriteModule.kt | 18 + .../iiyh/inatrading/core/di/NetworkModule.kt | 60 + .../id/iiyh/inatrading/core/di/NewsModule.kt | 18 + .../iiyh/inatrading/core/di/ProductModule.kt | 18 + .../core/ui/components/InaBottomNavBar.kt | 125 + .../core/ui/components/InaButton.kt | 168 + .../inatrading/core/ui/components/InaCard.kt | 92 + .../inatrading/core/ui/components/InaChip.kt | 114 + .../core/ui/components/InaInnerTopAppBar.kt | 71 + .../inatrading/core/ui/components/InaLogo.kt | 41 + .../core/ui/components/InaTextField.kt | 193 + .../core/ui/components/InaTopAppBar.kt | 140 + .../id/iiyh/inatrading/core/ui/theme/Color.kt | 48 + .../id/iiyh/inatrading/core/ui/theme/Theme.kt | 114 + .../id/iiyh/inatrading/core/ui/theme/Type.kt | 155 + .../auth/data/model/RegisterRequest.kt | 8 + .../data/repository/AuthRepositoryImpl.kt | 334 ++ .../auth/domain/repository/AuthRepository.kt | 30 + .../auth/presentation/ForgotPasswordScreen.kt | 84 + .../feature/auth/presentation/LoginScreen.kt | 543 ++ .../auth/presentation/LoginViewModel.kt | 70 + .../auth/presentation/RegisterScreen.kt | 405 ++ .../presentation/RegisterSuccessScreen.kt | 98 + .../auth/presentation/RegisterViewModel.kt | 133 + .../feature/cart/data/model/CartModels.kt | 57 + .../data/repository/CartRepositoryImpl.kt | 127 + .../feature/cart/domain/CartRepository.kt | 19 + .../feature/cart/presentation/CartScreen.kt | 738 +++ .../cart/presentation/CartViewModel.kt | 189 + .../explore/data/model/LocationItem.kt | 32 + .../data/repository/LocationRepositoryImpl.kt | 30 + .../explore/domain/LocationRepository.kt | 13 + .../presentation/ExploreDetailScreen.kt | 651 +++ .../presentation/ExploreNavViewModel.kt | 20 + .../explore/presentation/ExploreScreen.kt | 676 +++ .../explore/presentation/ExploreViewModel.kt | 121 + .../favorite/data/model/FavoriteModels.kt | 47 + .../data/repository/FavoriteRepositoryImpl.kt | 180 + .../favorite/domain/FavoriteRepository.kt | 27 + .../FavoriteGroupDetailViewModel.kt | 142 + .../presentation/FavoritesViewModel.kt | 127 + .../feature/home/presentation/HomeScreen.kt | 664 +++ .../home/presentation/HomeViewModel.kt | 50 + .../feature/info/presentation/AboutScreen.kt | 455 ++ .../info/presentation/HelpCenterScreen.kt | 665 +++ .../info/presentation/PrivacyPolicyScreen.kt | 386 ++ .../presentation/TermsConditionsScreen.kt | 373 ++ .../feature/news/data/model/NewsArticle.kt | 36 + .../data/repository/NewsRepositoryImpl.kt | 24 + .../feature/news/domain/NewsRepository.kt | 7 + .../news/presentation/NewsDetailScreen.kt | 334 ++ .../news/presentation/NewsListScreen.kt | 644 +++ .../news/presentation/NewsListViewModel.kt | 55 + .../news/presentation/NewsNavViewModel.kt | 21 + .../feature/product/data/model/ProductItem.kt | 148 + .../data/repository/ProductRepositoryImpl.kt | 45 + .../product/domain/ProductRepository.kt | 15 + .../presentation/ProductDetailScreen.kt | 995 ++++ .../presentation/ProductDetailViewModel.kt | 192 + .../presentation/ProductNavViewModel.kt | 20 + .../product/presentation/ProductsScreen.kt | 896 ++++ .../product/presentation/ProductsViewModel.kt | 332 ++ .../profile/data/model/BuyerProfileModels.kt | 26 + .../profile/data/model/RegionModels.kt | 35 + .../data/model/ShippingAddressModels.kt | 44 + .../presentation/AddShippingAddressScreen.kt | 418 ++ .../AddShippingAddressViewModel.kt | 337 ++ .../presentation/AddressFormComponents.kt | 329 ++ .../presentation/ChangePasswordScreen.kt | 532 ++ .../presentation/ChangePasswordViewModel.kt | 151 + .../profile/presentation/EditProfileScreen.kt | 602 +++ .../presentation/EditProfileViewModel.kt | 157 + .../presentation/EditShippingAddressScreen.kt | 532 ++ .../EditShippingAddressViewModel.kt | 467 ++ .../presentation/FavoriteGroupDetailScreen.kt | 447 ++ .../profile/presentation/FavoritesScreen.kt | 679 +++ .../profile/presentation/ProfileScreen.kt | 699 +++ .../profile/presentation/ProfileViewModel.kt | 90 + .../presentation/ShippingAddressesScreen.kt | 486 ++ .../ShippingAddressesViewModel.kt | 73 + .../inatrading/navigation/AppNavigation.kt | 589 +++ .../id/iiyh/inatrading/navigation/Screen.kt | 100 + app/src/main/res/drawable/coffee.jpeg | Bin 0 -> 358603 bytes app/src/main/res/drawable/header_new.png | Bin 0 -> 62180 bytes .../res/drawable/ic_launcher_background.xml | 170 + .../res/drawable/ic_launcher_foreground.xml | 30 + app/src/main/res/drawable/ina_logo.png | Bin 0 -> 62180 bytes app/src/main/res/drawable/kerajinan.jpeg | Bin 0 -> 350106 bytes app/src/main/res/drawable/logistic.jpeg | Bin 0 -> 284996 bytes app/src/main/res/drawable/restoran.jpeg | Bin 0 -> 28662 bytes app/src/main/res/drawable/tech.jpeg | Bin 0 -> 295647 bytes app/src/main/res/layout/activity_main.xml | 5 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1618 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 1810 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 3038 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1076 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 1258 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1930 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 2210 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 2430 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 4188 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 3316 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 3824 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 6728 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 4632 bytes .../ic_launcher_foreground.webp | Bin 0 -> 4888 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 9342 bytes app/src/main/res/values-in/plurals.xml | 6 + app/src/main/res/values-in/strings.xml | 529 ++ app/src/main/res/values-night/themes.xml | 7 + app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/font_certs.xml | 19 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/plurals.xml | 6 + app/src/main/res/values/strings.xml | 529 ++ app/src/main/res/values/themes.xml | 9 + app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + app/src/main/res/xml/file_paths.xml | 6 + .../id/iiyh/inatrading/ExampleUnitTest.kt | 17 + build.gradle.kts | 9 + gradle.properties | 16 + gradle/gradle-daemon-jvm.properties | 12 + gradle/libs.versions.toml | 65 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes gradle/wrapper/gradle-wrapper.properties | 9 + gradlew | 251 + gradlew.bat | 94 + settings.gradle.kts | 26 + 152 files changed, 26617 insertions(+) create mode 100644 .gitignore create mode 100644 BRIEF.md create mode 100644 Ina Trading Dev.postman_environment.json create mode 100644 Ina Trading.postman_collection.json create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/google-services.json create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/id/iiyh/inatrading/ExampleInstrumentedTest.kt create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/java/id/iiyh/inatrading/InaApplication.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/MainActivity.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/data/local/SessionManager.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/data/remote/ApiService.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/data/remote/SessionExpiredException.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/data/remote/interceptor/HeaderInterceptor.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/data/remote/model/ApiResponse.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/AuthModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/CartModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/ExploreModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/FavoriteModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/NetworkModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/NewsModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/di/ProductModule.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaBottomNavBar.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaButton.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaCard.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaChip.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaInnerTopAppBar.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaLogo.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTextField.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTopAppBar.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/theme/Color.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/theme/Theme.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/core/ui/theme/Type.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/data/model/RegisterRequest.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/data/repository/AuthRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/domain/repository/AuthRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/ForgotPasswordScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterSuccessScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/cart/data/model/CartModels.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/cart/data/repository/CartRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/cart/domain/CartRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/data/model/LocationItem.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/data/repository/LocationRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/domain/LocationRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreDetailScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreNavViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/favorite/data/model/FavoriteModels.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/favorite/data/repository/FavoriteRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/favorite/domain/FavoriteRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoriteGroupDetailViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoritesViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/info/presentation/AboutScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/info/presentation/HelpCenterScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/info/presentation/PrivacyPolicyScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/info/presentation/TermsConditionsScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/data/model/NewsArticle.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/data/repository/NewsRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/domain/NewsRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsDetailScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsNavViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/data/model/ProductItem.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/data/repository/ProductRepositoryImpl.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/domain/ProductRepository.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductNavViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/BuyerProfileModels.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/RegionModels.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/ShippingAddressModels.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddressFormComponents.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoriteGroupDetailScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoritesScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesScreen.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesViewModel.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/navigation/AppNavigation.kt create mode 100644 app/src/main/java/id/iiyh/inatrading/navigation/Screen.kt create mode 100644 app/src/main/res/drawable/coffee.jpeg create mode 100644 app/src/main/res/drawable/header_new.png create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100755 app/src/main/res/drawable/ina_logo.png create mode 100644 app/src/main/res/drawable/kerajinan.jpeg create mode 100644 app/src/main/res/drawable/logistic.jpeg create mode 100644 app/src/main/res/drawable/restoran.jpeg create mode 100644 app/src/main/res/drawable/tech.jpeg create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-in/plurals.xml create mode 100644 app/src/main/res/values-in/strings.xml create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/font_certs.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/plurals.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/main/res/xml/file_paths.xml create mode 100644 app/src/test/java/id/iiyh/inatrading/ExampleUnitTest.kt create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/gradle-daemon-jvm.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..14b717c --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +*.iml +.gradle +.kotlin +.claude +/local.properties +/.idea +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties +app/release +app/*.jks diff --git a/BRIEF.md b/BRIEF.md new file mode 100644 index 0000000..c47f8fb --- /dev/null +++ b/BRIEF.md @@ -0,0 +1,2 @@ +Aplikasi ini adalah marketplace untuk UMKM di Indonesia. +pada aplikasi ini kita bisa berbelanja produk produk lokal dengan kualitas export. \ No newline at end of file diff --git a/Ina Trading Dev.postman_environment.json b/Ina Trading Dev.postman_environment.json new file mode 100644 index 0000000..15f7105 --- /dev/null +++ b/Ina Trading Dev.postman_environment.json @@ -0,0 +1,52 @@ +{ + "id": "ef991ef2-7bff-4c23-b065-f58854320d2d", + "name": "Ina Trading Dev", + "values": [ + { + "key": "hostname", + "value": "https://be.inatrading.co.id", + "type": "default", + "enabled": true + }, + { + "key": "username", + "value": "admin@admin.com", + "type": "default", + "enabled": true + }, + { + "key": "password", + "value": "admin", + "type": "default", + "enabled": true + }, + { + "key": "channel-id", + "value": "WEB", + "type": "default", + "enabled": true + }, + { + "key": "token", + "value": "", + "type": "any", + "enabled": true + }, + { + "key": "requestTime", + "value": "", + "type": "any", + "enabled": true + }, + { + "key": "refNo", + "value": "", + "type": "any", + "enabled": true + } + ], + "color": null, + "_postman_variable_scope": "environment", + "_postman_exported_at": "2026-04-08T08:43:41.211Z", + "_postman_exported_using": "Postman/12.4.2" +} \ No newline at end of file diff --git a/Ina Trading.postman_collection.json b/Ina Trading.postman_collection.json new file mode 100644 index 0000000..a8cb7f6 --- /dev/null +++ b/Ina Trading.postman_collection.json @@ -0,0 +1,4454 @@ +{ + "info": { + "_postman_id": "22262359-5fc1-4005-af0b-cde0aa74a042", + "name": "Ina Trading", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "103384", + "_collection_link": "https://go.postman.co/collection/103384-22262359-5fc1-4005-af0b-cde0aa74a042?source=collection_link" + }, + "item": [ + { + "name": "Seller", + "item": [ + { + "name": "Register Seller", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"rizki\",\n \"email\": \"rizki@rizki.com\",\n \"mobile\": \"0812345\",\n \"password\": \"password\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/seller/register", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Create Seller", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"PT Contoh Seller\",\n \"address\": \"Jl. Merdeka No. 123\",\n \"country\": \"Indonesia\",\n \"province\": \"Jawa Barat\",\n \"city\": \"Bandung\",\n \"postalCode\": \"40123\",\n \"mobile\": \"+6281234567890\",\n \"bankName\": \"Bank BCA\",\n \"bankAccountNumber\": \"1234567890\",\n \"documents\": [\n {\n \"type\": \"NPWP\",\n \"documentNumber\": \"09.123.456.7-890.000\",\n \"publishedDate\": \"01/10/2024\",\n \"validDate\": \"31/12/2026\",\n \"fileId\": \"0b4e93ee-6c77-4999-876d-734dbfdad6f4.png\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/seller", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller" + ] + } + }, + "response": [] + }, + { + "name": "Update Store", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"imageId\": \"img-123456\",\n \"storeName\": \"Toko Elektronik Nusantara\",\n \"storeImageId\": \"store-img-78910\",\n \"storeBiography\": \"Kami menjual berbagai produk elektronik berkualitas dengan harga terbaik dan pengiriman cepat ke seluruh Indonesia.\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/seller/store", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "store" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Profile", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/profile", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "profile" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Profile Copy", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/promotion", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "promotion" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Buyer", + "item": [ + { + "name": "Register Buyer", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"rizki\",\n \"email\": \"rizki@admin.com\",\n \"mobile\": \"0812346\",\n \"password\": \"password\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/buyer/register", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "buyer", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Update Profile Buyer", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"email\": \"rizki@gmail.com\",\n \"profileDescription\": \"update profile\",\n \"imageId\": \"0b4e93ee-6c77-4999-876d-734dbfdad6f4.png\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/buyer/profile", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "buyer", + "profile" + ] + } + }, + "response": [] + }, + { + "name": "Get Buyer Profile", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/buyer/profile", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "buyer", + "profile" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "File", + "item": [ + { + "name": "Upload File", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "type": "file", + "uuid": "c9ca9c9d-314e-47d0-95d4-9be3b9ca3836", + "src": "/home/rizki-mufrizal/Pictures/login.png" + } + ] + }, + "url": { + "raw": "{{hostname}}/api/v1.0/file/upload", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "file", + "upload" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Authentication", + "item": [ + { + "name": "Login Seller", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "let response = pm.response.json();", + "pm.environment.set('token', \"Bearer \" + response.data.session);" + ], + "type": "text/javascript", + "packages": {}, + "requests": {} + } + } + ], + "request": { + "auth": { + "type": "basic", + "basic": [ + { + "key": "username", + "value": "{{username}}", + "type": "string" + }, + { + "key": "password", + "value": "{{password}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Origin", + "value": "local", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/login", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Login Buyer", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "let response = pm.response.json();", + "pm.environment.set('token', \"Bearer \" + response.data.session);" + ], + "type": "text/javascript", + "packages": {}, + "requests": {} + } + } + ], + "request": { + "auth": { + "type": "basic", + "basic": [ + { + "key": "username", + "value": "{{username}}", + "type": "string" + }, + { + "key": "password", + "value": "{{password}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Origin", + "value": "local", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/buyer/login", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "buyer", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Change Password", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "let response = pm.response.json();", + "pm.environment.set('token', \"Bearer \" + response.data.session);" + ], + "type": "text/javascript", + "packages": {}, + "requests": {} + } + } + ], + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"newPassword\": \"12345\",\n \"oldPassword\": \"admin\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/profile/change-password", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "profile", + "change-password" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Product", + "item": [ + { + "name": "Get Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Product Detail", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/4a8eb77e-56fd-490b-a4d8-d65ef6045fa0", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "4a8eb77e-56fd-490b-a4d8-d65ef6045fa0" + ] + } + }, + "response": [] + }, + { + "name": "Get Product Review", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/review", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "review" + ] + } + }, + "response": [] + }, + { + "name": "Get Product Review Detail", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/review/c9506fe1-0fd4-48b8-a703-f902e3431301", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "review", + "c9506fe1-0fd4-48b8-a703-f902e3431301" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product Draft", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/draft/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "draft", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product Draft Detail", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/draft/product/123456", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "draft", + "product", + "123456" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product International", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/international/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "international", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product Local", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/local/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "local", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product Out Of Stock", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/outofstock/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "outofstock", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Product Reject", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/reject/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "reject", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Total Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/total/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "total", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Sold Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/sold/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "sold", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Refund Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/seller/refund/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "seller", + "refund", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Get Product Promotion", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/promotion", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "promotion" + ] + } + }, + "response": [] + }, + { + "name": "Compare Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/compare/ba70a8e3-2342-4cd3-a7c7-a0f1b58689ab", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "compare", + "ba70a8e3-2342-4cd3-a7c7-a0f1b58689ab" + ] + } + }, + "response": [] + }, + { + "name": "Create Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"subCategory\": {\n \"id\": \"2\"\n },\n \"name\": \"Smartphone XYZ\",\n \"description\": \"Smartphone terbaru dengan fitur lengkap.\",\n \"isPreOrder\": false,\n \"preOrderDay\": null,\n \"isNew\": true,\n \"isEligibleToExport\": true,\n \"productFiles\": [\n \"product-manual.pdf\",\n \"123.pdf\"\n ],\n \"imageId\": \"contoh.jpg\",\n \"state\": \"DRAFT\",\n \"productKeyWords\": [\n \"smartphone\",\n \"Iphone\",\n \"4g\"\n ],\n \"productFeatures\": [\n \"Layar 6.5 inch\",\n \"Baterai 5000mAh\",\n \"Kamera 64MP\"\n ],\n \"productImages\": [\n {\n \"imageId\": \"img1.jpg\",\n \"sequence\": 1\n },\n {\n \"imageId\": \"img2.jpg\",\n \"sequence\": 2\n }\n ],\n \"productModels\": [\n {\n \"name\": \"XYZ - Black 128GB\",\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"isMeasurement\": true,\n \"imageId\": \"model-black.jpg\",\n \"sku\": \"XYZ-BLK-128\",\n \"isConfigurePromotionPrice\": true,\n \"promotionPrice\": 4200000,\n \"promotionCurrency\": \"IDR\",\n \"promotionStartDate\": \"2025-01-01\",\n \"promotionEndDate\": \"2025-01-15\",\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 120\n }\n ],\n \"productMeasurements\": [\n {\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"measurementType\": \"COLOR\",\n \"measurementValue\": \"Black\",\n \"isConfigurePromotionPrice\": false,\n \"promotionPrice\": null,\n \"promotionCurrency\": null,\n \"promotionStartDate\": null,\n \"promotionEndDate\": null,\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 30\n }\n ]\n }\n ]\n }\n ],\n \"productInformations\": [\n {\n \"paramName\": \"Brand\",\n \"paramValue\": \"XYZ Corp\"\n },\n {\n \"paramName\": \"Battery\",\n \"paramValue\": \"5000mAh\"\n }\n ],\n \"categoryInformations\": [\n {\n \"paramName\": \"Electronics Type\",\n \"paramValue\": \"Smartphone\"\n }\n ],\n \"complianceInformation\": {\n \"safetyWarning\": \"Jauhkan dari panas ekstrem\",\n \"countryOfOrigin\": \"China\",\n \"isDangerousGoodRegulation\": false,\n \"fileId\": \"compliance.pdf\"\n },\n \"warrantyInformation\": {\n \"type\": \"Official Warranty\",\n \"duration\": 12,\n \"durationType\": \"MONTH\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product" + ] + } + }, + "response": [] + }, + { + "name": "Submit Review Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/submit-review/ba70a8e3-2342-4cd3-a7c7-a0f1b58689ab", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "submit-review", + "ba70a8e3-2342-4cd3-a7c7-a0f1b58689ab" + ] + } + }, + "response": [] + }, + { + "name": "Accept Create Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/accept/d5053411-6800-4a86-a405-cca719c80950", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "accept", + "d5053411-6800-4a86-a405-cca719c80950" + ] + } + }, + "response": [] + }, + { + "name": "Reject Create Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"reason\": \"tidak sesuai\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product/reject/d6443efe-9787-444b-b98a-f0c070aa54b3", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "reject", + "d6443efe-9787-444b-b98a-f0c070aa54b3" + ] + } + }, + "response": [] + }, + { + "name": "Update Product Draft", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"subCategory\": {\n \"id\": \"2\"\n },\n \"name\": \"Smartphone OK GAES\",\n \"description\": \"Smartphone terbaru dengan fitur lengkap.\",\n \"isPreOrder\": false,\n \"preOrderDay\": null,\n \"isNew\": true,\n \"isEligibleToExport\": true,\n \"productFiles\": [\n \"product-manual.pdf\",\n \"123.pdf\"\n ],\n \"imageId\": \"contoh.jpg\",\n \"state\": \"DRAFT\",\n \"productKeyWords\": [\n \"smartphone\",\n \"Android\",\n \"5g\"\n ],\n \"productFeatures\": [\n \"Layar 6.5 inch\",\n \"Baterai 5000mAh\",\n \"Kamera 64MP\"\n ],\n \"productImages\": [\n {\n \"imageId\": \"img1.jpg\",\n \"sequence\": 1\n },\n {\n \"imageId\": \"img2.jpg\",\n \"sequence\": 2\n }\n ],\n \"productModels\": [\n {\n \"name\": \"XYZ - Black 128GB\",\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"isMeasurement\": true,\n \"imageId\": \"model-black.jpg\",\n \"sku\": \"XYZ-BLK-128\",\n \"isConfigurePromotionPrice\": true,\n \"promotionPrice\": 4200000,\n \"promotionCurrency\": \"IDR\",\n \"promotionStartDate\": \"2025-01-01\",\n \"promotionEndDate\": \"2025-01-15\",\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 120\n }\n ],\n \"productMeasurements\": [\n {\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"measurementType\": \"COLOR\",\n \"measurementValue\": \"Black\",\n \"isConfigurePromotionPrice\": false,\n \"promotionPrice\": null,\n \"promotionCurrency\": null,\n \"promotionStartDate\": null,\n \"promotionEndDate\": null,\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 30\n }\n ]\n }\n ]\n }\n ],\n \"productInformations\": [\n {\n \"paramName\": \"Brand\",\n \"paramValue\": \"XYZ Corp\"\n },\n {\n \"paramName\": \"Battery\",\n \"paramValue\": \"5000mAh\"\n }\n ],\n \"categoryInformations\": [\n {\n \"paramName\": \"Electronics Type\",\n \"paramValue\": \"Smartphone\"\n }\n ],\n \"complianceInformation\": {\n \"safetyWarning\": \"Jauhkan dari panas ekstrem\",\n \"countryOfOrigin\": \"China\",\n \"isDangerousGoodRegulation\": false,\n \"fileId\": \"compliance.pdf\"\n },\n \"warrantyInformation\": {\n \"type\": \"Official Warranty\",\n \"duration\": 12,\n \"durationType\": \"MONTH\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product/draft/78ceff6e-39b9-49ef-8a05-92c30d295aac", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "draft", + "78ceff6e-39b9-49ef-8a05-92c30d295aac" + ] + } + }, + "response": [] + }, + { + "name": "Update Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"subCategory\": {\n \"id\": \"2\"\n },\n \"name\": \"Smartphone OK GAES\",\n \"description\": \"Smartphone terbaru dengan fitur lengkap.\",\n \"isPreOrder\": false,\n \"preOrderDay\": null,\n \"isNew\": true,\n \"isEligibleToExport\": true,\n \"productFiles\": [\n \"product-manual.pdf\",\n \"123.pdf\"\n ],\n \"imageId\": \"contoh.jpg\",\n \"state\": \"DRAFT\",\n \"productKeyWords\": [\n \"smartphone\",\n \"Android\",\n \"5g\"\n ],\n \"productFeatures\": [\n \"Layar 6.5 inch\",\n \"Baterai 5000mAh\",\n \"Kamera 64MP\"\n ],\n \"productImages\": [\n {\n \"imageId\": \"img1.jpg\",\n \"sequence\": 1\n },\n {\n \"imageId\": \"img2.jpg\",\n \"sequence\": 2\n }\n ],\n \"productModels\": [\n {\n \"name\": \"XYZ - Black 128GB\",\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"isMeasurement\": true,\n \"imageId\": \"model-black.jpg\",\n \"sku\": \"XYZ-BLK-128\",\n \"isConfigurePromotionPrice\": true,\n \"promotionPrice\": 4200000,\n \"promotionCurrency\": \"IDR\",\n \"promotionStartDate\": \"2025-01-01\",\n \"promotionEndDate\": \"2025-01-15\",\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 120\n }\n ],\n \"productMeasurements\": [\n {\n \"price\": 4500000,\n \"currency\": \"IDR\",\n \"weight\": 180,\n \"weightType\": \"G\",\n \"length\": 15.2,\n \"width\": 7.4,\n \"height\": 0.8,\n \"dimensionType\": \"CM\",\n \"measurementType\": \"COLOR\",\n \"measurementValue\": \"Black\",\n \"isConfigurePromotionPrice\": false,\n \"promotionPrice\": null,\n \"promotionCurrency\": null,\n \"promotionStartDate\": null,\n \"promotionEndDate\": null,\n \"packagingWeight\": 250,\n \"packagingWeightType\": \"G\",\n \"packagingLength\": 20.0,\n \"packagingWidth\": 10.0,\n \"packagingHeight\": 5.0,\n \"packagingDimensionType\": \"CM\",\n \"warehouses\": [\n {\n \"id\": \"1a341e2a-006d-4b66-8a28-72c05a081384\",\n \"stock\": 30\n }\n ]\n }\n ]\n }\n ],\n \"productInformations\": [\n {\n \"paramName\": \"Brand\",\n \"paramValue\": \"XYZ Corp\"\n },\n {\n \"paramName\": \"Battery\",\n \"paramValue\": \"5000mAh\"\n }\n ],\n \"categoryInformations\": [\n {\n \"paramName\": \"Electronics Type\",\n \"paramValue\": \"Smartphone\"\n }\n ],\n \"complianceInformation\": {\n \"safetyWarning\": \"Jauhkan dari panas ekstrem\",\n \"countryOfOrigin\": \"China\",\n \"isDangerousGoodRegulation\": false,\n \"fileId\": \"compliance.pdf\"\n },\n \"warrantyInformation\": {\n \"type\": \"Official Warranty\",\n \"duration\": 12,\n \"durationType\": \"MONTH\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product/c844b5b1-b995-4fde-a71c-22aa53952396", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "c844b5b1-b995-4fde-a71c-22aa53952396" + ] + } + }, + "response": [] + }, + { + "name": "Accept Update Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/accept/78ceff6e-39b9-49ef-8a05-92c30d295aac", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "accept", + "78ceff6e-39b9-49ef-8a05-92c30d295aac" + ] + } + }, + "response": [] + }, + { + "name": "Reject Update Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"reason\": \"tidak sesuai\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product/reject/78ceff6e-39b9-49ef-8a05-92c30d295aac", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "reject", + "78ceff6e-39b9-49ef-8a05-92c30d295aac" + ] + } + }, + "response": [] + }, + { + "name": "Delete Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/f5868bd1-9e9c-4501-8af0-a711a48f909c", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "f5868bd1-9e9c-4501-8af0-a711a48f909c" + ] + } + }, + "response": [] + }, + { + "name": "Delete Product Draft", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/product/draft/9fba50de-1043-4c17-a659-ee81595033d6", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "draft", + "9fba50de-1043-4c17-a659-ee81595033d6" + ] + } + }, + "response": [] + }, + { + "name": "Update Stock Or Price", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"productModelId\": \"PM123\",\n \"productMeasurementId\": \"MEAS456\",\n \"price\": 15000.50,\n \"warehouseId\": \"WH789\",\n \"stock\": 100\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/product/stock-price", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "product", + "stock-price" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Favorite", + "item": [ + { + "name": "Get Favorite", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/favorites", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorites" + ] + } + }, + "response": [] + }, + { + "name": "Get Favorite Item", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/favorite/item/d0208cd1-ea2e-418a-bd9a-7f6553ee3272", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorite", + "item", + "d0208cd1-ea2e-418a-bd9a-7f6553ee3272" + ] + } + }, + "response": [] + }, + { + "name": "Create Favorite", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"favorite saya\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/favorite", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorite" + ] + } + }, + "response": [] + }, + { + "name": "Update Favorite", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"favorite aja\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/favorite/ce530b30-7040-4c77-b561-5438a69c9d5c", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorite", + "ce530b30-7040-4c77-b561-5438a69c9d5c" + ] + } + }, + "response": [] + }, + { + "name": "Add To Favorite", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"favoriteId\": \"\",\n \"productId\": \"895a8d23-869f-41f5-af9b-f0e59794f111\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/favorite/add", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorite", + "add" + ] + } + }, + "response": [] + }, + { + "name": "Delete Favorite", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/favorite/product/f97c388b-a0a2-4641-8e98-974d39351071", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "favorite", + "product", + "f97c388b-a0a2-4641-8e98-974d39351071" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Address", + "item": [ + { + "name": "Get Address", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/addresses", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "addresses" + ] + } + }, + "response": [] + }, + { + "name": "Create Address", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"label\": \"rumah\",\n \"recipient\": \"rizki\",\n \"mobile\": \"0811\",\n \"address\": \"jln depok\",\n \"country\": \"indonesia\",\n \"province\": \"jawa barat\",\n \"city\": \"depok2\",\n \"postalCode\": \"12345\",\n \"isPrimary\": true,\n \"latitude\": 3.5952,\n \"longitude\": 98.6722\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/addresses", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "addresses" + ] + } + }, + "response": [] + }, + { + "name": "Update Address", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"label\": \"rumah\",\n \"recipient\": \"rizki\",\n \"mobile\": \"0811\",\n \"address\": \"jln depok\",\n \"country\": \"indonesia\",\n \"province\": \"jawa barat\",\n \"city\": \"depok2\",\n \"postalCode\": \"12345\",\n \"isPrimary\": true,\n \"latitude\": 3.5952,\n \"longitude\": 98.6722\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/addresses/92a53086-ab77-4b6d-ae90-e92f2f00133e", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "addresses", + "92a53086-ab77-4b6d-ae90-e92f2f00133e" + ] + } + }, + "response": [] + }, + { + "name": "Delete Address", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/addresses/4e0e0a33-5dc2-4bad-9b17-92ba74bc80da", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "addresses", + "4e0e0a33-5dc2-4bad-9b17-92ba74bc80da" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Group", + "item": [ + { + "name": "Get Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/group", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group" + ] + } + }, + "response": [] + }, + { + "name": "Create Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"group 1\",\n \"description\": \"ini group\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/group", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group" + ] + } + }, + "response": [] + }, + { + "name": "Update Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"group 2\",\n \"description\": \"ini group\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/group/92a53086-ab77-4b6d-ae90-e92f2f00133e", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group", + "92a53086-ab77-4b6d-ae90-e92f2f00133e" + ] + } + }, + "response": [] + }, + { + "name": "Delete Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/group/4e0e0a33-5dc2-4bad-9b17-92ba74bc80da", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group", + "4e0e0a33-5dc2-4bad-9b17-92ba74bc80da" + ] + } + }, + "response": [] + }, + { + "name": "Add Product To Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"groupId\": \"4e0e0a33-5dc2-4bad-9b17-92ba74bc80da\",\n \"productId\": \"d119243f-cad0-4f17-b330-b699e1139efa\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/group/assign", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group", + "assign" + ] + } + }, + "response": [] + }, + { + "name": "Remove Product From Group", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"groupId\": \"4e0e0a33-5dc2-4bad-9b17-92ba74bc80da\",\n \"productId\": \"d119243f-cad0-4f17-b330-b699e1139efa\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/group/assign", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "group", + "assign" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Warehouse", + "item": [ + { + "name": "Get Warehouse", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/warehouses", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "warehouses" + ] + } + }, + "response": [] + }, + { + "name": "Create Warehouse", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cabang banda aceh\", \n \"address\": \"Jl. Teuku Umar No. 123\",\n \"country\": \"Indonesia\",\n \"province\": \"Aceh\",\n \"city\": \"Banda Aceh\",\n \"postalCode\": \"23111\",\n \"latitude\": 5.548290,\n \"longitude\": 95.323753,\n \"warehouseType\": \"INA\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/warehouses", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "warehouses" + ] + } + }, + "response": [] + }, + { + "name": "Update Warehouse", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"cabang banda aceh\",\n \"address\": \"Jl. Teuku Umar No. 123\",\n \"country\": \"Indonesia\",\n \"province\": \"Aceh\",\n \"city\": \"Banda Aceh\",\n \"postalCode\": \"23111\",\n \"latitude\": 5.548290,\n \"longitude\": 95.323753,\n \"warehouseType\": \"OTHER\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/warehouses/92a53086-ab77-4b6d-ae90-e92f2f00133e", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "warehouses", + "92a53086-ab77-4b6d-ae90-e92f2f00133e" + ] + } + }, + "response": [] + }, + { + "name": "Delete Warehouse", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/warehouses/4e0e0a33-5dc2-4bad-9b17-92ba74bc80da", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "warehouses", + "4e0e0a33-5dc2-4bad-9b17-92ba74bc80da" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Cart", + "item": [ + { + "name": "Get Cart", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/carts", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "carts" + ] + } + }, + "response": [] + }, + { + "name": "Create Cart", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"sellerId\": \"fc711dae-a98f-4782-9489-d5c0de3f3ca5\",\n \"quantity\": 1,\n \"productModelId\": \"5efebc36-07ca-47dd-b37b-590f77d76ee7\",\n \"productMeasurementId\": \"\",\n \"warehouseId\": \"12345\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/cart", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "cart" + ] + } + }, + "response": [] + }, + { + "name": "Update Cart", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"cartItemId\": \"176370af-1f97-4f03-900e-20c515b85d02\",\n \"quantity\": 3\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/cart", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "cart" + ] + } + }, + "response": [] + }, + { + "name": "Delete Cart", + "request": { + "auth": { + "type": "noauth" + }, + "method": "DELETE", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/cart/1234565", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "cart", + "1234565" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Category", + "item": [ + { + "name": "Get Categories", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/categories", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Add Categories", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"contoh category\",\n \"description\": \"contoh aja\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/categories", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Get Sub Categories", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/sub/7c8ff474-d059-42c3-b667-affcc32c7e15/categories", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "sub", + "7c8ff474-d059-42c3-b667-affcc32c7e15", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Add Sub Categories", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"contoh sub category\",\n \"description\": \"contoh sub aja\",\n \"subCategoryAttributes\": [\n \"abc\",\n \"cde\",\n \"xyz\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/sub/1/categories", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "sub", + "1", + "categories" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Province", + "item": [ + { + "name": "Get Province", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/provinces", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "provinces" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "City", + "item": [ + { + "name": "Get City", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/cities?provinceId=12345", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "cities" + ], + "query": [ + { + "key": "provinceId", + "value": "12345" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Region", + "item": [ + { + "name": "Get Region", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/regions?cityId=1234", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "regions" + ], + "query": [ + { + "key": "cityId", + "value": "1234" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Sub Region", + "item": [ + { + "name": "Get Sub Region", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/subregions?regionId=1234", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "subregions" + ], + "query": [ + { + "key": "regionId", + "value": "1234" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Location", + "item": [ + { + "name": "Get Location", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/locations", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "locations" + ] + } + }, + "response": [] + }, + { + "name": "Create Location", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Pantai Ujong Blang\",\n \"description\": \"Pantai wisata populer di Aceh dengan pemandangan matahari terbenam\",\n \"longitude\": 97.1425,\n \"latitude\": 5.1801,\n \"image1\": \"pantai-ujong-blang-1.jpg\",\n \"image2\": \"pantai-ujong-blang-2.jpg\",\n \"image3\": \"pantai-ujong-blang-3.jpg\",\n \"image4\": \"pantai-ujong-blang-4.jpg\",\n \"image5\": \"pantai-ujong-blang-5.jpg\",\n \"type\": \"WISATA\",\n \"address\": \"Ujong Blang, Banda Sakti\",\n \"country\": \"Indonesia\",\n \"province\": \"Aceh\",\n \"city\": \"Lhokseumawe\",\n \"contact\": \"081234567890\",\n \"userInput\": \"rizki.mufrizal\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/locations", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "locations" + ] + } + }, + "response": [] + }, + { + "name": "Update Location", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Pantai Ujong Blang\",\n \"description\": \"Pantai wisata populer di Aceh dengan pemandangan matahari terbenam\",\n \"longitude\": 97.1425,\n \"latitude\": 5.1801,\n \"image1\": \"pantai-ujong-blang-1.jpg\",\n \"image2\": \"pantai-ujong-blang-2.jpg\",\n \"image3\": \"pantai-ujong-blang-3.jpg\",\n \"image4\": \"pantai-ujong-blang-4.jpg\",\n \"image5\": \"pantai-ujong-blang-5.jpg\",\n \"type\": \"WISATA\",\n \"address\": \"Ujong Blang, Banda Sakti\",\n \"country\": \"Indonesia\",\n \"province\": \"Aceh\",\n \"city\": \"Lhokseumawe\",\n \"contact\": \"081234567890\",\n \"userInput\": \"rizki.mufrizal\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/addresses/92a53086-ab77-4b6d-ae90-e92f2f00133e", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "addresses", + "92a53086-ab77-4b6d-ae90-e92f2f00133e" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "News Article", + "item": [ + { + "name": "Get News Articles", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/newsarticles", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "newsarticles" + ] + } + }, + "response": [] + }, + { + "name": "Create News Articles", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"title\": \"Pembangunan Infrastruktur Aceh Meningkat\",\n \"reporter\": \"Rizki Mufrizal\",\n \"subtitle\": \"Proyek strategis nasional mulai berdampak pada ekonomi daerah\",\n \"category\": \"EKONOMI\",\n \"summary\": \"Pemerintah Aceh mencatat peningkatan signifikan pada sektor infrastruktur yang mendorong pertumbuhan ekonomi lokal.\",\n \"section1\": \"Pemerintah Aceh terus menggenjot pembangunan infrastruktur di berbagai wilayah.\",\n \"section2\": \"Beberapa proyek strategis nasional telah memasuki tahap akhir dan mulai digunakan masyarakat.\",\n \"section3\": \"Dampak positif mulai terlihat pada sektor ekonomi dan penyerapan tenaga kerja.\",\n \"image1\": \"infrastruktur-aceh-1.jpg\",\n \"image2\": \"infrastruktur-aceh-2.jpg\",\n \"image3\": \"infrastruktur-aceh-3.jpg\",\n \"image4\": \"infrastruktur-aceh-4.jpg\",\n \"image5\": \"infrastruktur-aceh-5.jpg\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/newsarticles", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "newsarticles" + ] + } + }, + "response": [] + }, + { + "name": "Update News Articles", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"title\": \"Pembangunan Infrastruktur Aceh Meningkat\",\n \"reporter\": \"Rizki Mufrizal\",\n \"subtitle\": \"Proyek strategis nasional mulai berdampak pada ekonomi daerah\",\n \"category\": \"EKONOMI\",\n \"summary\": \"Pemerintah Aceh mencatat peningkatan signifikan pada sektor infrastruktur yang mendorong pertumbuhan ekonomi lokal.\",\n \"section1\": \"Pemerintah Aceh terus menggenjot pembangunan infrastruktur di berbagai wilayah.\",\n \"section2\": \"Beberapa proyek strategis nasional telah memasuki tahap akhir dan mulai digunakan masyarakat.\",\n \"section3\": \"Dampak positif mulai terlihat pada sektor ekonomi dan penyerapan tenaga kerja.\",\n \"image1\": \"infrastruktur-aceh-1.jpg\",\n \"image2\": \"infrastruktur-aceh-2.jpg\",\n \"image3\": \"infrastruktur-aceh-3.jpg\",\n \"image4\": \"infrastruktur-aceh-4.jpg\",\n \"image5\": \"infrastruktur-aceh-5.jpg\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{hostname}}/api/v1.0/newsarticles/92a53086-ab77-4b6d-ae90-e92f2f00133e", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "newsarticles", + "92a53086-ab77-4b6d-ae90-e92f2f00133e" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Tmp", + "item": [ + { + "name": "Location", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/test/csv/location", + "host": [ + "{{hostname}}" + ], + "path": [ + "test", + "csv", + "location" + ] + } + }, + "response": [] + }, + { + "name": "New Location", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/test/csv/newlocation", + "host": [ + "{{hostname}}" + ], + "path": [ + "test", + "csv", + "newlocation" + ] + } + }, + "response": [] + }, + { + "name": "News", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/test/csv/news", + "host": [ + "{{hostname}}" + ], + "path": [ + "test", + "csv", + "news" + ] + } + }, + "response": [] + }, + { + "name": "Product", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/test/csv/products", + "host": [ + "{{hostname}}" + ], + "path": [ + "test", + "csv", + "products" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Order", + "item": [ + { + "name": "Get Seller Order Earning", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/order/seller/earning", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "order", + "seller", + "earning" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Order Analytics", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/order/seller/analytics", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "order", + "seller", + "analytics" + ] + } + }, + "response": [] + }, + { + "name": "Get Seller Order Top 5", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + }, + { + "key": "Tenant-Id", + "value": "{{tenantId}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/order/seller/top5", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "order", + "seller", + "top5" + ] + } + }, + "response": [] + }, + { + "name": "Cancel Order", + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Request-Time", + "value": "2023-07-08 10:00:00", + "type": "text" + }, + { + "key": "Channel-Id", + "value": "{{channel-id}}", + "type": "text" + }, + { + "key": "Reference-Number", + "value": "REF20230708100000001", + "type": "text" + }, + { + "key": "Authorization", + "value": "{{token}}", + "type": "text" + } + ], + "url": { + "raw": "{{hostname}}/api/v1.0/order/cancel/120486485", + "host": [ + "{{hostname}}" + ], + "path": [ + "api", + "v1.0", + "order", + "cancel", + "120486485" + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..338beae --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,170 @@ +import java.util.Properties + +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.hilt.android) + alias(libs.plugins.ksp) + alias(libs.plugins.google.services) +} + +val localProperties = Properties().apply { + val localPropertiesFile = rootProject.file("local.properties") + if (localPropertiesFile.exists()) { + localPropertiesFile.inputStream().use(::load) + } +} + +val releaseStoreFile = localProperties.getProperty("INATRADING_STORE_FILE") +val releaseStorePassword = localProperties.getProperty("INATRADING_STORE_PASSWORD") +val releaseKeyAlias = localProperties.getProperty("INATRADING_KEY_ALIAS") +val releaseKeyPassword = localProperties.getProperty("INATRADING_KEY_PASSWORD") +val hasReleaseSigning = + !releaseStoreFile.isNullOrBlank() && + !releaseStorePassword.isNullOrBlank() && + !releaseKeyAlias.isNullOrBlank() && + !releaseKeyPassword.isNullOrBlank() + +android { + namespace = "id.iiyh.inatrading" + compileSdk { + version = release(36) { + minorApiLevel = 1 + } + } + + defaultConfig { + applicationId = "id.iiyh.inatrading" + minSdk = 24 + targetSdk = 36 + versionCode = 11 + versionName = "1.0.7" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + + buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") + } + + buildTypes { + release { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") + } + debug { + buildConfigField("String", "BASE_URL", "\"https://be.inatrading.co.id/\"") + } + } + + signingConfigs { + if (hasReleaseSigning) { + create("release") { + keyAlias = releaseKeyAlias + keyPassword = releaseKeyPassword + storeFile = file(releaseStoreFile!!) + storePassword = releaseStorePassword + } + } + } + + buildTypes { + debug { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + if (hasReleaseSigning) { + signingConfig = signingConfigs.getByName("release") + } + isDebuggable = true + buildConfigField("String", "BASE_URL", "\"https://be.inatrading.co.id/\"") + } + + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + if (hasReleaseSigning) { + signingConfig = signingConfigs.getByName("release") + } + isDebuggable = false + buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + buildFeatures { + compose = true + buildConfig = true + } +} + +kotlin { + jvmToolchain(11) +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.activity.compose) + + // Compose BOM + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + implementation(libs.androidx.material.icons.extended) + + // Navigation + implementation(libs.androidx.navigation.compose) + implementation(libs.androidx.lifecycle.viewmodel.compose) + implementation(libs.androidx.lifecycle.runtime.compose) + + // Hilt + implementation(libs.hilt.android) + ksp(libs.hilt.android.compiler) + implementation(libs.hilt.navigation.compose) + + // Retrofit + OkHttp + implementation(libs.retrofit) + implementation(libs.retrofit.converter.gson) + implementation(libs.okhttp) + implementation(libs.okhttp.logging.interceptor) + + // Google Fonts + implementation(libs.androidx.ui.text.google.fonts) + + // Coil (image loading) + implementation(libs.coil.compose) + + // DataStore (token storage) + implementation(libs.datastore.preferences) + + // Gson + implementation(libs.gson) + + // Firebase + implementation(platform(libs.firebase.bom)) + implementation(libs.firebase.messaging) + implementation(libs.firebase.analytics) + + // Tests + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.ui.test.junit4) + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) +} diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..aad3371 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "448330088694", + "project_id": "iptek-ina-trading", + "storage_bucket": "iptek-ina-trading.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:448330088694:android:5ffeaf56fc87a438ecacd7", + "android_client_info": { + "package_name": "id.iiyh.inatrading" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyBVVTSP77CbfInabwhGzNt5kcYS-hqfHyk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/id/iiyh/inatrading/ExampleInstrumentedTest.kt b/app/src/androidTest/java/id/iiyh/inatrading/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..c934f2e --- /dev/null +++ b/app/src/androidTest/java/id/iiyh/inatrading/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package id.iiyh.inatrading + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("id.iiyh.inatrading", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c2d006c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba74d28b49a26541b976375f01f4494d42622b4 GIT binary patch literal 27255 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 ZHDIz!4UdSN^Spi!dRoSsHR?{0{|_tWV`%^Y literal 0 HcmV?d00001 diff --git a/app/src/main/java/id/iiyh/inatrading/InaApplication.kt b/app/src/main/java/id/iiyh/inatrading/InaApplication.kt new file mode 100644 index 0000000..27ae586 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/InaApplication.kt @@ -0,0 +1,7 @@ +package id.iiyh.inatrading + +import android.app.Application +import dagger.hilt.android.HiltAndroidApp + +@HiltAndroidApp +class InaApplication : Application() diff --git a/app/src/main/java/id/iiyh/inatrading/MainActivity.kt b/app/src/main/java/id/iiyh/inatrading/MainActivity.kt new file mode 100644 index 0000000..4465ff2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/MainActivity.kt @@ -0,0 +1,155 @@ +package id.iiyh.inatrading + +import android.util.Base64 +import android.nfc.NdefRecord +import android.nfc.NfcAdapter +import android.nfc.Tag +import android.nfc.tech.Ndef +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import dagger.hilt.android.AndroidEntryPoint +import id.iiyh.inatrading.core.ui.theme.InaTradingTheme +import id.iiyh.inatrading.navigation.AppNavigation +import java.nio.charset.Charset +import javax.crypto.Cipher +import javax.crypto.SecretKeyFactory +import javax.crypto.spec.IvParameterSpec +import javax.crypto.spec.PBEKeySpec +import javax.crypto.spec.SecretKeySpec + +@AndroidEntryPoint +class MainActivity : ComponentActivity() { + private var nfcAdapter: NfcAdapter? = null + private var onRfidValueDetected: ((String) -> Unit)? = null + private var onRfidError: ((String) -> Unit)? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + nfcAdapter = NfcAdapter.getDefaultAdapter(this) + setContent { + InaTradingTheme { + AppNavigation() + } + } + } + + fun startRfidScan( + onValueDetected: (String) -> Unit, + onError: (String) -> Unit, + ): Boolean { + val adapter = nfcAdapter ?: return false + if (!adapter.isEnabled) { + onError(getString(R.string.rfid_nfc_disabled)) + return true + } + + onRfidValueDetected = onValueDetected + onRfidError = onError + adapter.enableReaderMode( + this, + { tag -> + val matchedValue = extractInaTradingValue(tag) + runOnUiThread { + if (matchedValue != null) { + val callback = onRfidValueDetected + stopRfidScan() + callback?.invoke(matchedValue) + } else { + onRfidError?.invoke(getString(R.string.rfid_invalid_tag)) + } + } + }, + NfcAdapter.FLAG_READER_NFC_A or + NfcAdapter.FLAG_READER_NFC_B or + NfcAdapter.FLAG_READER_NFC_F or + NfcAdapter.FLAG_READER_NFC_V or + NfcAdapter.FLAG_READER_NFC_BARCODE, + null, + ) + return true + } + + fun stopRfidScan() { + nfcAdapter?.disableReaderMode(this) + onRfidValueDetected = null + onRfidError = null + } + + override fun onPause() { + super.onPause() + stopRfidScan() + } + + private fun extractInaTradingValue(tag: Tag): String? { + val payloads = buildList { + val ndef = Ndef.get(tag) + if (ndef != null) { + runCatching { + ndef.connect() + ndef.cachedNdefMessage?.records + ?.mapNotNull(::recordToText) + ?.let(::addAll) + ndef.ndefMessage?.records + ?.mapNotNull(::recordToText) + ?.let(::addAll) + } + runCatching { if (ndef.isConnected) ndef.close() } + } + } + + val rawValue = payloads.firstOrNull { it.startsWith(RFID_PREFIX) } ?: return null + val encryptedPart = rawValue.substringAfter(':', missingDelimiterValue = "").trim() + if (encryptedPart.isBlank()) return null + return decryptInaTradingValue(encryptedPart).takeIf { it.isNotBlank() } + } + + private fun recordToText(record: NdefRecord): String? { + return when { + record.tnf == NdefRecord.TNF_WELL_KNOWN && + record.type.contentEquals(NdefRecord.RTD_TEXT) -> parseTextRecord(record.payload) + else -> record.payload.toString(Charsets.UTF_8).trim().takeIf { it.isNotBlank() } + } + } + + private fun parseTextRecord(payload: ByteArray): String? { + if (payload.isEmpty()) return null + val status = payload[0].toInt() + val isUtf16 = status and 0x80 != 0 + val languageCodeLength = status and 0x3F + if (payload.size <= languageCodeLength + 1) return null + val textBytes = payload.copyOfRange(languageCodeLength + 1, payload.size) + val charset = if (isUtf16) Charset.forName("UTF-16") else Charsets.UTF_8 + return textBytes.toString(charset).trim() + } + + private fun decryptInaTradingValue(cipherText: String): String { + return runCatching { + val keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256") + val keySpec = PBEKeySpec( + AES_SECRET_KEY.toCharArray(), + AES_SALT.toByteArray(Charsets.UTF_8), + 65536, + 256, + ) + val secretKey = SecretKeySpec( + keyFactory.generateSecret(keySpec).encoded, + "AES", + ) + val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") + val ivSpec = IvParameterSpec(ByteArray(16)) + cipher.init(Cipher.DECRYPT_MODE, secretKey, ivSpec) + val decodedBytes = Base64.decode(cipherText, Base64.NO_WRAP) + val decryptedBytes = cipher.doFinal(decodedBytes) + String(decryptedBytes, Charsets.UTF_8) + }.getOrDefault("") + } + + private companion object { + const val RFID_PREFIX = "inaTrading:" + const val AES_SECRET_KEY = "inaTrading" + const val AES_SALT = "this is hard!!!!" + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/data/local/SessionManager.kt b/app/src/main/java/id/iiyh/inatrading/core/data/local/SessionManager.kt new file mode 100644 index 0000000..a2845eb --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/data/local/SessionManager.kt @@ -0,0 +1,72 @@ +package id.iiyh.inatrading.core.data.local + +import android.content.Context +import androidx.datastore.core.DataStore +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.stringPreferencesKey +import androidx.datastore.preferences.preferencesDataStore +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.map +import javax.inject.Inject +import javax.inject.Singleton + +private val Context.dataStore: DataStore by preferencesDataStore(name = "ina_session") + +@Singleton +class SessionManager @Inject constructor( + @ApplicationContext private val context: Context, +) { + companion object { + private val TOKEN_KEY = stringPreferencesKey("auth_token") + private val EMAIL_KEY = stringPreferencesKey("user_email") + private val NAME_KEY = stringPreferencesKey("user_name") + private val AVATAR_URL_KEY = stringPreferencesKey("user_avatar_url") + private val USER_TYPE_KEY = stringPreferencesKey("user_type") + } + + val token: Flow = context.dataStore.data.map { it[TOKEN_KEY] } + val email: Flow = context.dataStore.data.map { it[EMAIL_KEY] } + val name: Flow = context.dataStore.data.map { it[NAME_KEY] } + val avatarUrl: Flow = context.dataStore.data.map { it[AVATAR_URL_KEY] } + val userType: Flow = context.dataStore.data.map { it[USER_TYPE_KEY] } + + suspend fun saveSession( + token: String, + email: String, + name: String, + userType: String, + avatarUrl: String = "", + ) { + context.dataStore.edit { prefs -> + prefs[TOKEN_KEY] = token + prefs[EMAIL_KEY] = email + prefs[NAME_KEY] = name + prefs[AVATAR_URL_KEY] = avatarUrl + prefs[USER_TYPE_KEY] = userType + } + } + + suspend fun saveToken(token: String) { + context.dataStore.edit { it[TOKEN_KEY] = token } + } + + suspend fun updateProfile(name: String, email: String, avatarUrl: String? = null) { + context.dataStore.edit { prefs -> + prefs[NAME_KEY] = name + prefs[EMAIL_KEY] = email + avatarUrl?.let { prefs[AVATAR_URL_KEY] = it } + } + } + + suspend fun clearToken() { + context.dataStore.edit { prefs -> + prefs.remove(TOKEN_KEY) + prefs.remove(EMAIL_KEY) + prefs.remove(NAME_KEY) + prefs.remove(AVATAR_URL_KEY) + prefs.remove(USER_TYPE_KEY) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/data/remote/ApiService.kt b/app/src/main/java/id/iiyh/inatrading/core/data/remote/ApiService.kt new file mode 100644 index 0000000..72eed97 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/data/remote/ApiService.kt @@ -0,0 +1,161 @@ +package id.iiyh.inatrading.core.data.remote + +import id.iiyh.inatrading.core.data.remote.model.ApiResponse +import id.iiyh.inatrading.core.data.remote.model.LoginData +import id.iiyh.inatrading.feature.auth.data.model.RegisterRequest +import id.iiyh.inatrading.feature.cart.data.model.CartCreateRequest +import id.iiyh.inatrading.feature.cart.data.model.CartListResponse +import id.iiyh.inatrading.feature.cart.data.model.CartUpdateRequest +import id.iiyh.inatrading.feature.favorite.data.model.FavoriteCreateRequest +import id.iiyh.inatrading.feature.favorite.data.model.FavoriteItemsResponse +import id.iiyh.inatrading.feature.favorite.data.model.FavoriteListResponse +import id.iiyh.inatrading.feature.favorite.data.model.AddToFavoriteRequest +import id.iiyh.inatrading.feature.explore.data.model.LocationListResponse +import id.iiyh.inatrading.feature.news.data.model.NewsListResponse +import id.iiyh.inatrading.feature.profile.data.model.BuyerProfile +import id.iiyh.inatrading.feature.profile.data.model.CityListResponse +import id.iiyh.inatrading.feature.profile.data.model.ChangePasswordRequest +import id.iiyh.inatrading.feature.profile.data.model.CreateShippingAddressRequest +import id.iiyh.inatrading.feature.profile.data.model.FileUploadData +import id.iiyh.inatrading.feature.profile.data.model.ProvinceListResponse +import id.iiyh.inatrading.feature.profile.data.model.ShippingAddressListResponse +import id.iiyh.inatrading.feature.profile.data.model.UpdateBuyerProfileRequest +import id.iiyh.inatrading.feature.product.data.model.ProductDetailResponse +import id.iiyh.inatrading.feature.product.data.model.ProductListResponse +import okhttp3.MultipartBody +import retrofit2.http.Body +import retrofit2.http.DELETE +import retrofit2.http.GET +import retrofit2.http.Header +import retrofit2.http.Multipart +import retrofit2.http.POST +import retrofit2.http.Path +import retrofit2.http.Part +import retrofit2.http.Query +import retrofit2.http.PUT + +interface ApiService { + + @POST("api/v1.0/buyer/login") + suspend fun loginBuyer( + @Header("Authorization") basicAuth: String, + ): ApiResponse + + @POST("api/v1.0/buyer/register") + suspend fun registerBuyer( + @Body request: RegisterRequest, + ): ApiResponse + + @GET("api/v1.0/seller/profile") + suspend fun getBuyerProfile(): ApiResponse + + @GET("api/v1.0/addresses") + suspend fun getAddresses(): ShippingAddressListResponse + + @GET("api/v1.0/provinces") + suspend fun getProvinces( + @Query("page") page: Int, + @Query("limit") limit: Int, + ): ProvinceListResponse + + @GET("api/v1.0/cities") + suspend fun getCities( + @Query("provinceId") provinceId: String, + @Query("page") page: Int, + @Query("limit") limit: Int, + ): CityListResponse + + @POST("api/v1.0/addresses") + suspend fun createAddress( + @Body request: CreateShippingAddressRequest, + ): ApiResponse + + @PUT("api/v1.0/addresses/{addressId}") + suspend fun updateAddress( + @Path("addressId") addressId: String, + @Body request: CreateShippingAddressRequest, + ): ApiResponse + + @DELETE("api/v1.0/addresses/{addressId}") + suspend fun deleteAddress( + @Path("addressId") addressId: String, + ): ApiResponse + + @PUT("api/v1.0/seller/profile") + suspend fun updateBuyerProfile( + @Body request: UpdateBuyerProfileRequest, + ): ApiResponse + + @PUT("api/v1.0/profile/change-password") + suspend fun changePassword( + @Body request: ChangePasswordRequest, + ): ApiResponse + + @Multipart + @POST("api/v1.0/file/upload") + suspend fun uploadFile( + @Part file: MultipartBody.Part, + ): ApiResponse + + @GET("api/v1.0/newsarticles") + suspend fun getNewsArticles(): NewsListResponse + + @GET("api/v1.0/product") + suspend fun getProducts( + @Query("page") page: Int, + @Query("limit") limit: Int, + ): ProductListResponse + + @GET("api/v1.0/locations") + suspend fun getLocations( + @Query("page") page: Int, + @Query("limit") limit: Int, + ): LocationListResponse + + @GET("api/v1.0/product/{productId}") + suspend fun getProductDetail( + @Path("productId") productId: String, + ): ProductDetailResponse + + @GET("api/v1.0/favorites") + suspend fun getFavorites(): FavoriteListResponse + + @GET("api/v1.0/carts") + suspend fun getCarts(): CartListResponse + + @POST("api/v1.0/cart") + suspend fun createCart( + @Body request: CartCreateRequest, + ): ApiResponse + + @PUT("api/v1.0/cart") + suspend fun updateCart( + @Body request: CartUpdateRequest, + ): ApiResponse + + @GET("api/v1.0/favorite/item/{favoriteId}") + suspend fun getFavoriteItems( + @Path("favoriteId") favoriteId: String, + ): FavoriteItemsResponse + + @POST("api/v1.0/favorite") + suspend fun createFavorite( + @Body request: FavoriteCreateRequest, + ): ApiResponse + + @PUT("api/v1.0/favorite/{favoriteId}") + suspend fun updateFavorite( + @Path("favoriteId") favoriteId: String, + @Body request: FavoriteCreateRequest, + ): ApiResponse + + @DELETE("api/v1.0/favorite/product/{productId}") + suspend fun deleteFavoriteItem( + @Path("productId") productId: String, + ): ApiResponse + + @POST("api/v1.0/favorite/add") + suspend fun addToFavorite( + @Body request: AddToFavoriteRequest, + ): ApiResponse +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/data/remote/SessionExpiredException.kt b/app/src/main/java/id/iiyh/inatrading/core/data/remote/SessionExpiredException.kt new file mode 100644 index 0000000..32332b7 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/data/remote/SessionExpiredException.kt @@ -0,0 +1,3 @@ +package id.iiyh.inatrading.core.data.remote + +class SessionExpiredException : Exception("Session expired") diff --git a/app/src/main/java/id/iiyh/inatrading/core/data/remote/interceptor/HeaderInterceptor.kt b/app/src/main/java/id/iiyh/inatrading/core/data/remote/interceptor/HeaderInterceptor.kt new file mode 100644 index 0000000..562b9a5 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/data/remote/interceptor/HeaderInterceptor.kt @@ -0,0 +1,36 @@ +package id.iiyh.inatrading.core.data.remote.interceptor + +import id.iiyh.inatrading.core.data.local.SessionManager +import kotlinx.coroutines.flow.firstOrNull +import kotlinx.coroutines.runBlocking +import okhttp3.Interceptor +import okhttp3.Response +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import java.util.UUID +import javax.inject.Inject + +class HeaderInterceptor @Inject constructor( + private val sessionManager: SessionManager, +) : Interceptor { + + override fun intercept(chain: Interceptor.Chain): Response { + val token = runBlocking { sessionManager.token.firstOrNull() } + val requestTime = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(Date()) + val refNo = "REF${System.currentTimeMillis()}${UUID.randomUUID().toString().replace("-", "").take(6).uppercase()}" + + val original = chain.request() + val builder = original.newBuilder() + .header("Request-Time", requestTime) + .header("Channel-Id", "WEB") + .header("Reference-Number", refNo) + + // Add Bearer token only if not already overridden (e.g. login uses Basic Auth via @Header) + if (original.header("Authorization") == null && !token.isNullOrEmpty()) { + builder.header("Authorization", "Bearer $token") + } + + return chain.proceed(builder.build()) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/data/remote/model/ApiResponse.kt b/app/src/main/java/id/iiyh/inatrading/core/data/remote/model/ApiResponse.kt new file mode 100644 index 0000000..7f9c27d --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/data/remote/model/ApiResponse.kt @@ -0,0 +1,17 @@ +package id.iiyh.inatrading.core.data.remote.model + +data class ApiResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val data: T? = null, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class LoginData( + val id: String? = null, + val name: String? = null, + val session: String? = null, + val userType: String? = null, + val isSellerActive: Boolean? = null, +) diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/AuthModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/AuthModule.kt new file mode 100644 index 0000000..3533958 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/AuthModule.kt @@ -0,0 +1,18 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.auth.data.repository.AuthRepositoryImpl +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class AuthModule { + + @Binds + @Singleton + abstract fun bindAuthRepository(impl: AuthRepositoryImpl): AuthRepository +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/CartModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/CartModule.kt new file mode 100644 index 0000000..e8fedaa --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/CartModule.kt @@ -0,0 +1,19 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.cart.data.repository.CartRepositoryImpl +import id.iiyh.inatrading.feature.cart.domain.CartRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class CartModule { + + @Binds + @Singleton + abstract fun bindCartRepository(impl: CartRepositoryImpl): CartRepository +} + diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/ExploreModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/ExploreModule.kt new file mode 100644 index 0000000..e83277f --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/ExploreModule.kt @@ -0,0 +1,18 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.explore.data.repository.LocationRepositoryImpl +import id.iiyh.inatrading.feature.explore.domain.LocationRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class ExploreModule { + + @Binds + @Singleton + abstract fun bindLocationRepository(impl: LocationRepositoryImpl): LocationRepository +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/FavoriteModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/FavoriteModule.kt new file mode 100644 index 0000000..bb214dd --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/FavoriteModule.kt @@ -0,0 +1,18 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.favorite.data.repository.FavoriteRepositoryImpl +import id.iiyh.inatrading.feature.favorite.domain.FavoriteRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class FavoriteModule { + + @Binds + @Singleton + abstract fun bindFavoriteRepository(impl: FavoriteRepositoryImpl): FavoriteRepository +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/NetworkModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/NetworkModule.kt new file mode 100644 index 0000000..efceb78 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/NetworkModule.kt @@ -0,0 +1,60 @@ +package id.iiyh.inatrading.core.di + +import com.google.gson.Gson +import com.google.gson.GsonBuilder +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.BuildConfig +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.core.data.remote.interceptor.HeaderInterceptor +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory +import java.util.concurrent.TimeUnit +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object NetworkModule { + + @Provides + @Singleton + fun provideGson(): Gson = GsonBuilder().create() + + @Provides + @Singleton + fun provideLoggingInterceptor(): HttpLoggingInterceptor = + HttpLoggingInterceptor().apply { + level = if (BuildConfig.DEBUG) HttpLoggingInterceptor.Level.BODY + else HttpLoggingInterceptor.Level.NONE + } + + @Provides + @Singleton + fun provideOkHttpClient( + headerInterceptor: HeaderInterceptor, + loggingInterceptor: HttpLoggingInterceptor, + ): OkHttpClient = OkHttpClient.Builder() + .addInterceptor(headerInterceptor) + .addInterceptor(loggingInterceptor) + .connectTimeout(30, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS) + .build() + + @Provides + @Singleton + fun provideRetrofit(client: OkHttpClient, gson: Gson): Retrofit = + Retrofit.Builder() + .baseUrl(BuildConfig.BASE_URL) + .client(client) + .addConverterFactory(GsonConverterFactory.create(gson)) + .build() + + @Provides + @Singleton + fun provideApiService(retrofit: Retrofit): ApiService = + retrofit.create(ApiService::class.java) +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/NewsModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/NewsModule.kt new file mode 100644 index 0000000..8dcdfd7 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/NewsModule.kt @@ -0,0 +1,18 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.news.data.repository.NewsRepositoryImpl +import id.iiyh.inatrading.feature.news.domain.NewsRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class NewsModule { + + @Binds + @Singleton + abstract fun bindNewsRepository(impl: NewsRepositoryImpl): NewsRepository +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/di/ProductModule.kt b/app/src/main/java/id/iiyh/inatrading/core/di/ProductModule.kt new file mode 100644 index 0000000..265748e --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/di/ProductModule.kt @@ -0,0 +1,18 @@ +package id.iiyh.inatrading.core.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import id.iiyh.inatrading.feature.product.data.repository.ProductRepositoryImpl +import id.iiyh.inatrading.feature.product.domain.ProductRepository +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class ProductModule { + + @Binds + @Singleton + abstract fun bindProductRepository(impl: ProductRepositoryImpl): ProductRepository +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaBottomNavBar.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaBottomNavBar.kt new file mode 100644 index 0000000..3a6670f --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaBottomNavBar.kt @@ -0,0 +1,125 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.navigation.BottomNavItem +import id.iiyh.inatrading.navigation.Screen +import id.iiyh.inatrading.navigation.bottomNavItems + +/** + * Bottom Navigation Bar bersama untuk 4 main screen. + * + * - Frosted glass: putih 85% opacity + * - Active tab: background merah/10 + filled icon + label bold + * - Inner screens: tidak menampilkan BottomNav ini + */ +@Composable +fun InaBottomNavBar( + currentRoute: String?, + onTabSelected: (Screen) -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxWidth() + .shadow( + elevation = 0.dp, + ambientColor = OnSurface.copy(alpha = 0.04f), + spotColor = OnSurface.copy(alpha = 0.04f), + ) + .background(Color.White.copy(alpha = 0.85f)) + .clip(RoundedCornerShape(topStart = 24.dp, topEnd = 24.dp)) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .navigationBarsPadding() + .padding(horizontal = 10.dp, vertical = 8.dp), + horizontalArrangement = Arrangement.SpaceAround, + verticalAlignment = Alignment.CenterVertically, + ) { + bottomNavItems.forEach { item -> + BottomNavTab( + modifier = Modifier.weight(1f), + item = item, + isSelected = currentRoute == item.screen.route, + onClick = { onTabSelected(item.screen) }, + ) + } + } + } +} + +@Composable +private fun BottomNavTab( + modifier: Modifier = Modifier, + item: BottomNavItem, + isSelected: Boolean, + onClick: () -> Unit, +) { + val bgColor = if (isSelected) BrandRed.copy(alpha = 0.10f) else Color.Transparent + val iconTint = if (isSelected) BrandRed else OnSurfaceVariant + val labelColor = if (isSelected) BrandRed else OnSurfaceVariant + val icon = if (isSelected) item.iconSelected else item.icon + + Column( + modifier = modifier + .clip(RoundedCornerShape(16.dp)) + .background(bgColor) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = BrandRed.copy(alpha = 0.12f)), + onClick = onClick, + ) + .heightIn(min = 52.dp) + .padding(horizontal = 10.dp, vertical = 6.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(2.dp, Alignment.CenterVertically), + ) { + Icon( + imageVector = icon, + contentDescription = stringResource(item.labelRes), + tint = iconTint, + modifier = Modifier.size(22.dp), + ) + Text( + text = stringResource(item.labelRes), + style = MaterialTheme.typography.labelSmall, + fontWeight = if (isSelected) FontWeight.Bold else FontWeight.Medium, + color = labelColor, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + textAlign = TextAlign.Center, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaButton.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaButton.kt new file mode 100644 index 0000000..8173742 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaButton.kt @@ -0,0 +1,168 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.BrandNavy +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.InaTradingTheme +import id.iiyh.inatrading.core.ui.theme.OnAccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.InaShape + +private val ButtonShape = RoundedCornerShape(InaShape.md) +private val ButtonHeight = 52.dp + +// ─── Primary — gradient CTA ─────────────────────────────────────────────────── +@Composable +fun InaPrimaryButton( + text: String, + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + isLoading: Boolean = false, +) { + val gradient = Brush.linearGradient( + colors = if (enabled) listOf(BrandRed, BrandRedLight) + else listOf(Color(0xFFCCCCCC), Color(0xFFBBBBBB)), + start = androidx.compose.ui.geometry.Offset(0f, 0f), + end = androidx.compose.ui.geometry.Offset(Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY), + ) + + Box( + modifier = modifier + .fillMaxWidth() + .height(ButtonHeight) + .clip(ButtonShape) + .background(gradient) + .clickable( + enabled = enabled && !isLoading, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = Color.White.copy(alpha = 0.2f)), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.size(22.dp), + color = Color.White, + strokeWidth = 2.5.dp, + ) + } else { + Text( + text = text, + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + color = Color.White, + ) + } + } +} + +// ─── Secondary — filled tonal, no border ───────────────────────────────────── +@Composable +fun InaSecondaryButton( + text: String, + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, +) { + Box( + modifier = modifier + .fillMaxWidth() + .height(ButtonHeight) + .clip(ButtonShape) + .background( + if (enabled) AccentBlueContainer else Color(0xFFE0E0E0) + ) + .clickable( + enabled = enabled, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = BrandNavy.copy(alpha = 0.12f)), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Text( + text = text, + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + color = if (enabled) OnAccentBlueContainer else Color(0xFF9E9E9E), + ) + } +} + +// ─── Tertiary — text only ───────────────────────────────────────────────────── +@Composable +fun InaTertiaryButton( + text: String, + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, +) { + Box( + modifier = modifier + .height(ButtonHeight) + .clip(ButtonShape) + .clickable( + enabled = enabled, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = AccentPurple.copy(alpha = 0.12f)), + onClick = onClick, + ) + .padding(horizontal = 16.dp), + contentAlignment = Alignment.Center, + ) { + Text( + text = text, + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + color = if (enabled) AccentPurple else Color(0xFF9E9E9E), + ) + } +} + +// ─── Preview ────────────────────────────────────────────────────────────────── +@Preview(showBackground = true, backgroundColor = 0xFFF8FAFB) +@Composable +private fun InaButtonPreview() { + InaTradingTheme { + Column( + modifier = Modifier.padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + InaPrimaryButton(text = "Masuk", onClick = {}) + InaPrimaryButton(text = "Loading...", onClick = {}, isLoading = true) + InaPrimaryButton(text = "Disabled", onClick = {}, enabled = false) + InaSecondaryButton(text = "Daftar Sekarang", onClick = {}) + InaTertiaryButton(text = "Lupa Password?", onClick = {}) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaCard.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaCard.kt new file mode 100644 index 0000000..b83cd02 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaCard.kt @@ -0,0 +1,92 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.core.ui.theme.InaTradingTheme +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.core.ui.theme.InaShape + +private val CardShape = RoundedCornerShape(InaShape.md) + +/** + * Card dasar sesuai design spec: + * - Zero border (no outline) + * - Background: SurfaceContainerLowest (#ffffff) di atas SurfaceContainerLow (#f2f4f5) + * - Padding minimal 24dp + * - On press: background shift + ambient shadow naik sedikit + */ +@Composable +fun InaCard( + modifier: Modifier = Modifier, + onClick: (() -> Unit)? = null, + content: @Composable () -> Unit, +) { + val interactionSource = remember { MutableInteractionSource() } + val isPressed by interactionSource.collectIsPressedAsState() + + // Ambient shadow sesuai design spec: on-surface @ 4% opacity, blur 32dp, offsetY 8dp + // Saat pressed, shadow sedikit lebih dalam + val shadowElevation = if (isPressed) 6.dp else 2.dp + val bgColor = if (isPressed) Color(0xFFFAFAFA) else SurfaceContainerLowest + + val clickModifier = if (onClick != null) { + Modifier.clickable( + interactionSource = interactionSource, + indication = ripple(color = OnSurface.copy(alpha = 0.06f)), + onClick = onClick, + ) + } else Modifier + + Column( + modifier = modifier + .shadow( + elevation = shadowElevation, + shape = CardShape, + ambientColor = OnSurface.copy(alpha = 0.04f), + spotColor = OnSurface.copy(alpha = 0.04f), + ) + .clip(CardShape) + .background(bgColor) + .then(clickModifier) + .padding(24.dp), + ) { + content() + } +} + +// ─── Preview ────────────────────────────────────────────────────────────────── +@Preview(showBackground = true, backgroundColor = 0xFFF2F4F5) +@Composable +private fun InaCardPreview() { + InaTradingTheme { + Column( + modifier = Modifier.padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + InaCard { + Text("Card tanpa interaksi") + } + InaCard(onClick = {}) { + Text("Card dengan onClick (clickable)") + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaChip.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaChip.kt new file mode 100644 index 0000000..7d1fc2c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaChip.kt @@ -0,0 +1,114 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.InaTradingTheme +import id.iiyh.inatrading.core.ui.theme.OnAccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.OnAccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.InaShape + +// Full roundness sesuai design spec — chip merchant harus kontras vs md (12dp) pada kartu +private val ChipShape = RoundedCornerShape(InaShape.full.dp) + +enum class InaChipVariant { + /** Kategori produk — Secondary blue */ + Category, + /** Featured merchant / premium — Tertiary purple */ + Featured, + /** Status aktif / promosi — Primary red */ + Promo, +} + +/** + * Chip sesuai design spec: + * - Shape: full roundness (9999dp) — beda dengan md (12dp) pada kartu + * - Featured merchant → `tertiary_container` + `on_tertiary_container` + * - Category → `secondary_container` + `on_secondary_container` + * - Promo → `primary_container` + teks merah + */ +@Composable +fun InaChip( + label: String, + modifier: Modifier = Modifier, + variant: InaChipVariant = InaChipVariant.Category, + selected: Boolean = false, + onClick: (() -> Unit)? = null, +) { + val (bg, fg) = when (variant) { + InaChipVariant.Category -> { + if (selected) AccentBlue to Color.White + else AccentBlueContainer to OnAccentBlueContainer + } + InaChipVariant.Featured -> { + if (selected) AccentPurple to Color.White + else AccentPurpleContainer to OnAccentPurpleContainer + } + InaChipVariant.Promo -> { + if (selected) BrandRed to Color.White + else BrandRedContainer to BrandRed + } + } + + val clickModifier = if (onClick != null) { + Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = fg.copy(alpha = 0.15f)), + onClick = onClick, + ) + } else Modifier + + Row( + modifier = modifier + .clip(ChipShape) + .background(bg) + .then(clickModifier) + .padding(horizontal = 14.dp, vertical = 6.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = label, + style = MaterialTheme.typography.labelMedium, + color = fg, + ) + } +} + +// ─── Preview ────────────────────────────────────────────────────────────────── +@Preview(showBackground = true, backgroundColor = 0xFFF2F4F5) +@Composable +private fun InaChipPreview() { + InaTradingTheme { + Row( + modifier = Modifier.padding(24.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + InaChip(label = "Kuliner", variant = InaChipVariant.Category, onClick = {}) + InaChip(label = "Kuliner", variant = InaChipVariant.Category, selected = true, onClick = {}) + InaChip(label = "Featured", variant = InaChipVariant.Featured, onClick = {}) + InaChip(label = "Promo", variant = InaChipVariant.Promo, onClick = {}) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaInnerTopAppBar.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaInnerTopAppBar.kt new file mode 100644 index 0000000..f600978 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaInnerTopAppBar.kt @@ -0,0 +1,71 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material3.Icon +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.OnSurface + +/** + * Top App Bar untuk inner screen (tanpa BottomNav). + * + * Layout: [Back Arrow (merah)] ——— [Logo center] ——— + * + * Frosted glass sama seperti main TopAppBar. + */ +@Composable +fun InaInnerTopAppBar( + onBack: (() -> Unit)?, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.85f)) + .padding(horizontal = 20.dp, vertical = 14.dp), + ) { + // Back arrow — kiri (hidden when onBack is null) + if (onBack != null) { + Box( + modifier = Modifier + .size(40.dp) + .align(Alignment.CenterStart) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false, radius = 20.dp), + onClick = onBack, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.topbar_menu), + tint = BrandRed, + modifier = Modifier.size(24.dp), + ) + } + } + + // Logo — center + InaLogo( + modifier = Modifier.align(Alignment.Center), + size = LogoSize.Small, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaLogo.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaLogo.kt new file mode 100644 index 0000000..0e21834 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaLogo.kt @@ -0,0 +1,41 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.height +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.R + +/** + * INA Trading logo — renders the official PNG asset. + * + * @param size Skala logo — [LogoSize.Small] untuk appbar, [LogoSize.Large] untuk splash. + */ +@Composable +fun InaLogo( + modifier: Modifier = Modifier, + size: LogoSize = LogoSize.Medium, +) { + Image( + painter = painterResource(R.drawable.header_new), + contentDescription = "INA Trading", + contentScale = ContentScale.Fit, + modifier = modifier.then(size.modifier), + ) +} + +// ─── Size variants ──────────────────────────────────────────────────────────── + +enum class LogoSize(val modifier: Modifier) { + /** Top App Bar */ + Small(modifier = Modifier.height(36.dp)), + + /** Default — onboarding header */ + Medium(modifier = Modifier.height(56.dp)), + + /** Splash screen */ + Large(modifier = Modifier.height(80.dp)), +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTextField.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTextField.kt new file mode 100644 index 0000000..9a6ebec --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTextField.kt @@ -0,0 +1,193 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusState +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.InaTradingTheme +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.core.ui.theme.InaShape + +private val FieldShape = RoundedCornerShape(InaShape.md) + +/** + * Input field sesuai design spec: + * - Normal state: background SurfaceContainerLow, no border + * - Focus state: background SurfaceContainerLowest + "ghost border" primary @ 40% opacity + * - Error state: ghost border ErrorRed @ 60% opacity + */ +@Composable +fun InaTextField( + value: String, + onValueChange: (String) -> Unit, + modifier: Modifier = Modifier, + label: String = "", + placeholder: String = "", + isPassword: Boolean = false, + isError: Boolean = false, + errorMessage: String = "", + keyboardOptions: KeyboardOptions = KeyboardOptions.Default, + keyboardActions: KeyboardActions = KeyboardActions.Default, + leadingIcon: @Composable (() -> Unit)? = null, + trailingIcon: @Composable (() -> Unit)? = null, + onFocusChanged: ((FocusState) -> Unit)? = null, +) { + var isFocused by remember { mutableStateOf(false) } + + val backgroundColor by animateColorAsState( + targetValue = if (isFocused) SurfaceContainerLowest else SurfaceContainerLow, + animationSpec = tween(150), + label = "fieldBg", + ) + + val borderColor = when { + isError -> Color(0xFFBA1A1A).copy(alpha = 0.6f) + isFocused -> BrandRed.copy(alpha = 0.4f) + else -> Color.Transparent + } + + Column(modifier = modifier, verticalArrangement = Arrangement.spacedBy(6.dp)) { + if (label.isNotEmpty()) { + Text( + text = label, + style = MaterialTheme.typography.labelMedium, + color = if (isError) Color(0xFFBA1A1A) else OnSurfaceVariant, + ) + } + + BasicTextField( + value = value, + onValueChange = onValueChange, + textStyle = MaterialTheme.typography.bodyLarge.copy(color = OnSurface), + cursorBrush = SolidColor(BrandRed), + visualTransformation = if (isPassword) PasswordVisualTransformation() else VisualTransformation.None, + keyboardOptions = keyboardOptions, + keyboardActions = keyboardActions, + singleLine = true, + modifier = Modifier + .fillMaxWidth() + .onFocusChanged { + isFocused = it.isFocused + onFocusChanged?.invoke(it) + } + .background(backgroundColor, FieldShape) + .border(width = 1.dp, color = borderColor, shape = FieldShape) + .padding(horizontal = 16.dp, vertical = 14.dp), + decorationBox = { innerTextField -> + Box(modifier = Modifier.fillMaxWidth()) { + if (leadingIcon != null) { + Box( + modifier = Modifier + .size(20.dp) + .align(androidx.compose.ui.Alignment.CenterStart) + ) { + leadingIcon() + } + } + + Box( + modifier = Modifier + .fillMaxWidth() + .padding( + start = if (leadingIcon != null) 32.dp else 0.dp, + end = if (trailingIcon != null) 32.dp else 0.dp, + ) + ) { + if (value.isEmpty() && placeholder.isNotEmpty()) { + Text( + text = placeholder, + style = MaterialTheme.typography.bodyLarge, + color = OnSurfaceVariant.copy(alpha = 0.6f), + ) + } + innerTextField() + } + + if (trailingIcon != null) { + Box( + modifier = Modifier + .size(20.dp) + .align(androidx.compose.ui.Alignment.CenterEnd) + ) { + trailingIcon() + } + } + } + }, + ) + + if (isError && errorMessage.isNotEmpty()) { + Text( + text = errorMessage, + style = MaterialTheme.typography.bodySmall, + color = Color(0xFFBA1A1A), + ) + } + } +} + +// ─── Preview ────────────────────────────────────────────────────────────────── +@Preview(showBackground = true, backgroundColor = 0xFFF8FAFB) +@Composable +private fun InaTextFieldPreview() { + InaTradingTheme { + var text by remember { mutableStateOf("") } + var pass by remember { mutableStateOf("") } + + Column( + modifier = Modifier.padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + InaTextField( + value = text, + onValueChange = { text = it }, + label = "Email", + placeholder = "contoh@email.com", + ) + InaTextField( + value = pass, + onValueChange = { pass = it }, + label = "Password", + placeholder = "Minimal 8 karakter", + isPassword = true, + ) + InaTextField( + value = "email-salah", + onValueChange = {}, + label = "Email", + isError = true, + errorMessage = "Format email tidak valid", + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTopAppBar.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTopAppBar.kt new file mode 100644 index 0000000..1658b16 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/components/InaTopAppBar.kt @@ -0,0 +1,140 @@ +package id.iiyh.inatrading.core.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Notifications +import androidx.compose.material.icons.outlined.ShoppingCart +import androidx.compose.material.icons.outlined.SettingsInputAntenna +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant + +/** + * Top App Bar bersama untuk semua main screen. + * + * Layout: [Logo] ————————————— [Cart+Badge] [Notif] + */ +@Composable +fun InaTopAppBar( + modifier: Modifier = Modifier, + cartItemCount: Int = 0, + onMenuClick: () -> Unit = {}, + onRfidClick: () -> Unit = {}, + onCartClick: () -> Unit = {}, + onNotifClick: () -> Unit = {}, +) { + Box( + modifier = modifier + .fillMaxWidth() + .shadow( + elevation = 0.dp, + ambientColor = OnSurface.copy(alpha = 0.04f), + spotColor = OnSurface.copy(alpha = 0.04f), + ) + .background(Color.White.copy(alpha = 0.85f)) + .statusBarsPadding() + .padding(horizontal = 16.dp, vertical = 8.dp), + ) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + // INA Trading logo image + InaLogo(size = LogoSize.Small) + + Spacer(modifier = Modifier.weight(1f)) + + // Cart icon dengan badge + TopBarIcon( + icon = Icons.Outlined.SettingsInputAntenna, + contentDesc = stringResource(R.string.topbar_rfid), + onClick = onRfidClick, + ) + + Box { + TopBarIcon( + icon = Icons.Outlined.ShoppingCart, + contentDesc = stringResource(R.string.topbar_cart), + onClick = onCartClick, + ) + if (cartItemCount > 0) { + Box( + modifier = Modifier + .size(14.dp) + .offset(x = 6.dp, y = (-2).dp) + .background(BrandRed, CircleShape) + .align(Alignment.TopEnd), + contentAlignment = Alignment.Center, + ) { + Text( + text = if (cartItemCount > 9) "9+" else cartItemCount.toString(), + style = MaterialTheme.typography.labelSmall.copy(fontSize = 9.sp), + color = Color.White, + ) + } + } + } + + // Notif icon + TopBarIcon( + icon = Icons.Outlined.Notifications, + contentDesc = stringResource(R.string.topbar_notifications), + onClick = onNotifClick, + modifier = Modifier.padding(start = 4.dp), + ) + } + } +} + +@Composable +private fun TopBarIcon( + icon: ImageVector, + contentDesc: String, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .size(36.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false, radius = 18.dp), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = contentDesc, + tint = OnSurfaceVariant, + modifier = Modifier.size(22.dp), + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Color.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Color.kt new file mode 100644 index 0000000..f04719d --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Color.kt @@ -0,0 +1,48 @@ +package id.iiyh.inatrading.core.ui.theme + +import androidx.compose.ui.graphics.Color + +// ─── Brand ─────────────────────────────────────────────────────────────────── +/** Merah INA — anchor utama brand */ +val BrandRed = Color(0xFFB7131A) +val BrandRedLight = Color(0xFFDB322F) // gradient endpoint CTA +val BrandRedContainer = Color(0xFFFFDAD6) + +/** Navy TRADING — dari wordmark logo */ +val BrandNavy = Color(0xFF1D3461) + +// ─── Accent ────────────────────────────────────────────────────────────────── +/** Secondary — Biru, progress & kategori */ +val AccentBlue = Color(0xFF4355B9) +val AccentBlueContainer = Color(0xFFDEE0FF) +val OnAccentBlue = Color(0xFFFFFFFF) +val OnAccentBlueContainer = Color(0xFF000F5C) + +/** Tertiary — Purple, fitur premium & discovery */ +val AccentPurple = Color(0xFF6D45B0) +val AccentPurpleContainer = Color(0xFFEBDDFF) +val OnAccentPurple = Color(0xFFFFFFFF) +val OnAccentPurpleContainer = Color(0xFF260065) + +// ─── Surface / Background ──────────────────────────────────────────────────── +val Background = Color(0xFFF8FAFB) // Level 0 — base screen +val SurfaceContainerLow = Color(0xFFF2F4F5) // Level 1 — sections +val SurfaceContainerLowest = Color(0xFFFFFFFF) // Level 2 — cards / content +val SurfaceBright = Color(0xFFFFFFFF) +val SurfaceContainerHighest = Color(0xFFE2E4E5) // "Brand Slope" element + +// ─── On-Surface ────────────────────────────────────────────────────────────── +/** Bukan pure black — premium soft look */ +val OnSurface = Color(0xFF191C1D) +val OnSurfaceVariant = Color(0xFF41484D) +val OutlineVariant = Color(0xFFC0C8CD) // dipakai di 20% opacity ("ghost border") + +// ─── Error ─────────────────────────────────────────────────────────────────── +val ErrorRed = Color(0xFFBA1A1A) +val ErrorContainer = Color(0xFFFFDAD6) +val OnError = Color(0xFFFFFFFF) +val OnErrorContainer = Color(0xFF410002) + +// ─── Functional accents ────────────────────────────────────────────────────── +val SuccessGreen = Color(0xFF2E7D32) +val WarningAmber = Color(0xFFF57F17) diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Theme.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Theme.kt new file mode 100644 index 0000000..ac72354 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Theme.kt @@ -0,0 +1,114 @@ +package id.iiyh.inatrading.core.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color + +// ─── Shape tokens ───────────────────────────────────────────────────────────── +// Dipakai langsung sebagai Dp di komponen, bukan lewat MaterialTheme.shapes +// agar bisa mix sm/md/full sesuai design spec +object InaShape { + val sm = 4 // tags kecil + val md = 12 // kartu & container besar + val lg = 16 + val full = 9999 // chip merchant +} + +// ─── Elevation tokens ───────────────────────────────────────────────────────── +object InaElevation { + val none = 0 + /** Ambient shadow untuk floating element: on-surface @ 4% opacity */ + val ambient = 0.04f + val blurDp = 32 + val offsetY = 8 +} + +// ─── Light Color Scheme ─────────────────────────────────────────────────────── +private val LightColorScheme = lightColorScheme( + primary = BrandRed, + onPrimary = Color.White, + primaryContainer = BrandRedContainer, + onPrimaryContainer = Color(0xFF410002), + + secondary = AccentBlue, + onSecondary = OnAccentBlue, + secondaryContainer = AccentBlueContainer, + onSecondaryContainer = OnAccentBlueContainer, + + tertiary = AccentPurple, + onTertiary = OnAccentPurple, + tertiaryContainer = AccentPurpleContainer, + onTertiaryContainer = OnAccentPurpleContainer, + + error = ErrorRed, + onError = OnError, + errorContainer = ErrorContainer, + onErrorContainer = OnErrorContainer, + + background = Background, + onBackground = OnSurface, + + surface = Background, + onSurface = OnSurface, + onSurfaceVariant = OnSurfaceVariant, + surfaceContainerLowest = SurfaceContainerLowest, + surfaceContainerLow = SurfaceContainerLow, + surfaceContainerHigh = SurfaceContainerHighest, + + outline = OutlineVariant, + outlineVariant = OutlineVariant, +) + +// ─── Dark Color Scheme ──────────────────────────────────────────────────────── +private val DarkColorScheme = darkColorScheme( + primary = Color(0xFFFFB3AC), + onPrimary = Color(0xFF680005), + primaryContainer = Color(0xFF93000F), + onPrimaryContainer = BrandRedContainer, + + secondary = Color(0xFFBBC3FF), + onSecondary = Color(0xFF00178E), + secondaryContainer = Color(0xFF203097), + onSecondaryContainer = Color(0xFFDEE0FF), + + tertiary = Color(0xFFD3BBFF), + onTertiary = Color(0xFF3C007E), + tertiaryContainer = Color(0xFF560097), + onTertiaryContainer = AccentPurpleContainer, + + error = Color(0xFFFFB4AB), + onError = Color(0xFF690005), + errorContainer = Color(0xFF93000A), + onErrorContainer = ErrorContainer, + + background = Color(0xFF191C1D), + onBackground = Color(0xFFE1E3E4), + + surface = Color(0xFF191C1D), + onSurface = Color(0xFFE1E3E4), + onSurfaceVariant = Color(0xFFC0C8CD), + surfaceContainerLowest = Color(0xFF0E1112), + surfaceContainerLow = Color(0xFF191C1D), + surfaceContainerHigh = Color(0xFF2C3032), + + outline = Color(0xFF8A9297), + outlineVariant = Color(0xFF41484D), +) + +// ─── Theme Entry Point ──────────────────────────────────────────────────────── +@Composable +fun InaTradingTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit +) { + val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme + + MaterialTheme( + colorScheme = colorScheme, + typography = InaTypography, + content = content + ) +} diff --git a/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Type.kt b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Type.kt new file mode 100644 index 0000000..e2a2913 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/core/ui/theme/Type.kt @@ -0,0 +1,155 @@ +package id.iiyh.inatrading.core.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.googlefonts.Font +import androidx.compose.ui.text.googlefonts.GoogleFont +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R + +private val provider = GoogleFont.Provider( + providerAuthority = "com.google.android.gms.fonts", + providerPackage = "com.google.android.gms", + certificates = R.array.com_google_android_gms_fonts_certs +) + +// ─── Manrope — Display & Headlines ─────────────────────────────────────────── +private val ManropeFont = GoogleFont("Manrope") + +val ManropeFontFamily = FontFamily( + Font(googleFont = ManropeFont, fontProvider = provider, weight = FontWeight.Normal), + Font(googleFont = ManropeFont, fontProvider = provider, weight = FontWeight.Medium), + Font(googleFont = ManropeFont, fontProvider = provider, weight = FontWeight.SemiBold), + Font(googleFont = ManropeFont, fontProvider = provider, weight = FontWeight.Bold), + Font(googleFont = ManropeFont, fontProvider = provider, weight = FontWeight.ExtraBold), +) + +// ─── Inter — Body & Labels ──────────────────────────────────────────────────── +private val InterFont = GoogleFont("Inter") + +val InterFontFamily = FontFamily( + Font(googleFont = InterFont, fontProvider = provider, weight = FontWeight.Normal), + Font(googleFont = InterFont, fontProvider = provider, weight = FontWeight.Medium), + Font(googleFont = InterFont, fontProvider = provider, weight = FontWeight.SemiBold), + Font(googleFont = InterFont, fontProvider = provider, weight = FontWeight.Bold), +) + +// ─── Typography Scale ───────────────────────────────────────────────────────── +val InaTypography = Typography( + // Display — hero sections, editorial feel + displayLarge = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 56.sp, + lineHeight = 64.sp, + letterSpacing = (-0.25).sp + ), + displayMedium = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 45.sp, + lineHeight = 52.sp, + letterSpacing = 0.sp + ), + displaySmall = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 36.sp, + lineHeight = 44.sp, + letterSpacing = 0.sp + ), + + // Headline — section anchors + headlineLarge = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 28.sp, + lineHeight = 36.sp, + letterSpacing = 0.sp + ), + headlineMedium = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + lineHeight = 32.sp, + letterSpacing = 0.sp + ), + headlineSmall = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.SemiBold, + fontSize = 20.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + + // Title — card headers + titleLarge = TextStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.SemiBold, + fontSize = 18.sp, + lineHeight = 26.sp, + letterSpacing = 0.sp + ), + titleMedium = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.SemiBold, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.15.sp + ), + titleSmall = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Medium, + fontSize = 14.sp, + lineHeight = 20.sp, + letterSpacing = 0.1.sp + ), + + // Body — descriptions & content + bodyLarge = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ), + bodyMedium = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + lineHeight = 20.sp, + letterSpacing = 0.25.sp + ), + bodySmall = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Normal, + fontSize = 12.sp, + lineHeight = 16.sp, + letterSpacing = 0.4.sp + ), + + // Label — buttons, tags, all-caps identifiers + labelLarge = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Medium, + fontSize = 14.sp, + lineHeight = 20.sp, + letterSpacing = 0.1.sp + ), + labelMedium = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Medium, + fontSize = 12.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ), + labelSmall = TextStyle( + fontFamily = InterFontFamily, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ), +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/data/model/RegisterRequest.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/data/model/RegisterRequest.kt new file mode 100644 index 0000000..fc9f0ea --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/data/model/RegisterRequest.kt @@ -0,0 +1,8 @@ +package id.iiyh.inatrading.feature.auth.data.model + +data class RegisterRequest( + val name: String, + val email: String, + val mobile: String, + val password: String, +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/data/repository/AuthRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/data/repository/AuthRepositoryImpl.kt new file mode 100644 index 0000000..808aa74 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/data/repository/AuthRepositoryImpl.kt @@ -0,0 +1,334 @@ +package id.iiyh.inatrading.feature.auth.data.repository + +import android.content.Context +import android.net.Uri +import android.util.Base64 +import android.webkit.MimeTypeMap +import androidx.core.net.toFile +import dagger.hilt.android.qualifiers.ApplicationContext +import id.iiyh.inatrading.core.data.local.SessionManager +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.feature.auth.data.model.RegisterRequest +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.profile.data.model.BuyerProfile +import id.iiyh.inatrading.feature.profile.data.model.CityItem +import id.iiyh.inatrading.feature.profile.data.model.ChangePasswordRequest +import id.iiyh.inatrading.feature.profile.data.model.CreateShippingAddressRequest +import id.iiyh.inatrading.feature.profile.data.model.ProvinceItem +import id.iiyh.inatrading.feature.profile.data.model.ShippingAddress +import id.iiyh.inatrading.feature.profile.data.model.UpdateBuyerProfileRequest +import java.io.File +import java.util.UUID +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.MultipartBody +import okhttp3.RequestBody.Companion.asRequestBody +import retrofit2.HttpException +import javax.inject.Inject + +class AuthRepositoryImpl @Inject constructor( + @ApplicationContext private val context: Context, + private val apiService: ApiService, + private val sessionManager: SessionManager, +) : AuthRepository { + + private companion object { + const val REGION_PAGE_LIMIT = 100 + } + + override suspend fun login(email: String, password: String): Result { + return try { + val credentials = Base64.encodeToString("$email:$password".toByteArray(), Base64.NO_WRAP) + val basicAuth = "Basic $credentials" + val response = apiService.loginBuyer(basicAuth) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Login gagal")) + } + val data = response.data + ?: return Result.failure(Exception("Session tidak ditemukan")) + val session = data.session + ?: return Result.failure(Exception("Session tidak ditemukan")) + sessionManager.saveSession( + token = session, + email = email, + name = data.name.orEmpty(), + userType = data.userType.orEmpty(), + ) + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun register( + name: String, + email: String, + mobile: String, + password: String, + ): Result { + return try { + val response = apiService.registerBuyer( + RegisterRequest(name = name, email = email, mobile = mobile, password = password) + ) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Registrasi gagal")) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getBuyerProfile(): Result { + return try { + val response = apiService.getBuyerProfile() + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat profil")) + } + val data = response.data + ?: return Result.failure(Exception("Data profil tidak ditemukan")) + sessionManager.updateProfile( + name = data.name.orEmpty(), + email = data.email.orEmpty(), + avatarUrl = data.imageId.orEmpty(), + ) + Result.success(data) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getAddresses(): Result> { + return try { + val response = apiService.getAddresses() + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat alamat pengiriman")) + } + Result.success(response.rows) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getProvinces(): Result> { + return try { + val provinces = mutableListOf() + var page = 1 + var totalPage = 1 + + while (page <= totalPage) { + val response = apiService.getProvinces( + page = page, + limit = REGION_PAGE_LIMIT, + ) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat provinsi")) + } + provinces += response.rows + totalPage = response.totalPage.coerceAtLeast(1) + page += 1 + } + + Result.success( + provinces.distinctBy { it.id ?: it.code ?: it.name.orEmpty() } + ) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getCities(provinceId: String): Result> { + return try { + val cities = mutableListOf() + var page = 1 + var totalPage = 1 + + while (page <= totalPage) { + val response = apiService.getCities( + provinceId = provinceId, + page = page, + limit = REGION_PAGE_LIMIT, + ) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat kota")) + } + cities += response.rows + totalPage = response.totalPage.coerceAtLeast(1) + page += 1 + } + + Result.success( + cities.distinctBy { it.id ?: it.code ?: it.name.orEmpty() } + ) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun createAddress(request: CreateShippingAddressRequest): Result { + return try { + val response = apiService.createAddress(request) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal menyimpan alamat")) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun updateAddress( + addressId: String, + request: CreateShippingAddressRequest, + ): Result { + return try { + val response = apiService.updateAddress(addressId, request) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memperbarui alamat")) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun deleteAddress(addressId: String): Result { + return try { + val response = apiService.deleteAddress(addressId) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal menghapus alamat")) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun uploadFile(uri: Uri): Result { + return try { + val file = copyUriToTempFile(uri) + val mimeType = context.contentResolver.getType(uri).orEmpty().ifBlank { "image/*" } + val requestBody = file.asRequestBody(mimeType.toMediaTypeOrNull()) + val part = MultipartBody.Part.createFormData("file", file.name, requestBody) + val response = apiService.uploadFile(part) + file.delete() + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal mengunggah gambar")) + } + val fileId = response.data?.fileId + ?: return Result.failure(Exception("File ID tidak ditemukan")) + Result.success(fileId) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun updateBuyerProfile( + name: String, + mobile: String, + imageId: String?, + email: String, + profileDescription: String?, + ): Result { + return try { + val response = apiService.updateBuyerProfile( + UpdateBuyerProfileRequest( + email = email, + imageId = imageId, + mobile = mobile, + name = name, + profileDescription = profileDescription, + ) + ) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal menyimpan profil")) + } + val latestProfileResponse = apiService.getBuyerProfile() + if (latestProfileResponse.isSuccess) { + val latestProfile = latestProfileResponse.data + sessionManager.updateProfile( + name = latestProfile?.name.orEmpty().ifBlank { name }, + email = latestProfile?.email.orEmpty().ifBlank { email }, + avatarUrl = latestProfile?.imageId.orEmpty(), + ) + } else { + sessionManager.updateProfile( + name = name, + email = email, + ) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun changePassword( + oldPassword: String, + newPassword: String, + ): Result { + return try { + val response = apiService.changePassword( + ChangePasswordRequest( + newPassword = newPassword, + oldPassword = oldPassword, + ) + ) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal mengubah kata sandi")) + } + Result.success(Unit) + } catch (e: HttpException) { + Result.failure(Exception(e.parseMessage())) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun logout() { + sessionManager.clearToken() + } + + private fun copyUriToTempFile(uri: Uri): File { + val extension = context.contentResolver.getType(uri) + ?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } + ?: "jpg" + val tempFile = File(context.cacheDir, "upload-${UUID.randomUUID()}.$extension") + context.contentResolver.openInputStream(uri)?.use { input -> + tempFile.outputStream().use { output -> input.copyTo(output) } + } ?: throw IllegalStateException("Tidak dapat membaca file gambar") + return tempFile + } + + private fun HttpException.parseMessage(): String { + return try { + val body = response()?.errorBody()?.string() ?: return "Terjadi kesalahan" + // Try to extract responseDesc from error body + val match = Regex(""""responseDesc"\s*:\s*"([^"]+)"""").find(body) + match?.groupValues?.get(1) ?: "Terjadi kesalahan (${code()})" + } catch (_: Exception) { + "Terjadi kesalahan (${code()})" + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/domain/repository/AuthRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/domain/repository/AuthRepository.kt new file mode 100644 index 0000000..8fa30c5 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/domain/repository/AuthRepository.kt @@ -0,0 +1,30 @@ +package id.iiyh.inatrading.feature.auth.domain.repository + +import android.net.Uri +import id.iiyh.inatrading.feature.profile.data.model.BuyerProfile +import id.iiyh.inatrading.feature.profile.data.model.CityItem +import id.iiyh.inatrading.feature.profile.data.model.CreateShippingAddressRequest +import id.iiyh.inatrading.feature.profile.data.model.ProvinceItem +import id.iiyh.inatrading.feature.profile.data.model.ShippingAddress + +interface AuthRepository { + suspend fun login(email: String, password: String): Result + suspend fun register(name: String, email: String, mobile: String, password: String): Result + suspend fun getBuyerProfile(): Result + suspend fun getAddresses(): Result> + suspend fun getProvinces(): Result> + suspend fun getCities(provinceId: String): Result> + suspend fun createAddress(request: CreateShippingAddressRequest): Result + suspend fun updateAddress(addressId: String, request: CreateShippingAddressRequest): Result + suspend fun deleteAddress(addressId: String): Result + suspend fun uploadFile(uri: Uri): Result + suspend fun updateBuyerProfile( + name: String, + mobile: String, + imageId: String?, + email: String, + profileDescription: String? = null, + ): Result + suspend fun changePassword(oldPassword: String, newPassword: String): Result + suspend fun logout() +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/ForgotPasswordScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/ForgotPasswordScreen.kt new file mode 100644 index 0000000..1a4ca40 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/ForgotPasswordScreen.kt @@ -0,0 +1,84 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.components.InaTertiaryButton +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant + +// TODO: Implement sesuai desain yang akan dikirim +@Composable +fun ForgotPasswordScreen( + onBack: () -> Unit, +) { + var email by remember { mutableStateOf("") } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(innerPadding) + .padding(horizontal = 24.dp, vertical = 32.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = stringResource(R.string.forgot_password_title), + fontFamily = ManropeFontFamily, + style = MaterialTheme.typography.headlineMedium, + ) + Text( + text = stringResource(R.string.forgot_password_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + + InaTextField( + value = email, + onValueChange = { email = it }, + label = stringResource(R.string.login_email_label), + placeholder = stringResource(R.string.login_email_placeholder), + ) + + InaPrimaryButton( + text = stringResource(R.string.forgot_password_cta), + onClick = { /* TODO */ }, + enabled = email.isNotBlank(), + ) + + Spacer(modifier = Modifier.weight(1f)) + + InaTertiaryButton( + text = stringResource(R.string.forgot_password_back_to_login), + onClick = onBack, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginScreen.kt new file mode 100644 index 0000000..29de682 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginScreen.kt @@ -0,0 +1,543 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.gestures.animateScrollBy +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Visibility +import androidx.compose.material.icons.outlined.VisibilityOff +import androidx.compose.material.icons.outlined.VerifiedUser +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.layout.positionInRoot +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.InterFontFamily +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.OutlineVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +@Composable +fun LoginScreen( + onBack: () -> Unit, + onLoginSuccess: () -> Unit, + onForgotPassword: () -> Unit, + onRegister: () -> Unit, + viewModel: LoginViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val coroutineScope = rememberCoroutineScope() + val scrollState = rememberScrollState() + val density = LocalDensity.current + val desiredFieldTopPx = with(density) { 96.dp.toPx() } + var emailTopPx by remember { mutableFloatStateOf(0f) } + var passwordTopPx by remember { mutableFloatStateOf(0f) } + + LaunchedEffect(uiState.isSuccess) { + if (uiState.isSuccess) onLoginSuccess() + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(innerPadding) + .verticalScroll(scrollState), + ) { + // ── Hero Section ────────────────────────────────────────────── + HeroSection() + + // ── Login Card (overlap hero) ───────────────────────────────── + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .offset(y = (-32).dp), // -mt-8 sesuai desain + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .padding(28.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // Email + InaTextField( + value = uiState.email, + onValueChange = viewModel::onEmailChange, + label = stringResource(R.string.login_email_label), + placeholder = stringResource(R.string.login_email_placeholder), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email), + modifier = Modifier.onGloballyPositioned { + emailTopPx = it.positionInRoot().y + }, + onFocusChanged = { + if (it.isFocused) { + coroutineScope.launch { + delay(150) + scrollFieldNearTop( + scrollState = scrollState, + fieldTopPx = emailTopPx, + desiredTopPx = desiredFieldTopPx, + ) + } + } + }, + ) + + // Password + Column(verticalArrangement = Arrangement.spacedBy(6.dp)) { + Row( + modifier = Modifier.fillMaxWidth().padding(horizontal = 2.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = stringResource(R.string.login_password_label).uppercase(), + style = MaterialTheme.typography.labelMedium, + color = OnSurfaceVariant, + letterSpacing = 1.sp, + ) + Text( + text = stringResource(R.string.login_forgot_password), + style = MaterialTheme.typography.labelMedium, + color = AccentBlue, + fontWeight = FontWeight.Medium, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false), + onClick = onForgotPassword, + ), + ) + } + + InaTextField( + value = uiState.password, + onValueChange = viewModel::onPasswordChange, + placeholder = stringResource(R.string.login_password_placeholder), + isPassword = !uiState.isPasswordVisible, + modifier = Modifier.onGloballyPositioned { + passwordTopPx = it.positionInRoot().y + }, + trailingIcon = { + Icon( + imageVector = if (uiState.isPasswordVisible) + Icons.Outlined.VisibilityOff + else + Icons.Outlined.Visibility, + contentDescription = if (uiState.isPasswordVisible) + stringResource(R.string.login_hide_password) + else + stringResource(R.string.login_show_password), + tint = OnSurfaceVariant, + modifier = Modifier + .size(20.dp) + .clickable(onClick = viewModel::togglePasswordVisibility), + ) + }, + onFocusChanged = { + if (it.isFocused) { + coroutineScope.launch { + delay(150) + scrollFieldNearTop( + scrollState = scrollState, + fieldTopPx = passwordTopPx, + desiredTopPx = desiredFieldTopPx, + ) + } + } + }, + ) + } + + // API error + if (uiState.errorMessage != null) { + Text( + text = uiState.errorMessage!!, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) + } + + // CTA + InaPrimaryButton( + text = stringResource(R.string.login_cta), + onClick = viewModel::login, + isLoading = uiState.isLoading, + enabled = uiState.email.isNotBlank() && uiState.password.isNotBlank(), + ) + + // Divider + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + HorizontalDivider( + modifier = Modifier.weight(1f), + color = OutlineVariant.copy(alpha = 0.25f), + ) + Text( + text = stringResource(R.string.login_or_with).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 1.5.sp, + ) + HorizontalDivider( + modifier = Modifier.weight(1f), + color = OutlineVariant.copy(alpha = 0.25f), + ) + } + + // Google Sign-In + GoogleSignInButton(onClick = viewModel::loginWithGoogle) + + // Register link + Box( + modifier = Modifier.fillMaxWidth(), + contentAlignment = Alignment.Center, + ) { + Text( + text = buildAnnotatedString { + withStyle(SpanStyle( + fontFamily = InterFontFamily, + fontSize = 13.sp, + color = OnSurfaceVariant, + )) { append(stringResource(R.string.login_no_account).replace("", "").replace("", "")) } + }, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = onRegister, + ), + ) + } + } + } + + // ── Security Badge ──────────────────────────────────────────── + Box( + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 24.dp), + contentAlignment = Alignment.Center, + ) { + Row( + modifier = Modifier + .clip(RoundedCornerShape(9999.dp)) + .background(AccentPurpleContainer.copy(alpha = 0.15f)) + .padding(horizontal = 16.dp, vertical = 8.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + Icons.Outlined.VerifiedUser, + contentDescription = null, + tint = AccentPurple, + modifier = Modifier.size(16.dp), + ) + Text( + text = stringResource(R.string.login_security_badge).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = AccentPurple, + letterSpacing = 1.sp, + ) + } + } + + // ── Footer ──────────────────────────────────────────────────── + LoginFooter( + onHelp = {}, + onTerms = {}, + ) + } + } +} + +private suspend fun scrollFieldNearTop( + scrollState: androidx.compose.foundation.ScrollState, + fieldTopPx: Float, + desiredTopPx: Float, +) { + if (fieldTopPx <= 0f) return + + val scrollDelta = fieldTopPx - desiredTopPx + if (scrollDelta > 0f) { + scrollState.animateScrollBy(scrollDelta) + } +} + +// ─── Hero Section ───────────────────────────────────────────────────────────── +@Composable +private fun HeroSection() { + Box( + modifier = Modifier + .fillMaxWidth() + .height(280.dp) + .graphicsLayer { + // Brand slope clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%) + clip = true + shape = BrandSlopeShape + }, + ) { + // Hero image (placeholder) + AsyncImage( + model = null, // TODO: ganti dengan URL gambar marketplace + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier + .fillMaxSize() + .background(SurfaceContainerLow), // fallback placeholder color + ) + + // Gradient overlay bawah ke atas + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf(Color.Transparent, Background), + startY = 80f, + ) + ) + ) + + // Text overlay + Column( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(start = 24.dp, bottom = 48.dp), + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + Text( + text = stringResource(R.string.login_welcome_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = BrandRed, + fontWeight = FontWeight.Bold, + letterSpacing = 2.sp, + ) + Text( + text = buildAnnotatedString { + val lines = stringResource(R.string.login_hero_headline).split("\n") + withStyle(SpanStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 36.sp, + color = OnSurface, + )) { append(lines.firstOrNull() ?: "") } + append("\n") + withStyle(SpanStyle( + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 36.sp, + color = BrandRed, + )) { append(lines.getOrNull(1) ?: "") } + }, + ) + } + } +} + +// ─── Brand Slope Shape ──────────────────────────────────────────────────────── +private val BrandSlopeShape = object : androidx.compose.ui.graphics.Shape { + override fun createOutline( + size: androidx.compose.ui.geometry.Size, + layoutDirection: androidx.compose.ui.unit.LayoutDirection, + density: androidx.compose.ui.unit.Density, + ): androidx.compose.ui.graphics.Outline { + val path = androidx.compose.ui.graphics.Path().apply { + moveTo(0f, 0f) + lineTo(size.width, 0f) + lineTo(size.width, size.height * 0.85f) + lineTo(0f, size.height) + close() + } + return androidx.compose.ui.graphics.Outline.Generic(path) + } +} + +// ─── Google Sign-In Button ──────────────────────────────────────────────────── +@Composable +private fun GoogleSignInButton(onClick: () -> Unit) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = OnSurface.copy(alpha = 0.06f)), + onClick = onClick, + ) + .padding(vertical = 14.dp), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + // Google G logo (SVG re-created via Canvas) + GoogleLogo(modifier = Modifier.size(20.dp)) + Spacer(modifier = Modifier.size(12.dp)) + Text( + text = stringResource(R.string.login_google), + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + color = OnSurface, + ) + } +} + +@Composable +private fun GoogleLogo(modifier: Modifier = Modifier) { + androidx.compose.foundation.Canvas(modifier = modifier) { + val w = size.width + val h = size.height + + // Blue path (top-right) + drawArc( + color = Color(0xFF4285F4), + startAngle = -90f, sweepAngle = 90f, useCenter = false, + size = androidx.compose.ui.geometry.Size(w, h), + style = androidx.compose.ui.graphics.drawscope.Stroke(width = w * 0.22f), + ) + // Green path (bottom) + drawArc( + color = Color(0xFF34A853), + startAngle = 0f, sweepAngle = 90f, useCenter = false, + size = androidx.compose.ui.geometry.Size(w, h), + style = androidx.compose.ui.graphics.drawscope.Stroke(width = w * 0.22f), + ) + // Yellow path (left) + drawArc( + color = Color(0xFFFBBC05), + startAngle = 90f, sweepAngle = 90f, useCenter = false, + size = androidx.compose.ui.geometry.Size(w, h), + style = androidx.compose.ui.graphics.drawscope.Stroke(width = w * 0.22f), + ) + // Red path (top-left) + drawArc( + color = Color(0xFFEA4335), + startAngle = 180f, sweepAngle = 90f, useCenter = false, + size = androidx.compose.ui.geometry.Size(w, h), + style = androidx.compose.ui.graphics.drawscope.Stroke(width = w * 0.22f), + ) + } +} + +// ─── Footer ─────────────────────────────────────────────────────────────────── +@Composable +private fun LoginFooter( + onHelp: () -> Unit, + onTerms: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .background(Color(0xFFF8FAFC)) + .padding(vertical = 28.dp, horizontal = 24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = "INA Trading", + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Black, + fontSize = 15.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.footer_copyright).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 0.5.sp, + ) + Row(horizontalArrangement = Arrangement.spacedBy(24.dp)) { + Text( + text = stringResource(R.string.footer_help).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 1.sp, + modifier = Modifier.clickable(onClick = onHelp), + ) + Text( + text = stringResource(R.string.footer_terms).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 1.sp, + modifier = Modifier.clickable(onClick = onTerms), + ) + } + } +} + +// ─── Extension helper ───────────────────────────────────────────────────────── +@Composable +private fun Spacer(modifier: Modifier) { + androidx.compose.foundation.layout.Spacer(modifier = modifier) +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginViewModel.kt new file mode 100644 index 0000000..0a0ef4c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/LoginViewModel.kt @@ -0,0 +1,70 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class LoginUiState( + val email: String = "", + val password: String = "", + val isPasswordVisible: Boolean = false, + val isLoading: Boolean = false, + val errorMessage: String? = null, + val isSuccess: Boolean = false, +) + +@HiltViewModel +class LoginViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(LoginUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + fun onEmailChange(value: String) { + _uiState.update { it.copy(email = value, errorMessage = null) } + } + + fun onPasswordChange(value: String) { + _uiState.update { it.copy(password = value, errorMessage = null) } + } + + fun togglePasswordVisibility() { + _uiState.update { it.copy(isPasswordVisible = !it.isPasswordVisible) } + } + + fun login() { + if (!isInputValid()) return + + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, errorMessage = null) } + authRepository.login(_uiState.value.email, _uiState.value.password) + .onSuccess { + _uiState.update { it.copy(isLoading = false, isSuccess = true) } + } + .onFailure { e -> + _uiState.update { it.copy(isLoading = false, errorMessage = e.message) } + } + } + } + + fun loginWithGoogle() { + // TODO: Implement Google Sign-In + } + + fun clearError() { + _uiState.update { it.copy(errorMessage = null) } + } + + private fun isInputValid(): Boolean { + val state = _uiState.value + return state.email.isNotBlank() && state.password.isNotBlank() + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterScreen.kt new file mode 100644 index 0000000..d64e0ae --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterScreen.kt @@ -0,0 +1,405 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Lock +import androidx.compose.material.icons.outlined.Mail +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.PhoneIphone +import androidx.compose.material.icons.outlined.Visibility +import androidx.compose.material.icons.outlined.VisibilityOff +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.InterFontFamily +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.OutlineVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +@Composable +fun RegisterScreen( + onBack: () -> Unit, + onRegisterSuccess: () -> Unit, + onLoginClick: () -> Unit, + viewModel: RegisterViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + + LaunchedEffect(uiState.isSuccess) { + if (uiState.isSuccess) onRegisterSuccess() + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Box( + modifier = Modifier + .fillMaxSize() + // Brand slope background: diagonal gradient kanan bawah + .drawBehind { + val breakX = size.width * 0.0f + val breakY = size.height * 0.6f + drawRect( + brush = Brush.linearGradient( + colors = listOf(Color.Transparent, SurfaceContainerHighest.copy(alpha = 0.4f)), + start = Offset(breakX, breakY), + end = Offset(size.width, size.height), + ) + ) + } + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .verticalScroll(rememberScrollState()) + .padding(horizontal = 24.dp) + .padding(bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(0.dp), + ) { + // ── Editorial Headline ──────────────────────────────────── + Spacer(modifier = Modifier.height(32.dp)) + + Text( + text = stringResource(R.string.register_label).uppercase(), + style = MaterialTheme.typography.labelMedium, + color = AccentBlue, + fontWeight = FontWeight.SemiBold, + letterSpacing = 1.5.sp, + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = stringResource(R.string.register_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + color = OnSurface, + lineHeight = 40.sp, + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = stringResource(R.string.register_subtitle), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + + Spacer(modifier = Modifier.height(28.dp)) + + // ── Form Card ───────────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // Full Name + InaTextField( + value = uiState.name, + onValueChange = viewModel::onNameChange, + label = stringResource(R.string.register_full_name_label), + placeholder = stringResource(R.string.register_full_name_placeholder), + isError = uiState.errors.name != null, + errorMessage = if (uiState.errors.name != null) + stringResource(R.string.register_error_name_empty) else "", + trailingIcon = { + Icon( + Icons.Outlined.Person, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.5f), + modifier = Modifier.size(20.dp), + ) + }, + ) + + // Email + InaTextField( + value = uiState.email, + onValueChange = viewModel::onEmailChange, + label = stringResource(R.string.login_email_label), + placeholder = stringResource(R.string.login_email_placeholder), + isError = uiState.errors.email != null, + errorMessage = when (uiState.errors.email) { + "invalid" -> stringResource(R.string.register_error_invalid_email) + else -> if (uiState.errors.email != null) + stringResource(R.string.register_error_invalid_email) else "" + }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email), + trailingIcon = { + Icon( + Icons.Outlined.Mail, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.5f), + modifier = Modifier.size(20.dp), + ) + }, + ) + + // Phone + InaTextField( + value = uiState.phone, + onValueChange = viewModel::onPhoneChange, + label = stringResource(R.string.register_phone_label), + placeholder = stringResource(R.string.register_phone_placeholder), + isError = uiState.errors.phone != null, + errorMessage = if (uiState.errors.phone != null) + stringResource(R.string.register_error_phone_empty) else "", + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Phone), + trailingIcon = { + Icon( + Icons.Outlined.PhoneIphone, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.5f), + modifier = Modifier.size(20.dp), + ) + }, + ) + + // Password + InaTextField( + value = uiState.password, + onValueChange = viewModel::onPasswordChange, + label = stringResource(R.string.login_password_label), + placeholder = stringResource(R.string.register_password_placeholder), + isPassword = !uiState.isPasswordVisible, + isError = uiState.errors.password != null, + errorMessage = when (uiState.errors.password) { + "too_short" -> stringResource(R.string.register_error_password_too_short) + else -> if (uiState.errors.password != null) + stringResource(R.string.register_error_password_too_short) else "" + }, + trailingIcon = { + Icon( + imageVector = if (uiState.isPasswordVisible) + Icons.Outlined.VisibilityOff else Icons.Outlined.Visibility, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier + .size(20.dp) + .clickable(onClick = viewModel::togglePasswordVisibility), + ) + }, + ) + + // Confirm Password + InaTextField( + value = uiState.confirmPassword, + onValueChange = viewModel::onConfirmPasswordChange, + label = stringResource(R.string.register_confirm_password_label), + placeholder = stringResource(R.string.register_confirm_password_placeholder), + isPassword = !uiState.isConfirmPasswordVisible, + isError = uiState.errors.confirmPassword != null, + errorMessage = if (uiState.errors.confirmPassword != null) + stringResource(R.string.register_error_password_mismatch) else "", + trailingIcon = { + Icon( + imageVector = if (uiState.isConfirmPasswordVisible) + Icons.Outlined.VisibilityOff else Icons.Outlined.Lock, + contentDescription = null, + tint = OnSurfaceVariant.copy( + alpha = if (uiState.confirmPassword.isEmpty()) 0.5f else 1f + ), + modifier = Modifier + .size(20.dp) + .clickable( + enabled = uiState.confirmPassword.isNotEmpty(), + onClick = viewModel::toggleConfirmPasswordVisibility, + ), + ) + }, + ) + + // API error banner + if (uiState.apiError != null) { + Text( + text = uiState.apiError!!, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) + } + + // CTA + Spacer(modifier = Modifier.height(4.dp)) + InaPrimaryButton( + text = stringResource(R.string.register_cta), + onClick = viewModel::register, + isLoading = uiState.isLoading, + ) + + // Divider + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + HorizontalDivider( + modifier = Modifier.weight(1f), + color = OutlineVariant.copy(alpha = 0.3f), + ) + Text( + text = stringResource(R.string.register_or_with).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 1.5.sp, + ) + HorizontalDivider( + modifier = Modifier.weight(1f), + color = OutlineVariant.copy(alpha = 0.3f), + ) + } + + // Google button (reuse dari LoginScreen) + RegisterGoogleButton(onClick = viewModel::registerWithGoogle) + } + + // ── "Already have account?" ─────────────────────────────── + Spacer(modifier = Modifier.height(24.dp)) + Box( + modifier = Modifier.fillMaxWidth(), + contentAlignment = Alignment.Center, + ) { + Text( + text = buildAnnotatedString { + withStyle(SpanStyle( + fontFamily = InterFontFamily, + fontSize = 13.sp, + color = OnSurfaceVariant, + )) { append(stringResource(R.string.register_have_account) + .replace("", "").replace("", "")) } + }, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = onLoginClick, + ), + ) + } + + // ── Terms of Service ────────────────────────────────────── + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = buildAnnotatedString { + val full = stringResource(R.string.register_terms) + val terms = stringResource(R.string.settings_terms) + val priv = stringResource(R.string.settings_privacy_policy) + + // Render teks biasa, link underline untuk terms & privacy + val baseStyle = SpanStyle( + fontFamily = InterFontFamily, + fontSize = 11.sp, + color = OnSurfaceVariant.copy(alpha = 0.6f), + ) + val linkStyle = baseStyle.copy( + textDecoration = TextDecoration.Underline, + color = OnSurfaceVariant.copy(alpha = 0.8f), + ) + withStyle(baseStyle) { + append("Dengan mendaftar, Anda menyetujui ") + } + withStyle(linkStyle) { append(terms) } + withStyle(baseStyle) { append(" serta ") } + withStyle(linkStyle) { append(priv) } + withStyle(baseStyle) { + append(" INA Trading untuk mendukung pertumbuhan UMKM Nasional.") + } + }, + textAlign = TextAlign.Center, + modifier = Modifier.padding(horizontal = 8.dp), + ) + } + } + } +} + +@Composable +private fun RegisterGoogleButton(onClick: () -> Unit) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = OnSurface.copy(alpha = 0.06f)), + onClick = onClick, + ) + .padding(vertical = 14.dp), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + // Google G logo + androidx.compose.foundation.Canvas(modifier = Modifier.size(20.dp)) { + val w = size.width + val h = size.height + val stroke = androidx.compose.ui.graphics.drawscope.Stroke(width = w * 0.22f) + drawArc(Color(0xFF4285F4), -90f, 90f, false, size = androidx.compose.ui.geometry.Size(w, h), style = stroke) + drawArc(Color(0xFF34A853), 0f, 90f, false, size = androidx.compose.ui.geometry.Size(w, h), style = stroke) + drawArc(Color(0xFFFBBC05), 90f, 90f, false, size = androidx.compose.ui.geometry.Size(w, h), style = stroke) + drawArc(Color(0xFFEA4335), 180f, 90f, false, size = androidx.compose.ui.geometry.Size(w, h), style = stroke) + } + Spacer(modifier = Modifier.size(12.dp)) + Text( + text = stringResource(R.string.login_google), + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + color = OnSurface, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterSuccessScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterSuccessScreen.kt new file mode 100644 index 0000000..6471ad4 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterSuccessScreen.kt @@ -0,0 +1,98 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.theme.BrandNavy +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily + +@Composable +fun RegisterSuccessScreen( + onLoginClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background), + ) { + InaInnerTopAppBar( + onBack = null, // no back on success page + ) + + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Box( + modifier = Modifier + .size(96.dp) + .background(BrandRed.copy(alpha = 0.10f), CircleShape), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Filled.CheckCircle, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(56.dp), + ) + } + + Spacer(modifier = Modifier.height(32.dp)) + + Text( + text = stringResource(R.string.register_success_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + color = BrandNavy, + textAlign = TextAlign.Center, + ) + + Spacer(modifier = Modifier.height(12.dp)) + + Text( + text = stringResource(R.string.register_success_subtitle), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Normal, + fontSize = 15.sp, + color = MaterialTheme.colorScheme.onSurfaceVariant, + textAlign = TextAlign.Center, + lineHeight = 22.sp, + ) + + Spacer(modifier = Modifier.height(48.dp)) + + InaPrimaryButton( + text = stringResource(R.string.register_success_cta), + onClick = onLoginClick, + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterViewModel.kt new file mode 100644 index 0000000..e15dbf7 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/auth/presentation/RegisterViewModel.kt @@ -0,0 +1,133 @@ +package id.iiyh.inatrading.feature.auth.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class RegisterFormError( + val name: String? = null, + val email: String? = null, + val phone: String? = null, + val password: String? = null, + val confirmPassword: String? = null, +) + +data class RegisterUiState( + val name: String = "", + val email: String = "", + val phone: String = "", + val password: String = "", + val confirmPassword: String = "", + val isPasswordVisible: Boolean = false, + val isConfirmPasswordVisible: Boolean = false, + val isLoading: Boolean = false, + val errors: RegisterFormError = RegisterFormError(), + val apiError: String? = null, + val isSuccess: Boolean = false, +) + +@HiltViewModel +class RegisterViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(RegisterUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + fun onNameChange(value: String) = + _uiState.update { it.copy(name = value, errors = it.errors.copy(name = null), apiError = null) } + + fun onEmailChange(value: String) = + _uiState.update { it.copy(email = value, errors = it.errors.copy(email = null), apiError = null) } + + fun onPhoneChange(value: String) = + _uiState.update { it.copy(phone = value, errors = it.errors.copy(phone = null), apiError = null) } + + fun onPasswordChange(value: String) { + _uiState.update { + it.copy( + password = value, + apiError = null, + errors = it.errors.copy( + password = null, + confirmPassword = if (it.confirmPassword.isNotEmpty() && value != it.confirmPassword) + "mismatch" else null, + ) + ) + } + } + + fun onConfirmPasswordChange(value: String) { + _uiState.update { + it.copy( + confirmPassword = value, + errors = it.errors.copy( + confirmPassword = if (value.isNotEmpty() && value != it.password) "mismatch" else null + ) + ) + } + } + + fun togglePasswordVisibility() = + _uiState.update { it.copy(isPasswordVisible = !it.isPasswordVisible) } + + fun toggleConfirmPasswordVisibility() = + _uiState.update { it.copy(isConfirmPasswordVisible = !it.isConfirmPasswordVisible) } + + fun register() { + if (!validate()) return + + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, apiError = null) } + val s = _uiState.value + authRepository.register( + name = s.name, + email = s.email, + mobile = s.phone, + password = s.password, + ).onSuccess { + _uiState.update { it.copy(isLoading = false, isSuccess = true) } + }.onFailure { e -> + _uiState.update { it.copy(isLoading = false, apiError = e.message) } + } + } + } + + fun registerWithGoogle() { + // TODO: Implement Google Sign-In + } + + private fun validate(): Boolean { + val s = _uiState.value + val errors = RegisterFormError( + name = if (s.name.isBlank()) "empty" else null, + email = when { + s.email.isBlank() -> "empty" + !android.util.Patterns.EMAIL_ADDRESS.matcher(s.email).matches() -> "invalid" + else -> null + }, + phone = if (s.phone.isBlank()) "empty" else null, + password = when { + s.password.isBlank() -> "empty" + s.password.length < 8 -> "too_short" + else -> null + }, + confirmPassword = when { + s.confirmPassword.isBlank() -> "empty" + s.confirmPassword != s.password -> "mismatch" + else -> null + }, + ) + _uiState.update { it.copy(errors = errors) } + return errors.name == null && errors.email == null && + errors.phone == null && errors.password == null && + errors.confirmPassword == null + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/cart/data/model/CartModels.kt b/app/src/main/java/id/iiyh/inatrading/feature/cart/data/model/CartModels.kt new file mode 100644 index 0000000..b36f680 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/cart/data/model/CartModels.kt @@ -0,0 +1,57 @@ +package id.iiyh.inatrading.feature.cart.data.model + +data class CartCreateRequest( + val sellerId: String, + val quantity: Int, + val productModelId: String, + val productMeasurementId: String = "", + val warehouseId: String, +) + +data class CartUpdateRequest( + val cartItemId: String, + val quantity: Int, +) + +data class CartSeller( + val id: String? = null, + val image: String? = null, + val name: String? = null, +) + +data class CartProductModel( + val currency: String? = null, + val id: String? = null, + val image: String? = null, + val name: String? = null, + val price: Double? = null, +) + +data class CartProductMeasurement( + val id: String? = null, + val name: String? = null, +) + +data class CartItem( + val id: String? = null, + val productMeasurement: CartProductMeasurement? = null, + val productModel: CartProductModel? = null, + val quantity: Int? = null, + val warehouseId: String? = null, +) + +data class CartGroup( + val cartItems: List = emptyList(), + val id: String? = null, + val seller: CartSeller? = null, +) + +data class CartListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/cart/data/repository/CartRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/cart/data/repository/CartRepositoryImpl.kt new file mode 100644 index 0000000..862e2b1 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/cart/data/repository/CartRepositoryImpl.kt @@ -0,0 +1,127 @@ +package id.iiyh.inatrading.feature.cart.data.repository + +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.cart.data.model.CartCreateRequest +import id.iiyh.inatrading.feature.cart.data.model.CartGroup +import id.iiyh.inatrading.feature.cart.data.model.CartUpdateRequest +import id.iiyh.inatrading.feature.cart.domain.CartRepository +import retrofit2.HttpException +import javax.inject.Inject + +class CartRepositoryImpl @Inject constructor( + private val apiService: ApiService, +) : CartRepository { + + override suspend fun getCartGroups(): Result> { + return try { + val response = apiService.getCarts() + if (!response.isSuccess) { + Result.failure(Exception(response.responseDesc ?: "Gagal memuat keranjang")) + } else { + Result.success(response.rows.sanitized()) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getCartCount(): Result { + return try { + val response = apiService.getCarts() + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat keranjang")) + } + val sanitizedGroups = response.rows.sanitized() + val count = sanitizedGroups.sumOf { it.cartItems.size } + .takeIf { it > 0 } + ?: sanitizedGroups.sumOf { group -> + group.cartItems.sumOf { item -> item.quantity ?: 0 } + }.takeIf { it > 0 } + ?: response.totalItem.takeIf { it > 0 } + ?: 0 + Result.success(count) + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun updateCartQuantity( + cartItemId: String, + quantityDelta: Int, + ): Result { + return try { + val response = apiService.updateCart( + CartUpdateRequest( + cartItemId = cartItemId, + quantity = quantityDelta, + ) + ) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal memperbarui jumlah keranjang")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun addToCart( + sellerId: String, + productModelId: String, + warehouseId: String, + quantity: Int, + productMeasurementId: String, + ): Result { + return try { + val response = apiService.createCart( + CartCreateRequest( + sellerId = sellerId, + quantity = quantity, + productModelId = productModelId, + productMeasurementId = productMeasurementId, + warehouseId = warehouseId, + ) + ) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal menambahkan produk ke keranjang")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + private fun HttpException.toRepositoryException(): Exception { + if (code() == 401) return SessionExpiredException() + return Exception(parseMessage()) + } + + private fun HttpException.parseMessage(): String { + return try { + val body = response()?.errorBody()?.string() ?: return "Terjadi kesalahan (${code()})" + val match = Regex(""""responseDesc"\s*:\s*"([^"]+)"""").find(body) + match?.groupValues?.get(1) ?: "Terjadi kesalahan (${code()})" + } catch (_: Exception) { + "Terjadi kesalahan (${code()})" + } + } + + private fun List.sanitized(): List { + return map { group -> + group.copy( + cartItems = group.cartItems.filter { item -> (item.quantity ?: 0) > 0 } + ) + }.filter { it.cartItems.isNotEmpty() } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/cart/domain/CartRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/cart/domain/CartRepository.kt new file mode 100644 index 0000000..85a469e --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/cart/domain/CartRepository.kt @@ -0,0 +1,19 @@ +package id.iiyh.inatrading.feature.cart.domain + +import id.iiyh.inatrading.feature.cart.data.model.CartGroup + +interface CartRepository { + suspend fun getCartGroups(): Result> + suspend fun getCartCount(): Result + suspend fun updateCartQuantity( + cartItemId: String, + quantityDelta: Int, + ): Result + suspend fun addToCart( + sellerId: String, + productModelId: String, + warehouseId: String, + quantity: Int = 1, + productMeasurementId: String = "", + ): Result +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartScreen.kt new file mode 100644 index 0000000..e270b8b --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartScreen.kt @@ -0,0 +1,738 @@ +package id.iiyh.inatrading.feature.cart.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.automirrored.outlined.ArrowForward +import androidx.compose.material.icons.automirrored.outlined.Login +import androidx.compose.material.icons.outlined.Add +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material.icons.outlined.Remove +import androidx.compose.material.icons.outlined.Storefront +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaLogo +import id.iiyh.inatrading.core.ui.components.LogoSize +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnAccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.OutlineVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.cart.data.model.CartGroup +import id.iiyh.inatrading.feature.cart.data.model.CartItem +import java.text.NumberFormat +import java.util.Locale + +@Composable +fun CartScreen( + onBack: () -> Unit, + onLoginRequired: () -> Unit, + viewModel: CartViewModel, +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + + LaunchedEffect(uiState.isLoggedIn) { + if (uiState.isLoggedIn) { + viewModel.loadCart() + } else { + viewModel.clearError() + } + } + + LaunchedEffect(uiState.errorMessage, uiState.cartGroups.isNotEmpty()) { + val message = uiState.errorMessage ?: return@LaunchedEffect + if (uiState.cartGroups.isNotEmpty()) { + snackbarHostState.showSnackbar(message) + viewModel.clearError() + } + } + + Scaffold( + topBar = { CartTopBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + bottomBar = { + if (uiState.isLoggedIn && uiState.cartGroups.isNotEmpty()) { + CartFooter( + totalPrice = uiState.totalPrice, + ) + } + }, + containerColor = Background, + ) { innerPadding -> + Box( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(220.dp) + .background(SurfaceContainerHighest.copy(alpha = 0.6f)), + ) + + when { + !uiState.isLoggedIn -> { + CartGuestState( + onLoginRequired = onLoginRequired, + modifier = Modifier.fillMaxSize(), + ) + } + + uiState.isLoadingCart -> { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + + uiState.errorMessage != null && uiState.cartGroups.isEmpty() -> { + CartMessageState( + title = stringResource(R.string.cart_error_title), + body = uiState.errorMessage ?: "", + actionLabel = stringResource(R.string.cart_retry), + onAction = viewModel::loadCart, + modifier = Modifier.fillMaxSize(), + ) + } + + uiState.cartGroups.isEmpty() -> { + CartMessageState( + title = stringResource(R.string.cart_empty_title), + body = stringResource(R.string.cart_empty_body), + actionLabel = stringResource(R.string.cart_browse_products), + onAction = onBack, + modifier = Modifier.fillMaxSize(), + ) + } + + else -> { + CartContent( + updatingItemIds = uiState.updatingItemIds, + groups = uiState.cartGroups, + onDecreaseQuantity = { item -> + viewModel.changeQuantity( + cartItemId = item.id.orEmpty(), + currentQuantity = item.quantity ?: 0, + quantityDelta = -1, + ) + }, + onIncreaseQuantity = { item -> + viewModel.changeQuantity( + cartItemId = item.id.orEmpty(), + currentQuantity = item.quantity ?: 0, + quantityDelta = 1, + ) + }, + modifier = Modifier.fillMaxSize(), + ) + } + } + } + } +} + +@Composable +private fun CartTopBar( + onBack: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.86f)) + .padding(horizontal = 20.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + IconButton(onClick = onBack) { + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + tint = BrandRed, + ) + } + InaLogo(size = LogoSize.Small) + } + + Spacer(modifier = Modifier.size(40.dp)) + } +} + +@Composable +private fun CartContent( + updatingItemIds: Set, + groups: List, + onDecreaseQuantity: (CartItem) -> Unit, + onIncreaseQuantity: (CartItem) -> Unit, + modifier: Modifier = Modifier, +) { + LazyColumn( + modifier = modifier, + contentPadding = PaddingValues( + start = 24.dp, + end = 24.dp, + top = 28.dp, + bottom = 180.dp, + ), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + item { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = stringResource(R.string.cart_eyebrow), + color = AccentPurple, + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.ExtraBold, + letterSpacing = 2.sp, + ) + Text( + text = stringResource(R.string.cart_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + lineHeight = 38.sp, + color = OnSurface, + ) + } + } + + items(groups, key = { it.id ?: it.seller?.id.orEmpty() }) { group -> + SellerCartSection( + group = group, + updatingItemIds = updatingItemIds, + onDecreaseQuantity = onDecreaseQuantity, + onIncreaseQuantity = onIncreaseQuantity, + ) + } + + item { + Surface( + color = AccentBlue.copy(alpha = 0.06f), + shape = RoundedCornerShape(20.dp), + tonalElevation = 0.dp, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(18.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp), + ) { + Box( + modifier = Modifier + .size(40.dp) + .clip(CircleShape) + .background(AccentBlueContainer), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Storefront, + contentDescription = null, + tint = OnAccentBlueContainer, + ) + } + Column(modifier = Modifier.weight(1f)) { + Text( + text = stringResource(R.string.cart_checkout_note_title), + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + Text( + text = stringResource(R.string.cart_checkout_note_body), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + ) + } + } + } + } + } +} + +@Composable +private fun SellerCartSection( + group: CartGroup, + updatingItemIds: Set, + onDecreaseQuantity: (CartItem) -> Unit, + onIncreaseQuantity: (CartItem) -> Unit, +) { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .size(32.dp) + .clip(CircleShape) + .background(AccentBlueContainer), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Storefront, + contentDescription = null, + tint = AccentBlue, + modifier = Modifier.size(18.dp), + ) + } + Column(verticalArrangement = Arrangement.spacedBy(2.dp)) { + Text( + text = group.seller?.name.orEmpty().ifBlank { + stringResource(R.string.cart_seller_fallback) + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.cart_seller_subtitle), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + ) + } + } + + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + group.cartItems.forEach { item -> + CartItemCard( + item = item, + isUpdating = item.id != null && item.id in updatingItemIds, + onDecreaseQuantity = { onDecreaseQuantity(item) }, + onIncreaseQuantity = { onIncreaseQuantity(item) }, + ) + } + } + } +} + +@Composable +private fun CartItemCard( + item: CartItem, + isUpdating: Boolean, + onDecreaseQuantity: () -> Unit, + onIncreaseQuantity: () -> Unit, +) { + Surface( + color = SurfaceContainerLowest, + shape = RoundedCornerShape(24.dp), + shadowElevation = 2.dp, + ) { + BoxWithConstraints( + modifier = Modifier + .fillMaxWidth() + .padding(20.dp), + ) { + val compactLayout = maxWidth < 320.dp + val imageSize = if (compactLayout) 82.dp else 110.dp + val titleFontSize = if (compactLayout) 16.sp else 18.sp + val priceFontSize = if (compactLayout) 18.sp else 22.sp + + Row( + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + AsyncImage( + model = item.productModel?.image, + contentDescription = item.productModel?.name, + contentScale = ContentScale.Crop, + modifier = Modifier + .size(imageSize) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLow), + ) + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(if (compactLayout) 10.dp else 14.dp), + ) { + Row( + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + modifier = Modifier.fillMaxWidth(), + ) { + Text( + text = item.productModel?.name.orEmpty().ifBlank { + stringResource(R.string.cart_item_name_fallback) + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = titleFontSize, + lineHeight = if (compactLayout) 20.sp else 22.sp, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.weight(1f), + ) + IconButton( + onClick = {}, + enabled = false, + modifier = Modifier + .alpha(0.45f) + .size(if (compactLayout) 32.dp else 40.dp), + ) { + Icon( + imageVector = Icons.Outlined.Delete, + contentDescription = stringResource(R.string.cart_delete), + tint = OnSurfaceVariant, + ) + } + } + + Text( + text = item.productModel?.price.toCurrency(), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = priceFontSize, + color = BrandRed, + ) + + item.productMeasurement?.name?.takeIf { it.isNotBlank() }?.let { measurement -> + Text( + text = measurement, + color = AccentPurple, + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.SemiBold, + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(AccentPurpleContainer) + .padding(horizontal = 10.dp, vertical = 5.dp), + ) + } + + if (compactLayout) { + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(8.dp), + horizontalAlignment = Alignment.End, + ) { + StockChip() + QuantityControl( + quantity = item.quantity ?: 0, + isUpdating = isUpdating, + canDecrease = (item.quantity ?: 0) > 1, + onDecrease = onDecreaseQuantity, + onIncrease = onIncreaseQuantity, + ) + } + } else { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + StockChip() + QuantityControl( + quantity = item.quantity ?: 0, + isUpdating = isUpdating, + canDecrease = (item.quantity ?: 0) > 1, + onDecrease = onDecreaseQuantity, + onIncrease = onIncreaseQuantity, + ) + } + } + } + } + } + } +} + +@Composable +private fun StockChip() { + Text( + text = stringResource(R.string.cart_stock_available), + color = AccentPurple, + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(AccentPurpleContainer.copy(alpha = 0.75f)) + .padding(horizontal = 12.dp, vertical = 8.dp), + ) +} + +@Composable +private fun QuantityControl( + quantity: Int, + isUpdating: Boolean, + canDecrease: Boolean, + onDecrease: () -> Unit, + onIncrease: () -> Unit, +) { + Row( + modifier = Modifier + .clip(RoundedCornerShape(14.dp)) + .background(SurfaceContainerLow) + .padding(4.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + QuantityButton( + icon = Icons.Outlined.Remove, + contentDescription = stringResource(R.string.cart_decrease_quantity), + enabled = canDecrease && !isUpdating, + onClick = onDecrease, + ) + if (isUpdating) { + CircularProgressIndicator( + color = BrandRed, + strokeWidth = 2.dp, + modifier = Modifier + .padding(horizontal = 10.dp) + .size(18.dp), + ) + } else { + Text( + text = quantity.toString(), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + color = OnSurface, + modifier = Modifier.padding(horizontal = 10.dp), + ) + } + QuantityButton( + icon = Icons.Outlined.Add, + contentDescription = stringResource(R.string.cart_increase_quantity), + enabled = !isUpdating, + onClick = onIncrease, + ) + } +} + +@Composable +private fun QuantityButton( + icon: androidx.compose.ui.graphics.vector.ImageVector, + contentDescription: String, + enabled: Boolean, + onClick: () -> Unit, +) { + IconButton( + onClick = onClick, + enabled = enabled, + modifier = Modifier + .size(28.dp) + .alpha(if (enabled) 1f else 0.45f), + ) { + Icon( + imageVector = icon, + contentDescription = contentDescription, + tint = OnSurface, + modifier = Modifier.size(16.dp), + ) + } +} + +@Composable +private fun CartFooter( + totalPrice: Double, +) { + Surface( + color = SurfaceContainerLowest.copy(alpha = 0.9f), + shadowElevation = 10.dp, + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding( + start = 24.dp, + end = 24.dp, + top = 18.dp, + bottom = 18.dp, + ), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + HorizontalDivider(color = OutlineVariant.copy(alpha = 0.45f)) + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth(), + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.cart_total_label), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + ) + Text( + text = totalPrice.toCurrency(), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 28.sp, + color = OnSurface, + ) + } + Button( + onClick = {}, + colors = ButtonDefaults.buttonColors( + containerColor = BrandRed, + contentColor = Color.White, + ), + shape = RoundedCornerShape(18.dp), + ) { + Text( + text = stringResource(R.string.cart_checkout), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + ) + Spacer(modifier = Modifier.size(8.dp)) + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowForward, + contentDescription = null, + ) + } + } + } + } +} + +@Composable +private fun CartGuestState( + onLoginRequired: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier.padding(24.dp), + contentAlignment = Alignment.Center, + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(R.string.cart_guest_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.cart_guest_body), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodyMedium, + ) + Button( + onClick = onLoginRequired, + colors = ButtonDefaults.buttonColors( + containerColor = BrandRed, + contentColor = Color.White, + ), + shape = RoundedCornerShape(16.dp), + ) { + Icon( + imageVector = Icons.AutoMirrored.Outlined.Login, + contentDescription = null, + ) + Spacer(modifier = Modifier.size(8.dp)) + Text( + text = stringResource(R.string.profile_guest_cta), + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun CartMessageState( + title: String, + body: String, + actionLabel: String, + onAction: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier.padding(24.dp), + contentAlignment = Alignment.Center, + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 28.sp, + color = OnSurface, + ) + Text( + text = body, + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodyMedium, + ) + TextButton(onClick = onAction) { + Text( + text = actionLabel, + color = BrandRed, + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun Double?.toCurrency(): String { + if (this == null || this <= 0.0) return stringResource(R.string.products_contact_price) + return NumberFormat.getCurrencyInstance(Locale.forLanguageTag("id-ID")) + .format(this) + .replace("Rp", "Rp ") +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartViewModel.kt new file mode 100644 index 0000000..2607524 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/cart/presentation/CartViewModel.kt @@ -0,0 +1,189 @@ +package id.iiyh.inatrading.feature.cart.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.local.SessionManager +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.cart.data.model.CartGroup +import id.iiyh.inatrading.feature.cart.domain.CartRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +data class CartUiState( + val itemCount: Int = 0, + val isLoggedIn: Boolean = false, + val isLoadingCart: Boolean = false, + val updatingItemIds: Set = emptySet(), + val cartGroups: List = emptyList(), + val totalPrice: Double = 0.0, + val errorMessage: String? = null, +) + +@HiltViewModel +class CartViewModel @Inject constructor( + private val cartRepository: CartRepository, + private val authRepository: AuthRepository, + sessionManager: SessionManager, +) : ViewModel() { + + private val _uiState = MutableStateFlow(CartUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + sessionManager.token + .distinctUntilChanged() + .onEach { token -> + val isLoggedIn = !token.isNullOrBlank() + _uiState.update { + it.copy( + isLoggedIn = isLoggedIn, + itemCount = if (isLoggedIn) it.itemCount else 0, + cartGroups = if (isLoggedIn) it.cartGroups else emptyList(), + totalPrice = if (isLoggedIn) it.totalPrice else 0.0, + errorMessage = null, + ) + } + if (isLoggedIn) { + refreshCartCount() + } + } + .launchIn(viewModelScope) + } + + fun refreshCartCount() { + if (!_uiState.value.isLoggedIn) { + _uiState.update { it.copy(itemCount = 0) } + return + } + + viewModelScope.launch { + cartRepository.getCartCount() + .onSuccess { count -> + _uiState.update { it.copy(itemCount = count) } + } + .onFailure(::handleFailure) + } + } + + fun onItemAdded(quantity: Int = 1) { + if (!_uiState.value.isLoggedIn || quantity <= 0) return + _uiState.update { state -> + state.copy(itemCount = state.itemCount + quantity) + } + } + + fun loadCart() { + if (!_uiState.value.isLoggedIn) { + _uiState.update { + it.copy( + isLoadingCart = false, + updatingItemIds = emptySet(), + cartGroups = emptyList(), + totalPrice = 0.0, + errorMessage = null, + ) + } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isLoadingCart = true, errorMessage = null) } + cartRepository.getCartGroups() + .onSuccess { groups -> + val totalPrice = groups.sumOf { group -> + group.cartItems.sumOf { item -> + (item.productModel?.price ?: 0.0) * (item.quantity ?: 0) + } + } + val count = groups.sumOf { group -> + group.cartItems.sumOf { item -> item.quantity ?: 0 } + } + _uiState.update { + it.copy( + isLoadingCart = false, + cartGroups = groups, + totalPrice = totalPrice, + itemCount = count, + updatingItemIds = emptySet(), + errorMessage = null, + ) + } + } + .onFailure { error -> + _uiState.update { it.copy(isLoadingCart = false) } + handleFailure(error) + } + } + } + + fun changeQuantity( + cartItemId: String, + currentQuantity: Int, + quantityDelta: Int, + ) { + if (!_uiState.value.isLoggedIn) return + if (cartItemId.isBlank()) return + if (currentQuantity + quantityDelta < 1) { + _uiState.update { + it.copy(errorMessage = "Jumlah minimum produk di keranjang adalah 1") + } + return + } + if (_uiState.value.updatingItemIds.contains(cartItemId)) return + + viewModelScope.launch { + _uiState.update { + it.copy(updatingItemIds = it.updatingItemIds + cartItemId) + } + cartRepository.updateCartQuantity( + cartItemId = cartItemId, + quantityDelta = quantityDelta, + ).onSuccess { + loadCart() + }.onFailure { error -> + _uiState.update { + it.copy(updatingItemIds = it.updatingItemIds - cartItemId) + } + handleFailure(error) + } + } + } + + fun clearError() { + _uiState.update { it.copy(errorMessage = null) } + } + + private fun handleFailure(error: Throwable) { + if (error is SessionExpiredException) { + viewModelScope.launch { authRepository.logout() } + _uiState.update { + it.copy( + itemCount = 0, + isLoggedIn = false, + isLoadingCart = false, + updatingItemIds = emptySet(), + cartGroups = emptyList(), + totalPrice = 0.0, + errorMessage = null, + ) + } + return + } + + _uiState.update { + it.copy( + isLoadingCart = false, + errorMessage = error.message ?: "Gagal memuat keranjang", + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/data/model/LocationItem.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/data/model/LocationItem.kt new file mode 100644 index 0000000..c42ea0c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/data/model/LocationItem.kt @@ -0,0 +1,32 @@ +package id.iiyh.inatrading.feature.explore.data.model + +data class LocationItem( + val address: String? = null, + val city: String? = null, + val contact: String? = null, + val country: String? = null, + val description: String? = null, + val id: String, + val image1: String? = null, + val image2: String? = null, + val image3: String? = null, + val image4: String? = null, + val image5: String? = null, + val latitude: Double? = null, + val longitude: Double? = null, + val name: String, + val province: String? = null, + val status: String? = null, + val type: String? = null, + val userInput: String? = null, +) + +data class LocationListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/data/repository/LocationRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/data/repository/LocationRepositoryImpl.kt new file mode 100644 index 0000000..c4c55bf --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/data/repository/LocationRepositoryImpl.kt @@ -0,0 +1,30 @@ +package id.iiyh.inatrading.feature.explore.data.repository + +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.feature.explore.domain.LocationPage +import id.iiyh.inatrading.feature.explore.domain.LocationRepository +import javax.inject.Inject + +class LocationRepositoryImpl @Inject constructor( + private val apiService: ApiService, +) : LocationRepository { + + override suspend fun getLocations(page: Int, limit: Int): Result { + return try { + val response = apiService.getLocations(page = page, limit = limit) + if (response.isSuccess) { + Result.success( + LocationPage( + items = response.rows, + totalItem = response.totalItem, + totalPage = response.totalPage, + ) + ) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal memuat lokasi")) + } + } catch (e: Exception) { + Result.failure(e) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/domain/LocationRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/domain/LocationRepository.kt new file mode 100644 index 0000000..09d3989 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/domain/LocationRepository.kt @@ -0,0 +1,13 @@ +package id.iiyh.inatrading.feature.explore.domain + +import id.iiyh.inatrading.feature.explore.data.model.LocationItem + +data class LocationPage( + val items: List, + val totalItem: Int, + val totalPage: Int, +) + +interface LocationRepository { + suspend fun getLocations(page: Int, limit: Int): Result +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreDetailScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreDetailScreen.kt new file mode 100644 index 0000000..28b04ad --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreDetailScreen.kt @@ -0,0 +1,651 @@ +package id.iiyh.inatrading.feature.explore.presentation + +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.outlined.Call +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Map +import androidx.compose.material.icons.outlined.QrCode2 +import androidx.compose.material.icons.outlined.Schedule +import androidx.compose.material.icons.outlined.ShoppingBag +import androidx.compose.material.icons.outlined.Verified +import androidx.compose.material3.Button +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnAccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.explore.data.model.LocationItem + +@Composable +fun ExploreDetailScreen( + location: LocationItem, + onBack: () -> Unit, +) { + val context = LocalContext.current + val gallery = listOfNotNull( + location.image1, + location.image2, + location.image3, + location.image4, + location.image5, + ).ifEmpty { listOf("") } + + Scaffold( + topBar = { + ExploreDetailTopBar( + title = location.name, + onBack = onBack, + ) + }, + floatingActionButton = { + FloatingActionButton( + onClick = {}, + containerColor = BrandRed, + contentColor = Color.White, + shape = RoundedCornerShape(20.dp), + ) { + Icon( + imageVector = Icons.Outlined.ShoppingBag, + contentDescription = stringResource(R.string.explore_detail_fab), + ) + } + }, + containerColor = Background, + ) { innerPadding -> + androidx.compose.foundation.lazy.LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .background(Background), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 12.dp, bottom = 120.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + item { + HeroGallerySection( + imageUrl = location.image1, + showVerified = location.status.equals("APPROVED", ignoreCase = true), + ) + } + + item { + TitleIdentitySection(location = location) + } + + item { + StorySection(location = location) + } + + item { + VisitSection( + location = location, + onOpenMaps = { + openLocationInMaps(context = context, location = location) + }, + ) + } + + item { + SignaturePrintsSection( + title = location.type ?: stringResource(R.string.explore_type_fallback), + gallery = gallery, + ) + } + } + } +} + +@Composable +private fun ExploreDetailTopBar( + title: String, + onBack: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.88f)) + .padding(horizontal = 20.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + DetailIconButton( + icon = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + onClick = onBack, + ) + Text( + text = title, + modifier = Modifier.weight(1f).padding(horizontal = 12.dp), + style = MaterialTheme.typography.titleLarge, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + color = BrandRed, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + DetailIconButton( + icon = Icons.Outlined.Verified, + contentDescription = stringResource(R.string.explore_detail_verified), + onClick = {}, + ) + } +} + +@Composable +private fun HeroGallerySection( + imageUrl: String?, + showVerified: Boolean, +) { + Box { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(4f / 5f) + .clip(RoundedCornerShape(28.dp)) + .background(SurfaceContainerLow), + ) { + if (!imageUrl.isNullOrBlank()) { + AsyncImage( + model = imageUrl, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } else { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(48.dp), + ) + } + } + } + + if (showVerified) { + Surface( + modifier = Modifier + .align(Alignment.BottomEnd) + .padding(end = 20.dp, bottom = 20.dp), + color = AccentPurple, + shape = RoundedCornerShape(24.dp), + shadowElevation = 6.dp, + ) { + Box( + modifier = Modifier + .size(88.dp) + .padding(8.dp), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Verified, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size(40.dp), + ) + } + } + } + } +} + +@Composable +private fun TitleIdentitySection(location: LocationItem) { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Surface( + color = AccentPurpleContainer, + shape = RoundedCornerShape(999.dp), + ) { + Text( + text = stringResource(R.string.explore_featured_eyebrow), + modifier = Modifier.padding(horizontal = 12.dp, vertical = 7.dp), + style = MaterialTheme.typography.labelMedium, + color = OnAccentPurpleContainer, + fontWeight = FontWeight.Bold, + ) + } + Text( + text = location.type.orEmpty().ifBlank { stringResource(R.string.explore_type_fallback) }, + style = MaterialTheme.typography.labelMedium, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + } + + Text( + text = location.name, + style = MaterialTheme.typography.displaySmall, + color = OnSurface, + fontWeight = FontWeight.ExtraBold, + ) + + Row( + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + Text( + text = location.address?.takeIf { it.isNotBlank() } ?: buildLocationLabel(location), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } + } +} + +@Composable +private fun StorySection(location: LocationItem) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(28.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.7f)) + .padding(vertical = 28.dp, horizontal = 20.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(10.dp)) { + Text( + text = stringResource(R.string.explore_detail_story_title), + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + fontWeight = FontWeight.Bold, + ) + Text( + text = location.description.orEmpty().ifBlank { + stringResource(R.string.explore_description_fallback) + }, + style = MaterialTheme.typography.bodyLarge, + color = OnSurfaceVariant, + ) + } + + Button( + onClick = {}, + shape = RoundedCornerShape(18.dp), + ) { + Text(text = stringResource(R.string.explore_detail_explore_collection)) + } + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + DetailInfoCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Call, + title = stringResource(R.string.explore_detail_contact), + value = location.contact ?: stringResource(R.string.explore_detail_value_unavailable), + iconTint = AccentBlue, + ) + DetailInfoCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Schedule, + title = stringResource(R.string.explore_detail_status), + value = location.status ?: stringResource(R.string.explore_detail_open_daily), + iconTint = AccentPurple, + ) + } + + DetailMerchantCard(location = location) + } +} + +@Composable +private fun DetailInfoCard( + modifier: Modifier = Modifier, + icon: ImageVector, + title: String, + value: String, + iconTint: Color, +) { + Surface( + modifier = modifier, + shape = RoundedCornerShape(22.dp), + color = SurfaceContainerLowest, + ) { + Column( + modifier = Modifier.padding(18.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = iconTint, + ) + Text( + text = title, + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + Text( + text = value, + style = MaterialTheme.typography.titleMedium, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } + } +} + +@Composable +private fun DetailMerchantCard(location: LocationItem) { + Surface( + shape = RoundedCornerShape(22.dp), + color = SurfaceContainerLowest, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(18.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.explore_detail_merchant_id), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + Text( + text = buildMerchantCode(location), + style = MaterialTheme.typography.titleMedium, + color = OnSurface, + ) + } + + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(14.dp)) + .background(SurfaceContainerLow), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.QrCode2, + contentDescription = null, + tint = OnSurface, + ) + } + } + } +} + +@Composable +private fun VisitSection( + location: LocationItem, + onOpenMaps: () -> Unit, +) { + Surface( + shape = RoundedCornerShape(28.dp), + color = SurfaceContainerLowest, + ) { + Column( + modifier = Modifier.padding(20.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(6.dp)) { + Text( + text = stringResource(R.string.explore_detail_visit_title), + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + fontWeight = FontWeight.ExtraBold, + ) + Text( + text = location.address?.takeIf { it.isNotBlank() } ?: buildLocationLabel(location), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(21f / 9f) + .clip(RoundedCornerShape(22.dp)) + .background(SurfaceContainerHighest), + ) { + if (!location.image1.isNullOrBlank()) { + AsyncImage( + model = location.image1, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + alpha = 0.45f, + ) + } + Box( + modifier = Modifier + .align(Alignment.Center) + .size(56.dp) + .clip(RoundedCornerShape(999.dp)) + .background(BrandRed), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = Color.White, + ) + } + } + + Button( + onClick = onOpenMaps, + modifier = Modifier.fillMaxWidth(), + shape = RoundedCornerShape(18.dp), + ) { + Icon( + imageVector = Icons.Outlined.Map, + contentDescription = null, + ) + Spacer(modifier = Modifier.width(8.dp)) + Text(text = stringResource(R.string.explore_detail_open_maps)) + } + } + } +} + +@Composable +private fun SignaturePrintsSection( + title: String, + gallery: List, +) { + Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = stringResource(R.string.explore_detail_signature_title), + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + fontWeight = FontWeight.ExtraBold, + ) + Text( + text = stringResource(R.string.profile_view_all), + style = MaterialTheme.typography.labelMedium, + color = BrandRed, + fontWeight = FontWeight.Bold, + ) + } + + Row( + modifier = Modifier + .fillMaxWidth() + .horizontalScroll(rememberScrollState()), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + gallery.forEachIndexed { index, imageUrl -> + Column( + modifier = Modifier.width(220.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(1f) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLow), + ) { + if (imageUrl.isNotBlank()) { + AsyncImage( + model = imageUrl, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } + } + Text( + text = title, + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + Text( + text = stringResource(R.string.explore_detail_gallery_item, index + 1), + style = MaterialTheme.typography.titleMedium, + color = OnSurface, + ) + } + } + } + } +} + +@Composable +private fun DetailIconButton( + icon: ImageVector, + contentDescription: String, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(999.dp)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = contentDescription, + tint = BrandRed, + ) + } +} + +private fun openLocationInMaps( + context: android.content.Context, + location: LocationItem, +) { + val label = Uri.encode(location.name) + val address = Uri.encode(location.address ?: buildLocationLabel(location)) + val uri = if (location.latitude != null && location.longitude != null) { + Uri.parse("geo:${location.latitude},${location.longitude}?q=${location.latitude},${location.longitude}($label)") + } else { + Uri.parse("geo:0,0?q=$address") + } + val intent = Intent(Intent.ACTION_VIEW, uri) + runCatching { context.startActivity(intent) } +} + +private fun buildLocationLabel(location: LocationItem): String { + return listOfNotNull( + location.city?.takeIf { it.isNotBlank() }, + location.province?.takeIf { it.isNotBlank() }, + location.country?.takeIf { it.isNotBlank() }, + ).joinToString(", ").ifBlank { "Indonesia" } +} + +private fun buildMerchantCode(location: LocationItem): String { + val prefix = location.name + .split(" ") + .filter { it.isNotBlank() } + .take(2) + .joinToString("") { it.take(1).uppercase() } + .ifBlank { "LOC" } + val area = (location.city ?: location.province ?: location.country) + .orEmpty() + .replace(Regex("[^A-Za-z]"), "") + .take(3) + .uppercase() + .ifBlank { "IDN" } + val suffix = location.id.takeLast(4).uppercase() + return "$prefix-$area-$suffix" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreNavViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreNavViewModel.kt new file mode 100644 index 0000000..d8c2a13 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreNavViewModel.kt @@ -0,0 +1,20 @@ +package id.iiyh.inatrading.feature.explore.presentation + +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.explore.data.model.LocationItem +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow + +@HiltViewModel +class ExploreNavViewModel @Inject constructor() : ViewModel() { + + private val _selectedLocation = MutableStateFlow(null) + val selectedLocation: StateFlow = _selectedLocation.asStateFlow() + + fun select(location: LocationItem) { + _selectedLocation.value = location + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreScreen.kt new file mode 100644 index 0000000..00b1639 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreScreen.kt @@ -0,0 +1,676 @@ +package id.iiyh.inatrading.feature.explore.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.GridItemSpan +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Search +import androidx.compose.material.icons.outlined.Tune +import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.snapshotFlow +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.OnAccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.explore.data.model.LocationItem +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filter + +@Composable +fun ExploreScreen( + onLocationClick: (LocationItem) -> Unit = {}, + viewModel: ExploreViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val gridState = rememberLazyGridState() + + LaunchedEffect(gridState) { + snapshotFlow { + val layoutInfo = gridState.layoutInfo + val lastVisible = layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: -1 + lastVisible to layoutInfo.totalItemsCount + } + .filter { (_, totalCount) -> totalCount > 0 } + .distinctUntilChanged() + .collect { (lastVisible, totalCount) -> + if (lastVisible >= totalCount - 5) { + viewModel.loadNextPage() + } + } + } + + val featuredItems = uiState.filteredItems.take(5) + val recommendedItems = uiState.filteredItems.drop(featuredItems.size) + + Box( + modifier = Modifier + .fillMaxSize() + .background(Background), + ) { + LazyVerticalGrid( + columns = GridCells.Fixed(2), + state = gridState, + modifier = Modifier.fillMaxSize(), + contentPadding = PaddingValues(start = 16.dp, end = 16.dp, top = 20.dp, bottom = 112.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + item(span = { GridItemSpan(maxLineSpan) }) { + ExploreHero( + totalItem = uiState.totalItem, + totalLoaded = uiState.items.size, + ) + } + + item(span = { GridItemSpan(maxLineSpan) }) { + ExploreSearchRow( + query = uiState.searchQuery, + onQueryChange = viewModel::onSearchQueryChange, + ) + } + + when { + uiState.isInitialLoading -> { + item(span = { GridItemSpan(maxLineSpan) }) { + ExploreCenterState( + title = stringResource(R.string.explore_loading_title), + body = stringResource(R.string.explore_loading_body), + loading = true, + ) + } + } + uiState.errorMessage != null && uiState.items.isEmpty() -> { + item(span = { GridItemSpan(maxLineSpan) }) { + ExploreCenterState( + title = stringResource(R.string.explore_error_title), + body = uiState.errorMessage.orEmpty(), + actionLabel = stringResource(R.string.explore_retry), + onAction = viewModel::loadInitial, + ) + } + } + uiState.filteredItems.isEmpty() -> { + item(span = { GridItemSpan(maxLineSpan) }) { + ExploreCenterState( + title = stringResource(R.string.explore_empty_title), + body = stringResource(R.string.explore_empty_body), + ) + } + } + else -> { + if (featuredItems.isNotEmpty()) { + item(span = { GridItemSpan(maxLineSpan) }) { + SectionHeader( + eyebrow = stringResource(R.string.explore_featured_eyebrow), + title = stringResource(R.string.explore_featured_title), + ) + } + + item(span = { GridItemSpan(maxLineSpan) }) { + FeaturedHeroCard( + location = featuredItems.first(), + onClick = { onLocationClick(featuredItems.first()) }, + ) + } + + if (featuredItems.size > 1) { + item(span = { GridItemSpan(maxLineSpan) }) { + FeaturedWideCard( + location = featuredItems[1], + onClick = { onLocationClick(featuredItems[1]) }, + ) + } + } + + featuredItems.drop(2).forEach { location -> + item { + FeaturedCompactCard( + location = location, + onClick = { onLocationClick(location) }, + ) + } + } + } + + if (recommendedItems.isNotEmpty()) { + item(span = { GridItemSpan(maxLineSpan) }) { + SectionHeader( + title = stringResource(R.string.explore_recommended_title), + body = stringResource(R.string.explore_recommended_body), + ) + } + + recommendedItems.forEach { location -> + item(key = location.id) { + RecommendedCard( + location = location, + onClick = { onLocationClick(location) }, + ) + } + } + } + + if (uiState.isAppending) { + item(span = { GridItemSpan(maxLineSpan) }) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 8.dp), + horizontalArrangement = Arrangement.Center, + ) { + CircularProgressIndicator( + modifier = Modifier.size(28.dp), + color = BrandRed, + strokeWidth = 2.5.dp, + ) + } + } + } + } + } + } + } +} + +@Composable +private fun ExploreHero( + totalItem: Int, + totalLoaded: Int, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(28.dp)) + .background( + brush = Brush.linearGradient( + listOf( + SurfaceContainerHighest, + Background, + ) + ) + ) + .padding(24.dp), + ) { + Box( + modifier = Modifier + .align(Alignment.TopEnd) + .width(140.dp) + .height(88.dp) + .clip(RoundedCornerShape(24.dp)) + .background(BrandRed.copy(alpha = 0.08f)), + ) + + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.explore_hero_eyebrow), + style = MaterialTheme.typography.labelMedium, + color = AccentPurple, + fontWeight = FontWeight.Bold, + ) + Text( + text = buildString { + append(stringResource(R.string.explore_hero_title_prefix)) + append(" ") + append(stringResource(R.string.explore_hero_title_emphasis)) + }, + style = MaterialTheme.typography.displaySmall, + color = OnSurface, + ) + Text( + text = stringResource(R.string.explore_hero_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + Surface( + color = AccentPurpleContainer, + shape = RoundedCornerShape(999.dp), + ) { + Text( + text = stringResource(R.string.explore_hero_counter, totalLoaded, totalItem), + modifier = Modifier.padding(horizontal = 14.dp, vertical = 8.dp), + style = MaterialTheme.typography.labelMedium, + color = OnAccentPurpleContainer, + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun ExploreSearchRow( + query: String, + onQueryChange: (String) -> Unit, +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + InaTextField( + value = query, + onValueChange = onQueryChange, + modifier = Modifier.weight(1f), + placeholder = stringResource(R.string.explore_search_placeholder), + leadingIcon = { + Icon( + imageVector = Icons.Outlined.Search, + contentDescription = null, + tint = OnSurfaceVariant, + ) + }, + ) + + Surface( + modifier = Modifier.size(52.dp), + shape = RoundedCornerShape(18.dp), + color = SurfaceContainerLow, + ) { + Box(contentAlignment = Alignment.Center) { + Icon( + imageVector = Icons.Outlined.Tune, + contentDescription = stringResource(R.string.explore_filter), + tint = OnSurface, + ) + } + } + } +} + +@Composable +private fun SectionHeader( + title: String, + eyebrow: String? = null, + body: String? = null, +) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + eyebrow?.let { + Text( + text = it, + style = MaterialTheme.typography.labelMedium, + color = AccentBlue, + fontWeight = FontWeight.Bold, + ) + } + Text( + text = title, + style = MaterialTheme.typography.headlineMedium, + color = OnSurface, + ) + body?.let { + Text( + text = it, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + } +} + +@Composable +private fun FeaturedHeroCard( + location: LocationItem, + onClick: () -> Unit, +) { + Surface( + onClick = onClick, + shape = RoundedCornerShape(28.dp), + color = SurfaceContainerLowest, + shadowElevation = 2.dp, + ) { + Column { + LocationImage( + imageUrl = location.image1, + modifier = Modifier + .fillMaxWidth() + .height(280.dp), + ) + Column( + modifier = Modifier.padding(20.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + LocationTagRow(location = location, featured = true) + Text( + text = location.name, + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + ) + Text( + text = location.description.orEmpty().ifBlank { + stringResource(R.string.explore_description_fallback) + }, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + } + } + } +} + +@Composable +private fun FeaturedWideCard( + location: LocationItem, + onClick: () -> Unit, +) { + Surface( + onClick = onClick, + shape = RoundedCornerShape(24.dp), + color = SurfaceContainerLowest, + shadowElevation = 1.dp, + ) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + LocationImage( + imageUrl = location.image1, + modifier = Modifier + .weight(0.38f) + .height(160.dp), + ) + Column( + modifier = Modifier + .weight(0.62f) + .padding(18.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + LocationTagRow(location = location) + Text( + text = location.name, + style = MaterialTheme.typography.titleLarge, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + LocationMeta(location = location) + } + } + } +} + +@Composable +private fun FeaturedCompactCard( + location: LocationItem, + onClick: () -> Unit, +) { + Surface( + onClick = onClick, + shape = RoundedCornerShape(22.dp), + color = SurfaceContainerLowest, + shadowElevation = 1.dp, + ) { + Column { + LocationImage( + imageUrl = location.image1, + modifier = Modifier + .fillMaxWidth() + .height(136.dp), + ) + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + Text( + text = location.type.orEmpty().ifBlank { + stringResource(R.string.explore_type_fallback) + }, + style = MaterialTheme.typography.labelSmall, + color = AccentBlue, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + Text( + text = location.name, + style = MaterialTheme.typography.titleMedium, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } + } + } +} + +@Composable +private fun RecommendedCard( + location: LocationItem, + onClick: () -> Unit, +) { + Column( + modifier = Modifier.clickable(onClick = onClick), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(4f / 3f) + .clip(RoundedCornerShape(22.dp)), + ) { + LocationImage( + imageUrl = location.image1, + modifier = Modifier.fillMaxSize(), + ) + Surface( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(12.dp), + shape = RoundedCornerShape(999.dp), + color = Color.White.copy(alpha = 0.92f), + ) { + Text( + text = location.type.orEmpty().ifBlank { + stringResource(R.string.explore_type_fallback) + }, + modifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp), + style = MaterialTheme.typography.labelSmall, + color = OnSurface, + fontWeight = FontWeight.Bold, + ) + } + } + Text( + text = location.name, + style = MaterialTheme.typography.titleLarge, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + LocationMeta(location = location) + } +} + +@Composable +private fun LocationImage( + imageUrl: String?, + modifier: Modifier = Modifier, +) { + if (imageUrl.isNullOrBlank()) { + Box( + modifier = modifier.background(SurfaceContainerLow), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = BrandRed.copy(alpha = 0.7f), + modifier = Modifier.size(28.dp), + ) + } + return + } + + AsyncImage( + model = imageUrl, + contentDescription = null, + modifier = modifier, + contentScale = ContentScale.Crop, + ) +} + +@Composable +private fun LocationTagRow( + location: LocationItem, + featured: Boolean = false, +) { + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = buildLocationBadge(location).ifBlank { + stringResource(R.string.explore_type_fallback) + }, + style = MaterialTheme.typography.labelSmall, + color = AccentBlue, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + if (featured) { + Surface( + color = BrandRed.copy(alpha = 0.12f), + shape = RoundedCornerShape(999.dp), + ) { + Text( + text = stringResource(R.string.explore_featured_badge), + modifier = Modifier.padding(horizontal = 10.dp, vertical = 5.dp), + style = MaterialTheme.typography.labelSmall, + color = BrandRed, + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun LocationMeta(location: LocationItem) { + Row( + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(16.dp), + ) + Text( + text = buildLocationSubtitle(location), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } +} + +@Composable +private fun ExploreCenterState( + title: String, + body: String, + loading: Boolean = false, + actionLabel: String? = null, + onAction: (() -> Unit)? = null, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 48.dp, horizontal = 20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + if (loading) { + CircularProgressIndicator( + color = BrandRed, + strokeWidth = 3.dp, + ) + } + Text( + text = title, + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + ) + Text( + text = body, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + if (actionLabel != null && onAction != null) { + Button(onClick = onAction) { + Text(text = actionLabel) + } + } + } +} + +private fun buildLocationBadge(location: LocationItem): String { + val type = location.type?.takeIf { it.isNotBlank() } + val area = location.city?.takeIf { it.isNotBlank() } + ?: location.province?.takeIf { it.isNotBlank() } + ?: location.country?.takeIf { it.isNotBlank() } + + return listOfNotNull(type, area).joinToString(" • ") +} + +private fun buildLocationSubtitle(location: LocationItem): String { + return listOfNotNull( + location.city?.takeIf { it.isNotBlank() }, + location.province?.takeIf { it.isNotBlank() }, + location.country?.takeIf { it.isNotBlank() }, + ).joinToString(", ").ifBlank { + location.address?.takeIf { it.isNotBlank() } ?: "" + }.ifBlank { + "Indonesia" + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreViewModel.kt new file mode 100644 index 0000000..227e16c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/explore/presentation/ExploreViewModel.kt @@ -0,0 +1,121 @@ +package id.iiyh.inatrading.feature.explore.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.explore.data.model.LocationItem +import id.iiyh.inatrading.feature.explore.domain.LocationRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +private const val LOCATION_PAGE_LIMIT = 10 + +data class ExploreUiState( + val items: List = emptyList(), + val isInitialLoading: Boolean = false, + val isAppending: Boolean = false, + val errorMessage: String? = null, + val currentPage: Int = 0, + val totalPage: Int = 0, + val totalItem: Int = 0, + val searchQuery: String = "", +) { + val hasMore: Boolean + get() = totalPage == 0 || currentPage < totalPage || items.size < totalItem + + val filteredItems: List + get() = items.filter { location -> + val query = searchQuery.trim() + if (query.isBlank()) { + true + } else { + listOf( + location.name, + location.type, + location.city, + location.province, + location.country, + location.address, + location.description, + ).any { it.orEmpty().contains(query, ignoreCase = true) } + } + } +} + +@HiltViewModel +class ExploreViewModel @Inject constructor( + private val locationRepository: LocationRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(ExploreUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadInitial() + } + + fun loadInitial() { + _uiState.update { + it.copy( + items = emptyList(), + isInitialLoading = true, + isAppending = false, + errorMessage = null, + currentPage = 0, + totalPage = 0, + totalItem = 0, + ) + } + loadPage(1) + } + + fun loadNextPage() { + val state = _uiState.value + if (state.isInitialLoading || state.isAppending || !state.hasMore) return + loadPage(state.currentPage + 1) + } + + fun onSearchQueryChange(value: String) { + _uiState.update { it.copy(searchQuery = value) } + } + + private fun loadPage(page: Int) { + viewModelScope.launch { + _uiState.update { + it.copy( + isInitialLoading = page == 1, + isAppending = page > 1, + errorMessage = if (page == 1) null else it.errorMessage, + ) + } + + locationRepository.getLocations(page = page, limit = LOCATION_PAGE_LIMIT) + .onSuccess { result -> + _uiState.update { state -> + state.copy( + items = if (page == 1) result.items else state.items + result.items, + isInitialLoading = false, + isAppending = false, + errorMessage = null, + currentPage = page, + totalPage = result.totalPage, + totalItem = result.totalItem, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isInitialLoading = false, + isAppending = false, + errorMessage = error.message ?: "Gagal memuat lokasi", + ) + } + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/model/FavoriteModels.kt b/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/model/FavoriteModels.kt new file mode 100644 index 0000000..b20e690 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/model/FavoriteModels.kt @@ -0,0 +1,47 @@ +package id.iiyh.inatrading.feature.favorite.data.model + +data class FavoriteGroupItem( + val id: String, + val isDefault: Boolean = false, + val name: String, +) + +data class FavoriteListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class FavoriteItem( + val id: String? = null, + val productDescription: String? = null, + val productId: String? = null, + val productImage: String? = null, + val productName: String? = null, + val productRating: Double? = null, + val sellerImage: String? = null, + val sellerName: String? = null, +) + +data class FavoriteItemsResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class FavoriteCreateRequest( + val name: String, +) + +data class AddToFavoriteRequest( + val favoriteId: String, + val productId: String, +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/repository/FavoriteRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/repository/FavoriteRepositoryImpl.kt new file mode 100644 index 0000000..dff06ac --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/favorite/data/repository/FavoriteRepositoryImpl.kt @@ -0,0 +1,180 @@ +package id.iiyh.inatrading.feature.favorite.data.repository + +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.favorite.data.model.AddToFavoriteRequest +import id.iiyh.inatrading.feature.favorite.data.model.FavoriteCreateRequest +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupProduct +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupSummary +import id.iiyh.inatrading.feature.favorite.domain.FavoriteRepository +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.coroutineScope +import retrofit2.HttpException +import javax.inject.Inject + +class FavoriteRepositoryImpl @Inject constructor( + private val apiService: ApiService, +) : FavoriteRepository { + + override suspend fun getFavoriteGroups(): Result> { + return try { + val response = apiService.getFavorites() + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat koleksi favorit")) + } + + val groups = coroutineScope { + response.rows.map { group -> + async { + val itemResponse = apiService.getFavoriteItems(group.id) + val itemCount = if (itemResponse.isSuccess) { + itemResponse.totalItem.takeIf { it > 0 } ?: itemResponse.rows.size + } else { + 0 + } + + FavoriteGroupSummary( + id = group.id, + name = group.name, + isDefault = group.isDefault, + itemCount = itemCount, + ) + } + }.awaitAll() + } + + Result.success(groups) + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun createFavoriteGroup(name: String): Result { + return try { + val response = apiService.createFavorite(FavoriteCreateRequest(name = name)) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal membuat koleksi favorit")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getFavoriteGroupItems(favoriteId: String): Result> { + return try { + val response = apiService.getFavoriteItems(favoriteId) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat item favorit")) + } + + Result.success( + response.rows.mapNotNull { item -> + val productId = item.productId ?: return@mapNotNull null + val productName = item.productName ?: return@mapNotNull null + FavoriteGroupProduct( + id = item.id ?: productId, + productId = productId, + productName = productName, + productDescription = item.productDescription, + productImage = item.productImage, + sellerName = item.sellerName, + ) + } + ) + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun updateFavoriteGroup(favoriteId: String, name: String): Result { + return try { + val response = apiService.updateFavorite( + favoriteId = favoriteId, + request = FavoriteCreateRequest(name = name), + ) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal mengubah nama koleksi")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun deleteFavoriteGroup(favoriteId: String): Result { + return try { + val response = apiService.deleteFavoriteItem(productId = favoriteId) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal menghapus koleksi")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun addProductToFavorite(favoriteId: String, productId: String): Result { + return try { + val response = apiService.addToFavorite( + AddToFavoriteRequest( + favoriteId = favoriteId, + productId = productId, + ) + ) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal menambahkan produk ke favorit")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun removeProductFromFavorite(productId: String): Result { + return try { + val response = apiService.deleteFavoriteItem(productId = productId) + if (response.isSuccess) { + Result.success(Unit) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal menghapus produk dari favorit")) + } + } catch (e: HttpException) { + Result.failure(e.toRepositoryException()) + } catch (e: Exception) { + Result.failure(e) + } + } + + private fun HttpException.toRepositoryException(): Exception { + if (code() == 401) return SessionExpiredException() + return Exception(parseMessage()) + } + + private fun HttpException.parseMessage(): String { + return try { + val body = response()?.errorBody()?.string() ?: return "Terjadi kesalahan (${code()})" + val match = Regex(""""responseDesc"\s*:\s*"([^"]+)"""").find(body) + match?.groupValues?.get(1) ?: "Terjadi kesalahan (${code()})" + } catch (_: Exception) { + "Terjadi kesalahan (${code()})" + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/favorite/domain/FavoriteRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/favorite/domain/FavoriteRepository.kt new file mode 100644 index 0000000..6b63c04 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/favorite/domain/FavoriteRepository.kt @@ -0,0 +1,27 @@ +package id.iiyh.inatrading.feature.favorite.domain + +data class FavoriteGroupSummary( + val id: String, + val name: String, + val isDefault: Boolean, + val itemCount: Int, +) + +data class FavoriteGroupProduct( + val id: String, + val productId: String, + val productName: String, + val productDescription: String?, + val productImage: String?, + val sellerName: String?, +) + +interface FavoriteRepository { + suspend fun getFavoriteGroups(): Result> + suspend fun getFavoriteGroupItems(favoriteId: String): Result> + suspend fun createFavoriteGroup(name: String): Result + suspend fun updateFavoriteGroup(favoriteId: String, name: String): Result + suspend fun deleteFavoriteGroup(favoriteId: String): Result + suspend fun addProductToFavorite(favoriteId: String, productId: String): Result + suspend fun removeProductFromFavorite(productId: String): Result +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoriteGroupDetailViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoriteGroupDetailViewModel.kt new file mode 100644 index 0000000..b39a4e2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoriteGroupDetailViewModel.kt @@ -0,0 +1,142 @@ +package id.iiyh.inatrading.feature.favorite.presentation + +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupProduct +import id.iiyh.inatrading.feature.favorite.domain.FavoriteRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class FavoriteGroupDetailUiState( + val groupId: String = "", + val groupName: String = "", + val items: List = emptyList(), + val isLoading: Boolean = false, + val removingProductId: String? = null, + val errorMessage: String? = null, + val sessionExpired: Boolean = false, +) + +@HiltViewModel +class FavoriteGroupDetailViewModel @Inject constructor( + savedStateHandle: SavedStateHandle, + private val favoriteRepository: FavoriteRepository, + private val authRepository: AuthRepository, +) : ViewModel() { + + private val groupId: String = savedStateHandle.get("groupId").orEmpty() + private val groupName: String = savedStateHandle.get("groupName").orEmpty() + + private val _uiState = MutableStateFlow( + FavoriteGroupDetailUiState( + groupId = groupId, + groupName = groupName, + ) + ) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadItems() + } + + fun loadItems() { + if (groupId.isBlank()) { + _uiState.update { + it.copy( + isLoading = false, + errorMessage = "Invalid favorite group", + ) + } + return + } + + viewModelScope.launch { + _uiState.update { + it.copy( + isLoading = true, + errorMessage = null, + sessionExpired = false, + ) + } + + favoriteRepository.getFavoriteGroupItems(groupId) + .onSuccess { items -> + _uiState.update { + it.copy( + items = items, + isLoading = false, + removingProductId = null, + errorMessage = null, + sessionExpired = false, + ) + } + } + .onFailure { handleFailure(it, fallbackMessage = "Failed to load favorite items") } + } + } + + fun removeFavorite(productId: String) { + viewModelScope.launch { + _uiState.update { + it.copy( + removingProductId = productId, + errorMessage = null, + sessionExpired = false, + ) + } + + favoriteRepository.removeProductFromFavorite(productId) + .onSuccess { + _uiState.update { state -> + state.copy( + items = state.items.filterNot { item -> item.productId == productId }, + removingProductId = null, + errorMessage = null, + sessionExpired = false, + ) + } + } + .onFailure { handleFailure(it, fallbackMessage = "Failed to remove favorite item") } + } + } + + fun consumeError() { + _uiState.update { it.copy(errorMessage = null) } + } + + fun consumeSessionExpired() { + _uiState.update { it.copy(sessionExpired = false) } + } + + private suspend fun handleFailure(error: Throwable, fallbackMessage: String) { + if (error is SessionExpiredException) { + authRepository.logout() + _uiState.update { + it.copy( + isLoading = false, + removingProductId = null, + errorMessage = null, + sessionExpired = true, + ) + } + return + } + + _uiState.update { + it.copy( + isLoading = false, + removingProductId = null, + errorMessage = error.message ?: fallbackMessage, + sessionExpired = false, + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoritesViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoritesViewModel.kt new file mode 100644 index 0000000..bb0cea2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/favorite/presentation/FavoritesViewModel.kt @@ -0,0 +1,127 @@ +package id.iiyh.inatrading.feature.favorite.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupSummary +import id.iiyh.inatrading.feature.favorite.domain.FavoriteRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class FavoritesUiState( + val groups: List = emptyList(), + val isLoading: Boolean = false, + val isSubmitting: Boolean = false, + val errorMessage: String? = null, + val sessionExpired: Boolean = false, +) + +@HiltViewModel +class FavoritesViewModel @Inject constructor( + private val favoriteRepository: FavoriteRepository, + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(FavoritesUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadFavorites() + } + + fun loadFavorites() { + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, isSubmitting = false, errorMessage = null, sessionExpired = false) } + favoriteRepository.getFavoriteGroups() + .onSuccess { groups -> + _uiState.update { + it.copy( + groups = groups.sortedByDescending(FavoriteGroupSummary::isDefault).sortedBy { item -> item.name.lowercase() }, + isLoading = false, + isSubmitting = false, + errorMessage = null, + sessionExpired = false, + ) + } + } + .onFailure { error -> + handleFailure( + error = error, + fallbackMessage = "Gagal memuat koleksi favorit", + updateLoading = true, + ) + } + } + } + + fun createGroup(name: String) { + mutate { + favoriteRepository.createFavoriteGroup(name) + } + } + + fun renameGroup(favoriteId: String, name: String) { + mutate { + favoriteRepository.updateFavoriteGroup(favoriteId = favoriteId, name = name) + } + } + + fun deleteGroup(favoriteId: String) { + mutate { + favoriteRepository.deleteFavoriteGroup(favoriteId) + } + } + + private fun mutate(block: suspend () -> Result) { + viewModelScope.launch { + _uiState.update { it.copy(isSubmitting = true, errorMessage = null, sessionExpired = false) } + block() + .onSuccess { loadFavorites() } + .onFailure { error -> + handleFailure( + error = error, + fallbackMessage = "Terjadi kesalahan", + updateLoading = false, + ) + } + } + } + + fun consumeSessionExpired() { + _uiState.update { it.copy(sessionExpired = false) } + } + + private suspend fun handleFailure( + error: Throwable, + fallbackMessage: String, + updateLoading: Boolean, + ) { + if (error is SessionExpiredException) { + authRepository.logout() + _uiState.update { + it.copy( + isLoading = false, + isSubmitting = false, + errorMessage = null, + sessionExpired = true, + ) + } + return + } + + _uiState.update { + it.copy( + isLoading = if (updateLoading) false else it.isLoading, + isSubmitting = false, + errorMessage = error.message ?: fallbackMessage, + sessionExpired = false, + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeScreen.kt new file mode 100644 index 0000000..7751a04 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeScreen.kt @@ -0,0 +1,664 @@ +package id.iiyh.inatrading.feature.home.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.Image +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.BusinessCenter +import androidx.compose.material.icons.outlined.Groups +import androidx.compose.material.icons.outlined.Hub +import androidx.compose.material.icons.outlined.Image +import androidx.compose.material.icons.outlined.Language +import androidx.compose.material.icons.outlined.OpenInNew +import androidx.compose.material.icons.outlined.RocketLaunch +import androidx.compose.material.icons.outlined.Storefront +import androidx.compose.material.icons.outlined.VerifiedUser +import androidx.compose.material.icons.outlined.WebAsset +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.news.data.model.NewsArticle + +@Composable +fun HomeScreen( + onNewsClick: (NewsArticle) -> Unit = {}, + onViewAllNews: () -> Unit = {}, + viewModel: HomeViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + + Column( + modifier = Modifier + .fillMaxSize() + .background(Background) + .verticalScroll(rememberScrollState()), + ) { + WhatIsInaSection() + CorePillarsSection() + WhoUsesSection() + CaseStudiesSection() + LatestNewsSection( + articles = uiState.latestNews, + isLoading = uiState.isLoadingNews, + onNewsClick = onNewsClick, + onViewAll = onViewAllNews, + ) + Spacer(modifier = Modifier.height(16.dp)) + } +} + +// ─── Section 1: What is INA Trading ────────────────────────────────────────── + +@Composable +private fun WhatIsInaSection() { + Column( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerLow) + .padding(horizontal = 24.dp) + .padding(top = 32.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // Title + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = buildAnnotatedString { + append(stringResource(R.string.home_what_is_prefix)) + withStyle(SpanStyle(color = BrandRed)) { append(stringResource(R.string.home_what_is_highlight)) } + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 28.sp, + color = OnSurface, + lineHeight = 36.sp, + ) + Text( + text = stringResource(R.string.home_intro), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + } + + // Card 1 — Hybrid B2B + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(12.dp)) + .background(BrandRed.copy(alpha = 0.10f)), + contentAlignment = Alignment.Center, + ) { + Icon(Icons.Outlined.Hub, contentDescription = null, tint = BrandRed, modifier = Modifier.size(24.dp)) + } + Text( + text = stringResource(R.string.home_hybrid_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.home_hybrid_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + Image( + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + .clip(RoundedCornerShape(12.dp)), + painter = painterResource(R.drawable.logistic), + contentDescription = stringResource(R.string.home_logistics_dashboard), + contentScale = ContentScale.Crop, + ) + } + + // Card 2 — Nusantara Modernity (gradient) + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background( + Brush.linearGradient( + colors = listOf(AccentPurple, Color(0xFF865FCB)), + ) + ) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = stringResource(R.string.home_nusantara_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = Color.White, + ) + Text( + text = stringResource(R.string.home_nusantara_desc), + style = MaterialTheme.typography.bodyMedium, + color = Color.White.copy(alpha = 0.85f), + lineHeight = 22.sp, + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = "15k+", + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Black, + fontSize = 40.sp, + color = Color.White, + ) + Text( + text = stringResource(R.string.home_verified_merchants), + style = MaterialTheme.typography.labelSmall, + color = Color.White.copy(alpha = 0.65f), + letterSpacing = 2.sp, + ) + } + } +} + +// ─── Section 2: Core Pillars ────────────────────────────────────────────────── + +@Composable +private fun CorePillarsSection() { + Column( + modifier = Modifier + .fillMaxWidth() + .background(Background) + .padding(horizontal = 24.dp) + .padding(top = 36.dp, bottom = 36.dp), + verticalArrangement = Arrangement.spacedBy(32.dp), + ) { + // Feature list + Column(verticalArrangement = Arrangement.spacedBy(28.dp)) { + PillarItem( + icon = Icons.Outlined.Language, + iconTint = BrandRed, + iconBg = BrandRed.copy(alpha = 0.10f), + title = stringResource(R.string.home_global_reach), + desc = stringResource(R.string.home_global_reach_desc), + ) + PillarItem( + icon = Icons.Outlined.WebAsset, + iconTint = AccentBlue, + iconBg = AccentBlue.copy(alpha = 0.10f), + title = stringResource(R.string.home_digital_integration), + desc = stringResource(R.string.home_digital_integration_desc), + ) + PillarItem( + icon = Icons.Outlined.VerifiedUser, + iconTint = AccentPurple, + iconBg = AccentPurple.copy(alpha = 0.10f), + title = stringResource(R.string.home_secure_transaction), + desc = stringResource(R.string.home_secure_transaction_desc), + ) + } + + // Staggered image placeholders + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Image( + modifier = Modifier + .weight(1f) + .aspectRatio(3f / 4f) + .offset(y = (-16).dp) + .clip(RoundedCornerShape(16.dp)), + painter = painterResource(R.drawable.kerajinan), + contentDescription = stringResource(R.string.home_craftsmanship), + contentScale = ContentScale.Crop, + ) + Image( + modifier = Modifier + .weight(1f) + .aspectRatio(3f / 4f) + .offset(y = 16.dp) + .clip(RoundedCornerShape(16.dp)), + painter = painterResource(R.drawable.tech), + contentDescription = stringResource(R.string.home_tech_interface), + contentScale = ContentScale.Crop, + ) + } + } +} + +@Composable +private fun PillarItem( + icon: ImageVector, + iconTint: Color, + iconBg: Color, + title: String, + desc: String, +) { + Row( + horizontalArrangement = Arrangement.spacedBy(16.dp), + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(52.dp) + .clip(RoundedCornerShape(14.dp)) + .background(iconBg), + contentAlignment = Alignment.Center, + ) { + Icon(icon, contentDescription = null, tint = iconTint, modifier = Modifier.size(26.dp)) + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = OnSurface, + ) + Text( + text = desc, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + ) + } + } +} + +// ─── Section 3: Who Uses ────────────────────────────────────────────────────── + +@Composable +private fun WhoUsesSection() { + Column( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerHighest.copy(alpha = 0.30f)) + .padding(horizontal = 24.dp) + .padding(top = 32.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Text( + text = buildAnnotatedString { + append(stringResource(R.string.home_who_uses_prefix)) + withStyle(SpanStyle(color = BrandRed)) { append(stringResource(R.string.home_what_is_highlight)) } + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + color = OnSurface, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) + + // 2x2 grid + val users = listOf( + Triple(Icons.Outlined.Storefront, BrandRed, stringResource(R.string.home_msmes)), + Triple(Icons.Outlined.Groups, AccentBlue, stringResource(R.string.home_aggregators)), + Triple(Icons.Outlined.RocketLaunch, AccentPurple,stringResource(R.string.home_exporters)), + Triple(Icons.Outlined.BusinessCenter, OnSurface, stringResource(R.string.home_business_owners)), + ) + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + users.chunked(2).forEach { pair -> + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + pair.forEach { (icon, tint, label) -> + WhoUsesCard( + modifier = Modifier.weight(1f), + icon = icon, + iconTint = tint, + label = label, + ) + } + } + } + } + } +} + +@Composable +private fun WhoUsesCard( + icon: ImageVector, + iconTint: Color, + label: String, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Icon(icon, contentDescription = null, tint = iconTint, modifier = Modifier.size(36.dp)) + Text( + text = label, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 14.sp, + color = OnSurface, + textAlign = TextAlign.Center, + ) + } +} + +// ─── Section 4: Case Studies ────────────────────────────────────────────────── + +@Composable +private fun CaseStudiesSection() { + Column( + modifier = Modifier + .fillMaxWidth() + .background(Background) + .padding(horizontal = 24.dp) + .padding(top = 36.dp, bottom = 36.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.home_case_studies), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = BrandRed, + letterSpacing = 2.sp, + ) + Text( + text = stringResource(R.string.home_real_world_examples), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + color = OnSurface, + ) + } + + CaseStudyCard( + overlayColor = AccentBlue.copy(alpha = 0.40f), + title = stringResource(R.string.home_case_coffee_title), + desc = stringResource(R.string.home_case_coffee_desc), + imageRes = R.drawable.restoran, + imageLabel = stringResource(R.string.home_case_coffee_label), + ) + CaseStudyCard( + overlayColor = BrandRed.copy(alpha = 0.40f), + title = stringResource(R.string.home_case_restaurant_title), + desc = stringResource(R.string.home_case_restaurant_desc), + imageRes = R.drawable.coffee, + imageLabel = stringResource(R.string.home_case_restaurant_label), + ) + } +} + +@Composable +private fun CaseStudyCard( + overlayColor: Color, + title: String, + desc: String, + imageRes: Int, + imageLabel: String, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = {}, + ), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + // Image with overlay + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 9f) + .clip(RoundedCornerShape(20.dp)), + ) { + Image( + modifier = Modifier.fillMaxSize(), + painter = painterResource(imageRes), + contentDescription = imageLabel, + contentScale = ContentScale.Crop, + ) + Box( + modifier = Modifier + .fillMaxSize() + .background(overlayColor), + ) + } + + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = desc, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + } +} + +// ─── Section 5: Latest News ─────────────────────────────────────────────────── + +@Composable +private fun LatestNewsSection( + articles: List, + isLoading: Boolean, + onNewsClick: (NewsArticle) -> Unit, + onViewAll: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerLow) + .padding(horizontal = 24.dp) + .padding(top = 32.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = stringResource(R.string.home_latest_news), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = OnSurface, + ) + Row( + horizontalArrangement = Arrangement.spacedBy(4.dp), + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false), + onClick = onViewAll, + ), + ) { + Text( + text = stringResource(R.string.home_view_all), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + color = BrandRed, + ) + Icon(Icons.Outlined.OpenInNew, contentDescription = null, tint = BrandRed, modifier = Modifier.size(14.dp)) + } + } + + when { + isLoading -> { + Box( + modifier = Modifier.fillMaxWidth().height(120.dp), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed, modifier = Modifier.size(32.dp)) + } + } + articles.isEmpty() -> { + Text( + text = stringResource(R.string.home_no_news), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + ) + } + else -> { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + articles.forEach { article -> + NewsCard(article = article, onClick = { onNewsClick(article) }) + } + } + } + } + } +} + +@Composable +private fun NewsCard(article: NewsArticle, onClick: () -> Unit) { + val summary = article.summary?.takeIf { it.isNotBlank() } ?: article.subtitle.orEmpty() + + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + if (!article.category.isNullOrBlank()) { + Text( + text = article.category.uppercase(), + style = MaterialTheme.typography.labelSmall.copy(fontSize = 9.sp), + fontWeight = FontWeight.Bold, + color = OnSurfaceVariant, + letterSpacing = 1.sp, + ) + } + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + color = OnSurface, + lineHeight = 22.sp, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + if (summary.isNotBlank()) { + Text( + text = summary, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + } + } +} + +// ─── Shared: Image Placeholder ──────────────────────────────────────────────── + +@Composable +private fun ImagePlaceholder( + modifier: Modifier = Modifier, + label: String = "", +) { + Box( + modifier = modifier.background(SurfaceContainerHighest), + contentAlignment = Alignment.Center, + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + Icon( + Icons.Outlined.Image, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.35f), + modifier = Modifier.size(32.dp), + ) + if (label.isNotEmpty()) { + Text( + text = label, + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.45f), + ) + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeViewModel.kt new file mode 100644 index 0000000..11ce1b4 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/home/presentation/HomeViewModel.kt @@ -0,0 +1,50 @@ +package id.iiyh.inatrading.feature.home.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.news.data.model.NewsArticle +import id.iiyh.inatrading.feature.news.domain.NewsRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class HomeUiState( + val latestNews: List = emptyList(), + val isLoadingNews: Boolean = false, + val newsError: String? = null, +) + +@HiltViewModel +class HomeViewModel @Inject constructor( + private val newsRepository: NewsRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(HomeUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadLatestNews() + } + + fun loadLatestNews() { + viewModelScope.launch { + _uiState.update { it.copy(isLoadingNews = true, newsError = null) } + newsRepository.getArticles() + .onSuccess { articles -> + _uiState.update { + it.copy( + isLoadingNews = false, + latestNews = articles.take(3), + ) + } + } + .onFailure { e -> + _uiState.update { it.copy(isLoadingNews = false, newsError = e.message) } + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/AboutScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/AboutScreen.kt new file mode 100644 index 0000000..ae8e34b --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/AboutScreen.kt @@ -0,0 +1,455 @@ +package id.iiyh.inatrading.feature.info.presentation + +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Dataset +import androidx.compose.material.icons.outlined.HeadsetMic +import androidx.compose.material.icons.outlined.Public +import androidx.compose.material.icons.outlined.Security +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaSecondaryButton +import id.iiyh.inatrading.core.ui.components.InaTertiaryButton +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandNavy +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.InterFontFamily +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +private const val WA_SUPPORT_NUMBER = "" + +@Composable +fun AboutScreen( + onBack: () -> Unit, +) { + val context = LocalContext.current + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .verticalScroll(rememberScrollState()), + ) { + // ── Hero Section ────────────────────────────────────────────── + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(top = 24.dp, bottom = 8.dp), + ) { + // Decorative slope — right side + Box( + modifier = Modifier + .align(Alignment.TopEnd) + .offset(x = 24.dp) + .width(220.dp) + .height(200.dp) + .clip(RoundedCornerShape(topStart = 0.dp, topEnd = 0.dp, bottomStart = 64.dp, bottomEnd = 0.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.50f)) + ) + + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(R.string.about_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.SemiBold, + color = BrandRed, + letterSpacing = 1.5.sp, + ) + + Text( + text = buildAnnotatedString { + withStyle(SpanStyle(color = OnSurface)) { + append(stringResource(R.string.about_headline_part1)) + append(" ") + } + withStyle(SpanStyle(color = BrandRed)) { + append(stringResource(R.string.about_headline_part2)) + } + withStyle(SpanStyle(color = OnSurface)) { + append(" ") + append(stringResource(R.string.about_headline_part3)) + } + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 38.sp, + lineHeight = 46.sp, + ) + + Text( + text = stringResource(R.string.about_intro), + fontFamily = InterFontFamily, + fontSize = 15.sp, + color = OnSurfaceVariant, + lineHeight = 24.sp, + ) + } + } + + Spacer(modifier = Modifier.height(24.dp)) + + // ── Bento Grid ──────────────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + // Row 1: Large card (Secure Transactions) + Small card (Digital Integration) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + // Large — Secure Transactions + Box( + modifier = Modifier + .weight(1.6f) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + ) { + // Blur decoration + Box( + modifier = Modifier + .size(100.dp) + .align(Alignment.BottomEnd) + .offset(x = 20.dp, y = 20.dp) + .background(BrandRed.copy(alpha = 0.06f), CircleShape) + ) + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + BentoIcon(icon = Icons.Outlined.Security, bg = BrandRed.copy(alpha = 0.10f), tint = BrandRed) + Text( + text = stringResource(R.string.about_feature1_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.about_feature1_desc), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 18.sp, + ) + } + } + + // Small — Digital Integration + Column( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(16.dp)) + .background(AccentBlue.copy(alpha = 0.12f)) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + BentoIcon(icon = Icons.Outlined.Dataset, bg = AccentBlue.copy(alpha = 0.15f), tint = AccentBlue) + Text( + text = stringResource(R.string.about_feature2_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 17.sp, + color = BrandNavy, + ) + Text( + text = stringResource(R.string.about_feature2_desc), + style = MaterialTheme.typography.bodySmall, + color = BrandNavy.copy(alpha = 0.70f), + lineHeight = 18.sp, + ) + } + } + + // Row 2: Small card (Global Reach) + Image card + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + // Small — Global Reach + Column( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(16.dp)) + .background(AccentPurple) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + BentoIcon(icon = Icons.Outlined.Public, bg = Color.White.copy(alpha = 0.20f), tint = Color.White) + Text( + text = stringResource(R.string.about_feature3_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 17.sp, + color = Color.White, + ) + Text( + text = stringResource(R.string.about_feature3_desc), + style = MaterialTheme.typography.bodySmall, + color = Color.White.copy(alpha = 0.85f), + lineHeight = 18.sp, + ) + } + + // Image placeholder + quote + Box( + modifier = Modifier + .weight(1.6f) + .height(180.dp) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerHighest), + ) { + // Placeholder label + Text( + text = "[ Office Image ]", + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant.copy(alpha = 0.4f), + modifier = Modifier.align(Alignment.Center), + ) + // Gradient overlay + quote + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf(Color.Transparent, Color.Black.copy(alpha = 0.55f)), + ) + ), + contentAlignment = Alignment.BottomStart, + ) { + Text( + text = stringResource(R.string.about_image_quote), + style = MaterialTheme.typography.bodySmall, + color = Color.White, + fontFamily = InterFontFamily, + modifier = Modifier.padding(16.dp), + ) + } + } + } + } + + Spacer(modifier = Modifier.height(28.dp)) + + // ── Mission Statement ───────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLow) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Text( + text = stringResource(R.string.about_mission_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 28.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.about_mission_body), + fontFamily = InterFontFamily, + fontSize = 15.sp, + color = OnSurfaceVariant, + lineHeight = 26.sp, + ) + + // TODO: wire Learn More + InaPrimaryButton( + text = stringResource(R.string.about_mission_cta), + onClick = { /* TODO */ }, + ) + + // Stats grid + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + StatCard( + modifier = Modifier.weight(1f), + value = "500+", + label = stringResource(R.string.about_stat1_label), + valueColor = BrandRed, + ) + StatCard( + modifier = Modifier.weight(1f), + value = "12k+", + label = stringResource(R.string.about_stat2_label), + valueColor = AccentBlue, + ) + } + } + + Spacer(modifier = Modifier.height(28.dp)) + + // ── CTA Section ─────────────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 40.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Box( + modifier = Modifier + .clip(RoundedCornerShape(percent = 50)) + .background(AccentPurpleContainer.copy(alpha = 0.25f)) + .padding(horizontal = 16.dp, vertical = 6.dp), + ) { + Text( + text = stringResource(R.string.about_cta_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.SemiBold, + color = AccentPurple, + letterSpacing = 1.5.sp, + ) + } + + Text( + text = stringResource(R.string.about_cta_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + color = OnSurface, + textAlign = TextAlign.Center, + lineHeight = 32.sp, + ) + + Text( + text = stringResource(R.string.about_cta_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + lineHeight = 22.sp, + ) + + Spacer(modifier = Modifier.height(4.dp)) + + // Register as Seller — placeholder + InaPrimaryButton( + text = stringResource(R.string.about_cta_register), + onClick = { /* TODO: navigate to seller register */ }, + ) + + // Contact Support — WA + InaSecondaryButton( + text = stringResource(R.string.about_cta_contact), + onClick = { + if (WA_SUPPORT_NUMBER.isNotEmpty()) { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://wa.me/$WA_SUPPORT_NUMBER")) + context.startActivity(intent) + } + }, + ) + } + } + } +} + +@Composable +private fun BentoIcon( + icon: ImageVector, + bg: Color, + tint: Color, +) { + Box( + modifier = Modifier + .size(44.dp) + .clip(RoundedCornerShape(10.dp)) + .background(bg), + contentAlignment = Alignment.Center, + ) { + Icon(icon, contentDescription = null, tint = tint, modifier = Modifier.size(22.dp)) + } +} + +@Composable +private fun StatCard( + value: String, + label: String, + valueColor: Color, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .padding(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Text( + text = value, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 32.sp, + color = valueColor, + ) + Text( + text = label.uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + letterSpacing = 1.sp, + textAlign = TextAlign.Center, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/HelpCenterScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/HelpCenterScreen.kt new file mode 100644 index 0000000..a127876 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/HelpCenterScreen.kt @@ -0,0 +1,665 @@ +package id.iiyh.inatrading.feature.info.presentation + +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.Chat +import androidx.compose.material.icons.outlined.AccountBalanceWallet +import androidx.compose.material.icons.outlined.ChevronRight +import androidx.compose.material.icons.outlined.Email +import androidx.compose.material.icons.outlined.LocalShipping +import androidx.compose.material.icons.outlined.Payments +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.Search +import androidx.compose.material.icons.outlined.Shield +import androidx.compose.material.icons.outlined.ShoppingBag +import androidx.compose.material.icons.outlined.Store +import androidx.compose.material.icons.outlined.Warehouse +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnAccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.OutlineVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +private data class HelpCategory( + val icon: ImageVector, + val title: String, + val body: String, + val iconContainer: Color, + val iconTint: Color, +) + +private data class HelpFaq( + val question: String, + val answer: String, +) + +private const val HELP_CENTER_WHATSAPP_NUMBER = "6281181190222" +private const val HELP_CENTER_SUPPORT_EMAIL = "marketing@inatrading.co.id" + +@Composable +fun HelpCenterScreen( + onBack: () -> Unit, +) { + var query by rememberSaveable { mutableStateOf("") } + + val sidebarEntries = listOf( + Icons.Outlined.Warehouse to stringResource(R.string.help_center_sidebar_orders), + Icons.Outlined.Payments to stringResource(R.string.help_center_sidebar_payment), + Icons.Outlined.LocalShipping to stringResource(R.string.help_center_sidebar_shipping), + Icons.Outlined.Person to stringResource(R.string.help_center_sidebar_account), + ) + + val categories = listOf( + HelpCategory( + icon = Icons.Outlined.ShoppingBag, + title = stringResource(R.string.help_center_cat_orders_title), + body = stringResource(R.string.help_center_cat_orders_body), + iconContainer = BrandRedContainer.copy(alpha = 0.25f), + iconTint = BrandRed, + ), + HelpCategory( + icon = Icons.Outlined.AccountBalanceWallet, + title = stringResource(R.string.help_center_cat_payment_title), + body = stringResource(R.string.help_center_cat_payment_body), + iconContainer = AccentBlueContainer.copy(alpha = 0.45f), + iconTint = AccentBlue, + ), + HelpCategory( + icon = Icons.Outlined.Shield, + title = stringResource(R.string.help_center_cat_account_title), + body = stringResource(R.string.help_center_cat_account_body), + iconContainer = SurfaceContainerHighest, + iconTint = OnSurface, + ), + HelpCategory( + icon = Icons.Outlined.Store, + title = stringResource(R.string.help_center_cat_merchant_title), + body = stringResource(R.string.help_center_cat_merchant_body), + iconContainer = BrandRedContainer.copy(alpha = 0.22f), + iconTint = BrandRed, + ), + ) + + val faqs = listOf( + HelpFaq( + question = stringResource(R.string.help_center_faq_track_question), + answer = stringResource(R.string.help_center_faq_track_answer), + ), + HelpFaq( + question = stringResource(R.string.help_center_faq_payment_question), + answer = stringResource(R.string.help_center_faq_payment_answer), + ), + HelpFaq( + question = stringResource(R.string.help_center_faq_refund_question), + answer = stringResource(R.string.help_center_faq_refund_answer), + ), + HelpFaq( + question = stringResource(R.string.help_center_faq_address_question), + answer = stringResource(R.string.help_center_faq_address_answer), + ), + ) + + val normalizedQuery = query.trim().lowercase() + val filteredCategories = categories.filter { + normalizedQuery.isBlank() || + it.title.lowercase().contains(normalizedQuery) || + it.body.lowercase().contains(normalizedQuery) + } + val filteredFaqs = faqs.filter { + normalizedQuery.isBlank() || + it.question.lowercase().contains(normalizedQuery) || + it.answer.lowercase().contains(normalizedQuery) + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .background(Background), + contentPadding = PaddingValues(top = 16.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + item { + HeroSection( + query = query, + onQueryChange = { query = it }, + ) + } + + item { + SupportCategoriesCard(entries = sidebarEntries) + } + + item { + ContactSupportCard() + } + + item { + Column( + modifier = Modifier.padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + SectionHeader( + title = stringResource(R.string.help_center_main_categories), + action = stringResource(R.string.profile_view_all), + ) + filteredCategories.forEach { category -> + HelpCategoryCard(category = category) + } + } + } + + item { + FaqSection(faqs = filteredFaqs) + } + + item { + FooterCaption() + } + } + } +} + +@Composable +private fun HeroSection( + query: String, + onQueryChange: (String) -> Unit, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerHighest.copy(alpha = 0.24f)), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 24.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + Text( + text = stringResource(R.string.help_center_eyebrow).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = BrandRed, + fontWeight = FontWeight.Bold, + letterSpacing = 1.6.sp, + modifier = Modifier.align(Alignment.CenterHorizontally), + ) + Text( + text = stringResource(R.string.help_center_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + lineHeight = 30.sp, + color = OnSurface, + textAlign = TextAlign.Center, + modifier = Modifier.align(Alignment.CenterHorizontally), + ) + Surface( + color = SurfaceContainerLowest, + shape = RoundedCornerShape(16.dp), + shadowElevation = 6.dp, + ) { + OutlinedTextField( + value = query, + onValueChange = onQueryChange, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + shape = RoundedCornerShape(16.dp), + placeholder = { + Text( + text = stringResource(R.string.help_center_search_placeholder), + color = OnSurfaceVariant.copy(alpha = 0.62f), + ) + }, + leadingIcon = { + Icon( + imageVector = Icons.Outlined.Search, + contentDescription = null, + tint = OnSurfaceVariant, + ) + }, + ) + } + } + } +} + +@Composable +private fun SupportCategoriesCard( + entries: List>, +) { + Surface( + modifier = Modifier.padding(horizontal = 16.dp), + color = SurfaceContainerLowest, + shape = RoundedCornerShape(18.dp), + shadowElevation = 2.dp, + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text( + text = stringResource(R.string.help_center_sidebar_title), + fontWeight = FontWeight.Medium, + color = OnSurface, + ) + entries.forEachIndexed { index, (icon, label) -> + Row( + modifier = Modifier + .fillMaxWidth() + .background( + if (index == 0) SurfaceContainerLow else Color.Transparent, + RoundedCornerShape(12.dp), + ) + .padding(horizontal = 12.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.spacedBy(10.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = if (index == 0) BrandRed else OnSurfaceVariant, + modifier = Modifier.size(18.dp), + ) + Text( + text = label, + color = if (index == 0) BrandRed else OnSurface, + fontWeight = if (index == 0) FontWeight.SemiBold else FontWeight.Normal, + ) + } + } + } + } +} + +@Composable +private fun ContactSupportCard() { + val context = LocalContext.current + Surface( + modifier = Modifier.padding(horizontal = 16.dp), + color = AccentPurple, + shape = RoundedCornerShape(18.dp), + shadowElevation = 8.dp, + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.help_center_contact_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + color = Color.White, + ) + Text( + text = stringResource(R.string.help_center_contact_body), + color = Color.White.copy(alpha = 0.92f), + style = MaterialTheme.typography.bodySmall, + ) + SupportButton( + icon = Icons.AutoMirrored.Outlined.Chat, + text = stringResource(R.string.help_center_contact_whatsapp), + containerColor = Color.White, + contentColor = AccentPurple, + onClick = { + val intent = Intent( + Intent.ACTION_VIEW, + Uri.parse("https://wa.me/$HELP_CENTER_WHATSAPP_NUMBER") + ) + context.startActivity(intent) + }, + ) + SupportButton( + icon = Icons.Outlined.Email, + text = stringResource(R.string.help_center_contact_email), + containerColor = Color.White.copy(alpha = 0.12f), + contentColor = Color.White, + onClick = { + val intent = Intent(Intent.ACTION_SENDTO).apply { + data = Uri.parse("mailto:$HELP_CENTER_SUPPORT_EMAIL") + } + context.startActivity(intent) + }, + ) + } + + Icon( + imageVector = Icons.Outlined.ChevronRight, + contentDescription = null, + tint = Color.White.copy(alpha = 0.08f), + modifier = Modifier + .align(Alignment.BottomEnd) + .size(68.dp), + ) + } + } +} + +@Composable +private fun SupportButton( + icon: ImageVector, + text: String, + containerColor: Color, + contentColor: Color, + onClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clickable(onClick = onClick) + .background(containerColor, RoundedCornerShape(12.dp)) + .padding(horizontal = 14.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = contentColor, + modifier = Modifier.size(16.dp), + ) + Spacer(modifier = Modifier.size(8.dp)) + Text( + text = text, + color = contentColor, + fontWeight = FontWeight.SemiBold, + ) + } +} + +@Composable +private fun SectionHeader( + title: String, + action: String, +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = action, + color = BrandRed, + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + ) + } +} + +@Composable +private fun HelpCategoryCard( + category: HelpCategory, +) { + Surface( + color = SurfaceContainerLowest, + shape = RoundedCornerShape(16.dp), + shadowElevation = 1.dp, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + horizontalArrangement = Arrangement.spacedBy(14.dp), + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(42.dp) + .background(category.iconContainer, RoundedCornerShape(12.dp)), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = category.icon, + contentDescription = null, + tint = category.iconTint, + modifier = Modifier.size(20.dp), + ) + } + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Text( + text = category.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + lineHeight = 22.sp, + color = OnSurface, + ) + Text( + text = category.body, + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + ) + } + } + } +} + +@Composable +private fun FaqSection( + faqs: List, +) { + Surface( + modifier = Modifier.padding(horizontal = 16.dp), + color = SurfaceContainerLow, + shape = RoundedCornerShape(20.dp), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = stringResource(R.string.help_center_faq_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 20.sp, + lineHeight = 26.sp, + color = OnSurface, + ) + faqs.forEachIndexed { index, faq -> + FaqCard( + faq = faq, + expandedByDefault = index == 0, + ) + } + CalloutCard() + } + } +} + +@Composable +private fun FaqCard( + faq: HelpFaq, + expandedByDefault: Boolean = false, +) { + var expanded by remember { mutableStateOf(expandedByDefault) } + + Surface( + color = SurfaceContainerLowest, + shape = RoundedCornerShape(14.dp), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .clickable { expanded = !expanded } + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = faq.question, + fontWeight = FontWeight.Medium, + fontSize = 16.sp, + lineHeight = 22.sp, + color = OnSurface, + modifier = Modifier.weight(1f), + ) + Spacer(modifier = Modifier.size(12.dp)) + Icon( + imageVector = Icons.Outlined.ChevronRight, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + } + if (expanded) { + Text( + text = faq.answer, + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + ) + } + } + } +} + +@Composable +private fun CalloutCard() { + Surface( + color = SurfaceContainerLowest, + shape = RoundedCornerShape(16.dp), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 22.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .size(46.dp) + .background(AccentBlueContainer.copy(alpha = 0.5f), CircleShape), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Person, + contentDescription = null, + tint = OnAccentBlueContainer, + modifier = Modifier.size(18.dp), + ) + } + Text( + text = stringResource(R.string.help_center_callout_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 22.sp, + lineHeight = 26.sp, + textAlign = TextAlign.Center, + color = OnSurface, + ) + Text( + text = stringResource(R.string.help_center_callout_body), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + textAlign = TextAlign.Center, + ) + Box( + modifier = Modifier + .background(BrandRed, RoundedCornerShape(12.dp)) + .padding(horizontal = 20.dp, vertical = 12.dp), + contentAlignment = Alignment.Center, + ) { + Text( + text = stringResource(R.string.help_center_callout_action), + color = Color.White, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + ) + } + } + } +} + +@Composable +private fun FooterCaption() { + Box( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerHighest.copy(alpha = 0.28f)) + .padding(horizontal = 16.dp, vertical = 28.dp), + contentAlignment = Alignment.Center, + ) { + Text( + text = stringResource(R.string.help_center_footer), + color = OnSurfaceVariant, + style = MaterialTheme.typography.bodySmall, + textAlign = TextAlign.Center, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/PrivacyPolicyScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/PrivacyPolicyScreen.kt new file mode 100644 index 0000000..b4e2283 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/PrivacyPolicyScreen.kt @@ -0,0 +1,386 @@ +package id.iiyh.inatrading.feature.info.presentation + +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Analytics +import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material.icons.filled.VerifiedUser +import androidx.compose.material.icons.outlined.SettingsAccessibility +import androidx.compose.material.icons.outlined.Update +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaSecondaryButton +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandNavy +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +private const val PRIVACY_EMAIL = "privacy@inatrading.com" + +@Composable +fun PrivacyPolicyScreen( + onBack: () -> Unit, + onFullTermsClick: () -> Unit, +) { + val context = LocalContext.current + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .verticalScroll(rememberScrollState()) + .padding(horizontal = 24.dp) + .padding(bottom = 40.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Spacer(modifier = Modifier.height(8.dp)) + + // ── Hero ────────────────────────────────────────────────────── + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.privacy_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = AccentBlue, + letterSpacing = 1.5.sp, + ) + Text( + text = stringResource(R.string.privacy_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 36.sp, + color = OnSurface, + lineHeight = 44.sp, + ) + Text( + text = stringResource(R.string.privacy_intro), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + // Date pill + Row( + modifier = Modifier + .clip(RoundedCornerShape(percent = 50)) + .background(SurfaceContainerLow) + .padding(horizontal = 14.dp, vertical = 6.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(6.dp), + ) { + Icon( + Icons.Outlined.Update, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(16.dp), + ) + Text( + text = stringResource(R.string.privacy_last_updated), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Medium, + color = OnSurfaceVariant, + ) + } + } + + // ── Card 1: Data Collection ─────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(12.dp)) + .background(BrandRed.copy(alpha = 0.12f)), + contentAlignment = Alignment.Center, + ) { + Icon(Icons.Filled.Analytics, contentDescription = null, tint = BrandRed, modifier = Modifier.size(24.dp)) + } + Text( + text = stringResource(R.string.privacy_section1_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.privacy_section1_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + PrivacyCheckItem( + bold = stringResource(R.string.privacy_check1_bold), + rest = stringResource(R.string.privacy_check1_rest), + ) + PrivacyCheckItem( + bold = stringResource(R.string.privacy_check2_bold), + rest = stringResource(R.string.privacy_check2_rest), + ) + } + + // ── Card 2: Security Infrastructure ────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(AccentBlue.copy(alpha = 0.12f)) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Icon(Icons.Filled.VerifiedUser, contentDescription = null, tint = BrandNavy, modifier = Modifier.size(36.dp)) + Text( + text = stringResource(R.string.privacy_section2_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = BrandNavy, + ) + Text( + text = stringResource(R.string.privacy_section2_body), + style = MaterialTheme.typography.bodySmall, + color = BrandNavy.copy(alpha = 0.70f), + lineHeight = 20.sp, + ) + Spacer(modifier = Modifier.height(4.dp)) + // Progress bar + Box( + modifier = Modifier + .fillMaxWidth() + .height(6.dp) + .clip(RoundedCornerShape(percent = 50)) + .background(BrandNavy.copy(alpha = 0.10f)), + ) { + Box( + modifier = Modifier + .fillMaxWidth(0.75f) + .height(6.dp) + .clip(RoundedCornerShape(percent = 50)) + .background(BrandNavy.copy(alpha = 0.60f)), + ) + } + Text( + text = stringResource(R.string.privacy_section2_protocol).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = BrandNavy.copy(alpha = 0.55f), + letterSpacing = 1.sp, + ) + } + + // ── Card 3: Third-party Sharing ─────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(AccentPurpleContainer.copy(alpha = 0.35f)) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(R.string.privacy_section3_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.privacy_section3_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + ) + // Partner chips + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + listOf( + stringResource(R.string.privacy_chip_logistics), + stringResource(R.string.privacy_chip_payment), + stringResource(R.string.privacy_chip_compliance), + ).forEach { label -> + Box( + modifier = Modifier + .clip(RoundedCornerShape(8.dp)) + .background(Color.White.copy(alpha = 0.50f)) + .padding(horizontal = 10.dp, vertical = 6.dp), + ) { + Text( + text = label, + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = AccentPurple, + letterSpacing = 0.5.sp, + ) + } + } + } + } + + // ── Card 4: Your Privacy Rights ─────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp), + ) { + Box( + modifier = Modifier + .size(44.dp) + .clip(RoundedCornerShape(12.dp)) + .background(AccentPurple.copy(alpha = 0.15f)), + contentAlignment = Alignment.Center, + ) { + Icon(Icons.Outlined.SettingsAccessibility, contentDescription = null, tint = AccentPurple, modifier = Modifier.size(22.dp)) + } + Text( + text = stringResource(R.string.privacy_section4_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = OnSurface, + ) + } + Text( + text = stringResource(R.string.privacy_section4_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + ) + // TODO: wire to actual preferences screen + InaPrimaryButton( + text = stringResource(R.string.privacy_section4_cta), + onClick = { /* TODO */ }, + ) + } + + // ── Card 5: Have questions? ─────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLow) + .padding(start = 4.dp), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(topStart = 0.dp, topEnd = 16.dp, bottomStart = 0.dp, bottomEnd = 16.dp)) + .background(SurfaceContainerLow) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(R.string.privacy_contact_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.privacy_contact_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + ) + // Email Legal + InaPrimaryButton( + text = stringResource(R.string.privacy_contact_email), + onClick = { + val intent = Intent(Intent.ACTION_SENDTO).apply { + data = Uri.parse("mailto:$PRIVACY_EMAIL") + } + context.startActivity(intent) + }, + ) + // Full Terms + InaSecondaryButton( + text = stringResource(R.string.privacy_contact_terms), + onClick = onFullTermsClick, + ) + } + } + } + } +} + +@Composable +private fun PrivacyCheckItem(bold: String, rest: String) { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.Top, + ) { + Icon( + imageVector = Icons.Filled.CheckCircle, + contentDescription = null, + tint = AccentBlue, + modifier = Modifier + .size(20.dp) + .padding(top = 2.dp), + ) + Text( + text = buildAnnotatedString { + withStyle(SpanStyle(fontWeight = FontWeight.Bold, color = OnSurface)) { + append(bold) + } + withStyle(SpanStyle(color = OnSurfaceVariant)) { + append(" $rest") + } + }, + style = MaterialTheme.typography.bodyMedium, + lineHeight = 22.sp, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/TermsConditionsScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/TermsConditionsScreen.kt new file mode 100644 index 0000000..f7eb51f --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/info/presentation/TermsConditionsScreen.kt @@ -0,0 +1,373 @@ +package id.iiyh.inatrading.feature.info.presentation + +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.CheckCircle +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.withStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +// TODO: set to real WA support number e.g. "628123456789" +private const val WA_SUPPORT_NUMBER = "" + +@Composable +fun TermsConditionsScreen( + onBack: () -> Unit, +) { + val context = LocalContext.current + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Box(modifier = Modifier.fillMaxSize()) { + + // Brand slope decorative background + Box( + modifier = Modifier + .offset(x = 80.dp, y = 160.dp) + .width(320.dp) + .height(600.dp) + .rotate(-2f) + .clip(RoundedCornerShape(48.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.30f)) + ) + + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .verticalScroll(rememberScrollState()) + .padding(horizontal = 24.dp) + .padding(bottom = 40.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Spacer(modifier = Modifier.height(12.dp)) + + // ── Hero ────────────────────────────────────────────────────── + Box( + modifier = Modifier + .clip(RoundedCornerShape(percent = 50)) + .background(AccentPurpleContainer.copy(alpha = 0.25f)) + .padding(horizontal = 16.dp, vertical = 6.dp), + ) { + Text( + text = stringResource(R.string.terms_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.SemiBold, + color = AccentPurple, + letterSpacing = 1.5.sp, + ) + } + + Text( + text = buildAnnotatedString { + withStyle(SpanStyle(color = OnSurface)) { + append(stringResource(R.string.terms_headline_part1)) + append("\n") + } + withStyle(SpanStyle(color = BrandRed)) { + append(stringResource(R.string.terms_headline_part2)) + } + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 42.sp, + lineHeight = 50.sp, + ) + + Text( + text = stringResource(R.string.terms_intro), + style = MaterialTheme.typography.bodyLarge, + color = OnSurfaceVariant, + lineHeight = 26.sp, + ) + + Spacer(modifier = Modifier.height(4.dp)) + + // ── Section 01 ──────────────────────────────────────────────── + TermsArticle( + number = "01", + numberColor = BrandRed.copy(alpha = 0.20f), + title = stringResource(R.string.terms_section1_title), + accentColor = BrandRed, + content = { + Text( + text = stringResource(R.string.terms_section1_p1), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = stringResource(R.string.terms_section1_p2), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + }, + ) + + // ── Section 02 ──────────────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow) + .padding(start = 4.dp), + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(topStart = 0.dp, topEnd = 12.dp, bottomStart = 0.dp, bottomEnd = 12.dp)) + .background(SurfaceContainerLow) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = "02", + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 32.sp, + color = AccentBlue.copy(alpha = 0.20f), + ) + Text( + text = stringResource(R.string.terms_section2_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + } + + Text( + text = stringResource(R.string.terms_section2_p1), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + + // Checklist items + ChecklistItem(text = stringResource(R.string.terms_section2_check1)) + ChecklistItem(text = stringResource(R.string.terms_section2_check2)) + + // Image placeholder + Box( + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerHighest), + contentAlignment = Alignment.Center, + ) { + Text( + text = "[ Payment Image ]", + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant.copy(alpha = 0.4f), + ) + } + } + } + + // ── Section 03 ──────────────────────────────────────────────── + TermsArticle( + number = "03", + numberColor = AccentPurple.copy(alpha = 0.20f), + title = stringResource(R.string.terms_section3_title), + accentColor = AccentPurple, + content = { + Text( + text = stringResource(R.string.terms_section3_p1), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = stringResource(R.string.terms_section3_p2), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + }, + ) + + // ── Contact CTA ─────────────────────────────────────────────── + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerHighest) + .padding(24.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = stringResource(R.string.terms_contact_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.terms_contact_desc), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + InaPrimaryButton( + text = stringResource(R.string.terms_contact_cta), + onClick = { + if (WA_SUPPORT_NUMBER.isNotEmpty()) { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://wa.me/$WA_SUPPORT_NUMBER")) + context.startActivity(intent) + } + }, + modifier = Modifier.width(140.dp), + ) + } + + // ── Footer ──────────────────────────────────────────────────── + Text( + text = stringResource(R.string.terms_footer), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.4f), + letterSpacing = 1.5.sp, + modifier = Modifier + .fillMaxWidth() + .padding(top = 12.dp), + ) + } + } + } +} + +@Composable +private fun TermsArticle( + number: String, + numberColor: androidx.compose.ui.graphics.Color, + title: String, + accentColor: androidx.compose.ui.graphics.Color, + content: @Composable () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .padding(start = 4.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(topStart = 0.dp, topEnd = 12.dp, bottomStart = 0.dp, bottomEnd = 12.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + ) { + // Left accent bar + Box( + modifier = Modifier + .align(Alignment.TopStart) + .offset(x = (-24).dp) + .width(4.dp) + .height(40.dp) + .background(accentColor) + ) + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = number, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 32.sp, + color = numberColor, + ) + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + } + content() + } + } + } +} + +@Composable +private fun ChecklistItem(text: String) { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.Top, + ) { + Icon( + imageVector = Icons.Outlined.CheckCircle, + contentDescription = null, + tint = AccentBlue, + modifier = Modifier.size(18.dp).padding(top = 2.dp), + ) + Text( + text = text, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/data/model/NewsArticle.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/data/model/NewsArticle.kt new file mode 100644 index 0000000..a84f6bd --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/data/model/NewsArticle.kt @@ -0,0 +1,36 @@ +package id.iiyh.inatrading.feature.news.data.model + +import com.google.gson.annotations.SerializedName + +data class NewsArticle( + val id: String, + val title: String, + val subtitle: String? = null, + val summary: String? = null, + val category: String? = null, + val reporter: String? = null, + val section1: String? = null, + val section2: String? = null, + val section3: String? = null, + val image1: String? = null, + val image2: String? = null, + val image3: String? = null, + val image4: String? = null, + val image5: String? = null, +) { + /** summary jika ada, fallback ke subtitle */ + val displaySummary: String get() = summary?.takeIf { it.isNotBlank() } ?: subtitle.orEmpty() + + /** Semua gambar yang tidak null */ + val images: List get() = listOfNotNull(image1, image2, image3, image4, image5) +} + +data class NewsListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/data/repository/NewsRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/data/repository/NewsRepositoryImpl.kt new file mode 100644 index 0000000..5031ba4 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/data/repository/NewsRepositoryImpl.kt @@ -0,0 +1,24 @@ +package id.iiyh.inatrading.feature.news.data.repository + +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.feature.news.data.model.NewsArticle +import id.iiyh.inatrading.feature.news.domain.NewsRepository +import javax.inject.Inject + +class NewsRepositoryImpl @Inject constructor( + private val apiService: ApiService, +) : NewsRepository { + + override suspend fun getArticles(): Result> { + return try { + val response = apiService.getNewsArticles() + if (response.isSuccess) { + Result.success(response.rows) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal memuat berita")) + } + } catch (e: Exception) { + Result.failure(e) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/domain/NewsRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/domain/NewsRepository.kt new file mode 100644 index 0000000..f33b672 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/domain/NewsRepository.kt @@ -0,0 +1,7 @@ +package id.iiyh.inatrading.feature.news.domain + +import id.iiyh.inatrading.feature.news.data.model.NewsArticle + +interface NewsRepository { + suspend fun getArticles(): Result> +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsDetailScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsDetailScreen.kt new file mode 100644 index 0000000..2f8c2d2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsDetailScreen.kt @@ -0,0 +1,334 @@ +package id.iiyh.inatrading.feature.news.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.news.data.model.NewsArticle + +@Composable +fun NewsDetailScreen( + article: NewsArticle, + onBack: () -> Unit, +) { + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .verticalScroll(rememberScrollState()), + ) { + // ── Hero Image ──────────────────────────────────────────────────── + if (article.image1 != null) { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 9f), + ) { + AsyncImage( + model = article.image1, + contentDescription = article.title, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + // Gradient overlay + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color.Transparent, + Color.Black.copy(alpha = 0.75f), + ), + startY = 0.3f, + ) + ) + ) + // Title overlay at bottom of hero + Column( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + if (!article.category.isNullOrBlank()) { + Box( + modifier = Modifier + .clip(RoundedCornerShape(percent = 50)) + .background(AccentPurpleContainer.copy(alpha = 0.85f)) + .padding(horizontal = 12.dp, vertical = 4.dp), + ) { + Text( + text = article.category.uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = AccentPurple, + letterSpacing = 1.5.sp, + ) + } + } + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = Color.White, + lineHeight = 30.sp, + ) + if (!article.subtitle.isNullOrBlank()) { + Text( + text = article.subtitle, + style = MaterialTheme.typography.bodyMedium, + color = Color.White.copy(alpha = 0.80f), + lineHeight = 22.sp, + ) + } + } + } + } else { + // No image — title block with colored background + Box( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceContainerHighest) + .padding(horizontal = 24.dp, vertical = 40.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(10.dp)) { + if (!article.category.isNullOrBlank()) { + Box( + modifier = Modifier + .clip(RoundedCornerShape(percent = 50)) + .background(AccentPurpleContainer) + .padding(horizontal = 12.dp, vertical = 4.dp), + ) { + Text( + text = article.category.uppercase(), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = AccentPurple, + letterSpacing = 1.5.sp, + ) + } + } + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + color = OnSurface, + lineHeight = 32.sp, + ) + if (!article.subtitle.isNullOrBlank()) { + Text( + text = article.subtitle, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + } + } + } + } + + // ── Content Body ────────────────────────────────────────────────── + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(top = 24.dp, bottom = 40.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // Reporter card + if (!article.reporter.isNullOrBlank()) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow) + .padding(16.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + // Avatar initials + Box( + modifier = Modifier + .size(44.dp) + .background(BrandRed, CircleShape), + contentAlignment = Alignment.Center, + ) { + Text( + text = article.reporter + .split(" ") + .take(2) + .mapNotNull { it.firstOrNull()?.uppercaseChar() } + .joinToString(""), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 14.sp, + color = Color.White, + ) + } + Column { + Text( + text = stringResource(R.string.news_reporter), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = OnSurfaceVariant, + letterSpacing = 1.sp, + ) + Text( + text = article.reporter, + style = MaterialTheme.typography.bodyMedium, + fontWeight = FontWeight.SemiBold, + color = OnSurface, + ) + } + } + } + + // Summary / quote block + val summary = article.summary?.takeIf { it.isNotBlank() } + ?: article.subtitle?.takeIf { it.isNotBlank() } + if (!summary.isNullOrBlank()) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .width(4.dp) + .height(80.dp) + .background(BrandRed, RoundedCornerShape(2.dp)) + ) + Text( + text = "\u201C$summary\u201D", + style = MaterialTheme.typography.bodyLarge, + fontStyle = FontStyle.Italic, + color = OnSurfaceVariant, + lineHeight = 28.sp, + ) + } + } + + // Section 1 + if (!article.section1.isNullOrBlank()) { + Text( + text = article.section1, + style = MaterialTheme.typography.bodyLarge, + color = OnSurface, + lineHeight = 28.sp, + ) + } + + // Image 2 (inline) + if (article.image2 != null) { + AsyncImage( + model = article.image2, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 9f) + .clip(RoundedCornerShape(12.dp)), + ) + } + + // Section 2 + if (!article.section2.isNullOrBlank()) { + Text( + text = article.section2, + style = MaterialTheme.typography.bodyMedium, + color = OnSurface, + lineHeight = 26.sp, + ) + } + + // Section 3 + if (!article.section3.isNullOrBlank()) { + Text( + text = article.section3, + style = MaterialTheme.typography.bodyMedium, + color = OnSurface, + lineHeight = 26.sp, + ) + } + + // Photo gallery (images 2–5 if multiple) + val galleryImages = listOfNotNull(article.image2, article.image3, article.image4, article.image5) + .filter { article.image2 == null || it != article.image2 } // skip image2 if already shown inline + .ifEmpty { + // if section2 wasn't null, image2 was shown inline, use remaining + listOfNotNull(article.image3, article.image4, article.image5) + } + + if (galleryImages.isNotEmpty()) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { +// Text( +// text = "Dokumentasi", +// fontFamily = ManropeFontFamily, +// fontWeight = FontWeight.Bold, +// fontSize = 18.sp, +// color = OnSurface, +// ) + galleryImages.forEach { imageUrl -> + AsyncImage( + model = imageUrl, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(4f / 3f) + .clip(RoundedCornerShape(12.dp)), + ) + } + } + } + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListScreen.kt new file mode 100644 index 0000000..d2e2680 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListScreen.kt @@ -0,0 +1,644 @@ +package id.iiyh.inatrading.feature.news.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowForward +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.OutlineVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.news.data.model.NewsArticle + +@Composable +fun NewsListScreen( + onBack: () -> Unit, + onArticleClick: (NewsArticle) -> Unit, + viewModel: NewsListViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + containerColor = Background, + ) { innerPadding -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(innerPadding), + ) { + item { + NewsListHero() + } + + when { + uiState.isLoading -> { + item { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 64.dp), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + } + uiState.errorMessage != null -> { + item { + NewsListMessageCard( + title = stringResource(R.string.news_list_error_title), + body = uiState.errorMessage!!, + accent = AccentBlue, + ) + } + } + uiState.articles.isEmpty() -> { + item { + NewsListMessageCard( + title = stringResource(R.string.news_list_empty_title), + body = stringResource(R.string.news_list_empty_body), + accent = AccentPurple, + ) + } + } + else -> { + val articles = uiState.articles + + item { + SectionTitle() + } + + item { + FeaturedArticleCard( + article = articles.first(), + onClick = { onArticleClick(articles.first()) }, + ) + } + + val secondary = articles.drop(1).take(2) + if (secondary.isNotEmpty()) { + item { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + secondary.forEach { article -> + CompactArticleCard( + article = article, + modifier = Modifier.weight(1f), + onClick = { onArticleClick(article) }, + ) + } + if (secondary.size == 1) { + Spacer(modifier = Modifier.weight(1f)) + } + } + } + } + + val highlighted = articles.drop(3).firstOrNull() + if (highlighted != null) { + item { + WideArticleCard( + article = highlighted, + onClick = { onArticleClick(highlighted) }, + ) + } + } + + val remaining = articles.drop(4) + items(remaining.size) { index -> + val article = remaining[index] + EditorialArticleCard( + article = article, + onClick = { onArticleClick(article) }, + ) + } + } + } + } + } +} + +@Composable +private fun NewsListHero() { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(top = 24.dp, bottom = 8.dp), + ) { + Box( + modifier = Modifier + .align(Alignment.TopEnd) + .width(220.dp) + .height(200.dp) + .clip( + RoundedCornerShape( + topStart = 0.dp, + topEnd = 0.dp, + bottomStart = 64.dp, + bottomEnd = 0.dp, + ) + ) + .background(SurfaceContainerHighest.copy(alpha = 0.55f)), + ) + + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + Text( + text = stringResource(R.string.news_list_room), + style = MaterialTheme.typography.labelSmall, + color = BrandRed, + letterSpacing = 1.5.sp, + fontWeight = FontWeight.SemiBold, + ) + + Text( + text = stringResource(R.string.news_list_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 38.sp, + color = OnSurface, + lineHeight = 46.sp, + ) + + Text( + text = stringResource(R.string.news_list_intro), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 24.sp, + ) + + Row(horizontalArrangement = Arrangement.spacedBy(10.dp)) { + AccentPill( + label = stringResource(R.string.news_list_pill_editorial), + container = BrandRedContainer, + content = BrandRed, + ) + AccentPill( + label = stringResource(R.string.news_list_pill_trade_signals), + container = AccentBlueContainer, + content = AccentBlue, + ) + AccentPill( + label = stringResource(R.string.news_list_pill_merchant_stories), + container = AccentPurpleContainer, + content = AccentPurple, + ) + } + } + } +} + +@Composable +private fun SectionTitle() { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 18.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + text = stringResource(R.string.news_list_latest_updates), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 28.sp, + color = OnSurface, + ) + Box( + modifier = Modifier + .width(64.dp) + .height(2.dp) + .background(OutlineVariant), + ) + } +} + +@Composable +private fun FeaturedArticleCard( + article: NewsArticle, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 18.dp) + .clip(RoundedCornerShape(28.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + ) { + Column { + NewsImage( + article = article, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 10f), + ) + Column( + modifier = Modifier.padding(24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + CategoryBadge(article = article) + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + lineHeight = 32.sp, + color = OnSurface, + ) + val summary = article.displaySummary.ifBlank { + stringResource(R.string.news_list_featured_fallback) + } + Text( + text = summary, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 24.sp, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + DetailLink() + } + } + } +} + +@Composable +private fun CompactArticleCard( + article: NewsArticle, + modifier: Modifier = Modifier, + onClick: () -> Unit, +) { + Column( + modifier = modifier + .clip(RoundedCornerShape(20.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + NewsImage( + article = article, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(4f / 3f) + .clip(RoundedCornerShape(16.dp)), + ) + CategoryBadge(article = article) + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + lineHeight = 24.sp, + color = OnSurface, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + Text( + text = article.displaySummary.ifBlank { stringResource(R.string.news_list_compact_fallback) }, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + lineHeight = 20.sp, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + } +} + +@Composable +private fun WideArticleCard( + article: NewsArticle, + onClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 18.dp) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + ) { + NewsImage( + article = article, + modifier = Modifier + .weight(1.05f) + .aspectRatio(1f), + ) + Column( + modifier = Modifier + .weight(1f) + .padding(22.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + CategoryBadge(article = article) + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + lineHeight = 30.sp, + color = OnSurface, + maxLines = 4, + overflow = TextOverflow.Ellipsis, + ) + Text( + text = article.displaySummary.ifBlank { stringResource(R.string.news_list_wide_fallback) }, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + maxLines = 4, + overflow = TextOverflow.Ellipsis, + ) + DetailLink(label = stringResource(R.string.news_list_explore_update)) + } + } +} + +@Composable +private fun EditorialArticleCard( + article: NewsArticle, + onClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 18.dp) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(18.dp), + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + NewsImage( + article = article, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 9f) + .clip(RoundedCornerShape(18.dp)), + ) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + CategoryBadge(article = article) + if (!article.reporter.isNullOrBlank()) { + Text( + text = article.reporter.uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + letterSpacing = 1.2.sp, + ) + } + } + Text( + text = article.title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + lineHeight = 28.sp, + color = OnSurface, + ) + Text( + text = article.displaySummary.ifBlank { stringResource(R.string.news_list_editorial_fallback) }, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + ) + DetailLink() + } +} + +@Composable +private fun NewsListMessageCard( + title: String, + body: String, + accent: Color, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(bottom = 18.dp) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .size(48.dp) + .clip(CircleShape) + .background(accent.copy(alpha = 0.14f)), + ) + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = OnSurface, + ) + Text( + text = body, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + } +} + +@Composable +private fun AccentPill( + label: String, + container: Color, + content: Color, +) { + Box( + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(container) + .padding(horizontal = 14.dp, vertical = 8.dp), + ) { + Text( + text = label, + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.SemiBold, + color = content, + ) + } +} + +@Composable +private fun CategoryBadge(article: NewsArticle) { + val label = article.category?.takeIf { it.isNotBlank() } ?: stringResource(R.string.news_list_latest_update) + val container = when (label.lowercase()) { + "ekonomi" -> BrandRedContainer + "merchant success" -> AccentBlueContainer + "trade policy" -> AccentPurpleContainer + else -> SurfaceContainerHighest + } + val content = when (label.lowercase()) { + "ekonomi" -> BrandRed + "merchant success" -> AccentBlue + "trade policy" -> AccentPurple + else -> OnSurfaceVariant + } + + Box( + modifier = Modifier + .clip(RoundedCornerShape(10.dp)) + .background(container) + .padding(horizontal = 10.dp, vertical = 6.dp), + ) { + Text( + text = label, + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = content, + letterSpacing = 0.8.sp, + ) + } +} + +@Composable +private fun DetailLink(label: String? = null) { + val resolvedLabel = label ?: stringResource(R.string.news_list_view_details) + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(6.dp), + ) { + Text( + text = resolvedLabel, + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.Bold, + color = BrandRed, + ) + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowForward, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + } +} + +@Composable +private fun NewsImage( + article: NewsArticle, + modifier: Modifier = Modifier, +) { + val imageUrl = article.image1 ?: article.image2 ?: article.image3 + + if (imageUrl != null) { + AsyncImage( + model = imageUrl, + contentDescription = article.title, + contentScale = ContentScale.Crop, + modifier = modifier, + ) + } else { + Box( + modifier = modifier + .background( + Brush.linearGradient( + colors = listOf( + SurfaceContainerHighest, + SurfaceContainerLow, + ) + ) + ), + ) { + Text( + text = article.category?.uppercase() ?: "INA", + style = MaterialTheme.typography.labelLarge, + color = OnSurfaceVariant.copy(alpha = 0.7f), + modifier = Modifier + .align(Alignment.Center) + .padding(12.dp), + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListViewModel.kt new file mode 100644 index 0000000..2bbbc59 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsListViewModel.kt @@ -0,0 +1,55 @@ +package id.iiyh.inatrading.feature.news.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.news.data.model.NewsArticle +import id.iiyh.inatrading.feature.news.domain.NewsRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class NewsListUiState( + val articles: List = emptyList(), + val isLoading: Boolean = false, + val errorMessage: String? = null, +) + +@HiltViewModel +class NewsListViewModel @Inject constructor( + private val newsRepository: NewsRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(NewsListUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadArticles() + } + + fun loadArticles() { + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, errorMessage = null) } + newsRepository.getArticles() + .onSuccess { articles -> + _uiState.update { + it.copy( + articles = articles, + isLoading = false, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = error.message ?: "Failed to load news.", + ) + } + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsNavViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsNavViewModel.kt new file mode 100644 index 0000000..51d3040 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/news/presentation/NewsNavViewModel.kt @@ -0,0 +1,21 @@ +package id.iiyh.inatrading.feature.news.presentation + +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.news.data.model.NewsArticle +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import javax.inject.Inject + +/** Shared ViewModel untuk passing NewsArticle ke detail screen tanpa serialisasi */ +@HiltViewModel +class NewsNavViewModel @Inject constructor() : ViewModel() { + + private val _selectedArticle = MutableStateFlow(null) + val selectedArticle: StateFlow = _selectedArticle.asStateFlow() + + fun select(article: NewsArticle) { + _selectedArticle.value = article + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/data/model/ProductItem.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/data/model/ProductItem.kt new file mode 100644 index 0000000..4a04b9c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/data/model/ProductItem.kt @@ -0,0 +1,148 @@ +package id.iiyh.inatrading.feature.product.data.model + +import com.google.gson.annotations.SerializedName + +data class ProductItem( + val id: String, + val image: String? = null, + val isFavorite: Boolean = false, + val market: String? = null, + val maxPrice: Double = 0.0, + val minPrice: Double = 0.0, + val name: String, + val totalStock: Int = 0, +) + +data class ProductListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class ProductDetailResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val data: ProductDetail? = null, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class ProductDetail( + val id: String, + val description: String? = null, + @SerializedName(value = "image", alternate = ["imageId"]) + val image: String? = null, + val isEligibleToExport: Boolean = false, + val isNew: Boolean = false, + val isPreOrder: Boolean = false, + val name: String, + val preOrderDay: Int? = null, + val productFiles: List = emptyList(), + val productFeatures: List = emptyList(), + val productImages: List = emptyList(), + val productInformations: List = emptyList(), + val categoryInformations: List = emptyList(), + val productKeyWords: List = emptyList(), + val productModels: List = emptyList(), + val seller: ProductSeller? = null, + val subCategory: ProductSubCategory? = null, + val state: String? = null, + val complianceInformation: ComplianceInformation? = null, + val warrantyInformation: WarrantyInformation? = null, +) + +data class ProductImage( + val id: String? = null, + @SerializedName(value = "image", alternate = ["imageId"]) + val image: String? = null, + val sequence: Int = 0, +) + +data class ProductInformation( + val id: String? = null, + val paramName: String? = null, + val paramValue: String? = null, +) + +data class ProductModel( + val id: String? = null, + val currency: String? = null, + val dimensionType: String? = null, + val height: Double? = null, + @SerializedName(value = "image", alternate = ["imageId"]) + val image: String? = null, + val isConfigurePromotionPrice: Boolean = false, + val isMeasurement: Boolean = false, + val name: String? = null, + val price: Double? = null, + val sku: String? = null, + val warehouses: List = emptyList(), + val weight: Double? = null, + val weightType: String? = null, + val width: Double? = null, + val length: Double? = null, + val promotionPrice: Double? = null, + val promotionCurrency: String? = null, + val packagingWeight: Double? = null, + val packagingWeightType: String? = null, + val packagingLength: Double? = null, + val packagingWidth: Double? = null, + val packagingHeight: Double? = null, + val packagingDimensionType: String? = null, + val productMeasurements: List = emptyList(), +) + +data class ProductWarehouse( + val id: String, + val address: String? = null, + val country: String? = null, + val province: String? = null, + val city: String? = null, + val postalCode: String? = null, + val latitude: Double? = null, + val longitude: Double? = null, + val stock: Int = 0, +) + +data class ProductSeller( + val id: String, + val image: String? = null, + val name: String? = null, +) + +data class ProductSubCategory( + val id: String, + val name: String? = null, +) + +data class ProductMeasurement( + val id: String? = null, + val measurementType: String? = null, + val measurementValue: String? = null, + val price: Double? = null, + val promotionPrice: Double? = null, + val weight: Double? = null, + val weightType: String? = null, + val length: Double? = null, + val width: Double? = null, + val height: Double? = null, + val dimensionType: String? = null, + val warehouses: List = emptyList(), +) + +data class ComplianceInformation( + val safetyWarning: String? = null, + val countryOfOrigin: String? = null, + val isDangerousGoodRegulation: Boolean? = null, + val fileId: String? = null, +) + +data class WarrantyInformation( + val type: String? = null, + val duration: Int? = null, + val durationType: String? = null, +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/data/repository/ProductRepositoryImpl.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/data/repository/ProductRepositoryImpl.kt new file mode 100644 index 0000000..e7d61d4 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/data/repository/ProductRepositoryImpl.kt @@ -0,0 +1,45 @@ +package id.iiyh.inatrading.feature.product.data.repository + +import id.iiyh.inatrading.core.data.remote.ApiService +import id.iiyh.inatrading.feature.product.data.model.ProductDetail +import id.iiyh.inatrading.feature.product.domain.ProductPage +import id.iiyh.inatrading.feature.product.domain.ProductRepository +import javax.inject.Inject + +class ProductRepositoryImpl @Inject constructor( + private val apiService: ApiService, +) : ProductRepository { + + override suspend fun getProducts(page: Int, limit: Int): Result { + return try { + val response = apiService.getProducts(page = page, limit = limit) + if (response.isSuccess) { + Result.success( + ProductPage( + items = response.rows, + totalItem = response.totalItem, + totalPage = response.totalPage, + ) + ) + } else { + Result.failure(Exception(response.responseDesc ?: "Gagal memuat produk")) + } + } catch (e: Exception) { + Result.failure(e) + } + } + + override suspend fun getProductDetail(productId: String): Result { + return try { + val response = apiService.getProductDetail(productId = productId) + if (!response.isSuccess) { + return Result.failure(Exception(response.responseDesc ?: "Gagal memuat detail produk")) + } + val data = response.data + ?: return Result.failure(Exception("Detail produk tidak ditemukan")) + Result.success(data) + } catch (e: Exception) { + Result.failure(e) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/domain/ProductRepository.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/domain/ProductRepository.kt new file mode 100644 index 0000000..5fbf8c9 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/domain/ProductRepository.kt @@ -0,0 +1,15 @@ +package id.iiyh.inatrading.feature.product.domain + +import id.iiyh.inatrading.feature.product.data.model.ProductDetail +import id.iiyh.inatrading.feature.product.data.model.ProductItem + +data class ProductPage( + val items: List, + val totalItem: Int, + val totalPage: Int, +) + +interface ProductRepository { + suspend fun getProducts(page: Int, limit: Int): Result + suspend fun getProductDetail(productId: String): Result +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailScreen.kt new file mode 100644 index 0000000..e4ad8bc --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailScreen.kt @@ -0,0 +1,995 @@ +package id.iiyh.inatrading.feature.product.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.outlined.Battery6Bar +import androidx.compose.material.icons.outlined.CheckCircle +import androidx.compose.material.icons.outlined.Inventory2 +import androidx.compose.material.icons.outlined.PhotoCamera +import androidx.compose.material.icons.outlined.Public +import androidx.compose.material.icons.outlined.ShoppingCart +import androidx.compose.material.icons.outlined.Verified +import androidx.compose.material.icons.outlined.Warning +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.core.text.HtmlCompat +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.product.data.model.ComplianceInformation +import id.iiyh.inatrading.feature.product.data.model.ProductDetail +import id.iiyh.inatrading.feature.product.data.model.ProductImage +import id.iiyh.inatrading.feature.product.data.model.ProductInformation +import id.iiyh.inatrading.feature.product.data.model.ProductModel +import java.text.NumberFormat +import java.util.Locale + +@Composable +fun ProductDetailScreen( + onBack: () -> Unit, + onLoginRequired: () -> Unit = {}, + onSessionExpired: () -> Unit = onLoginRequired, + onCartAdded: () -> Unit = {}, + cartItemCount: Int = 0, + onCartClick: () -> Unit = {}, + viewModel: ProductDetailViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + val cartAddedMessage = stringResource(R.string.cart_add_success) + + LaunchedEffect(uiState.cartMessage) { + uiState.cartMessage?.let { message -> + snackbarHostState.showSnackbar( + if (message == CART_ADDED_MESSAGE) cartAddedMessage else message, + ) + if (message == CART_ADDED_MESSAGE) { + onCartAdded() + } + viewModel.consumeCartMessage() + } + } + + LaunchedEffect(uiState.sessionExpired) { + if (uiState.sessionExpired) { + viewModel.consumeSessionExpired() + onSessionExpired() + } + } + + Scaffold( + topBar = { + ProductDetailTopBar( + onBack = onBack, + cartItemCount = cartItemCount, + onCartClick = onCartClick, + ) + }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + bottomBar = { + uiState.product?.let { product -> + ProductDetailBottomBar( + product = product, + isAddingToCart = uiState.isAddingToCart, + canAddToCart = uiState.canAddToCart, + onAddToCart = { + if (uiState.isLoggedIn) { + viewModel.addToCart() + } else { + onLoginRequired() + } + }, + ) + } + }, + containerColor = Background, + ) { innerPadding -> + when { + uiState.isLoading -> { + Box( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + + uiState.errorMessage != null -> { + ErrorState( + message = uiState.errorMessage!!, + onRetry = viewModel::loadProduct, + modifier = Modifier.padding(innerPadding), + ) + } + + uiState.product != null -> { + ProductDetailContent( + product = uiState.product!!, + modifier = Modifier.padding(innerPadding), + ) + } + } + } +} + +@Composable +private fun ProductDetailTopBar( + onBack: () -> Unit, + cartItemCount: Int, + onCartClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.88f)) + .padding(horizontal = 20.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + TopBarIcon( + icon = Icons.AutoMirrored.Outlined.ArrowBack, + onClick = onBack, + ) + Text( + text = stringResource(R.string.product_detail_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = BrandRed, + ) + } + + Box { + TopBarIcon( + icon = Icons.Outlined.ShoppingCart, + onClick = onCartClick, + ) + if (cartItemCount > 0) { + Box( + modifier = Modifier + .size(16.dp) + .offset(x = 8.dp, y = (-4).dp) + .background(BrandRed, CircleShape) + .align(Alignment.TopEnd), + contentAlignment = Alignment.Center, + ) { + Text( + text = if (cartItemCount > 9) "9+" else cartItemCount.toString(), + style = MaterialTheme.typography.labelSmall.copy(fontSize = 9.sp), + color = Color.White, + ) + } + } + } + } +} + +@Composable +private fun ProductDetailContent( + product: ProductDetail, + modifier: Modifier = Modifier, +) { + val model = product.primaryModel() + val gallery = product.galleryImages() + var selectedImageIndex by rememberSaveable(product.id) { mutableIntStateOf(0) } + + LaunchedEffect(gallery.size) { + if (selectedImageIndex >= gallery.size) selectedImageIndex = 0 + } + + LazyColumn( + modifier = modifier + .fillMaxSize() + .background(Background), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 112.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + item { + ProductGallerySection( + product = product, + gallery = gallery, + selectedImageIndex = selectedImageIndex, + onImageSelected = { selectedImageIndex = it }, + ) + } + + item { + ProductSummarySection(product = product, model = model) + } + + if (product.productFeatures.isNotEmpty()) { + item { + FeatureCardList(features = product.productFeatures) + } + } + + item { + OverviewStatsSection(product = product, model = model) + } + + product.complianceInformation?.takeIf { it.hasVisibleData() }?.let { compliance -> + item { + ComplianceWarningSection(compliance = compliance) + } + } + + item { + DetailedSpecificationsSection(product = product, model = model) + } + + if (product.productKeyWords.isNotEmpty()) { + item { + KeywordSection(product.productKeyWords) + } + } + } +} + +@Composable +private fun ProductGallerySection( + product: ProductDetail, + gallery: List, + selectedImageIndex: Int, + onImageSelected: (Int) -> Unit, +) { + val selectedImage = gallery.getOrNull(selectedImageIndex) + + Column(verticalArrangement = Arrangement.spacedBy(14.dp)) { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 10f) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLow), + ) { + if (selectedImage != null) { + AsyncImage( + model = selectedImage, + contentDescription = product.name, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } + + Column( + modifier = Modifier + .align(Alignment.TopStart) + .padding(18.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + if (product.isNew) { + EditorialBadge( + text = stringResource(R.string.product_detail_status_new), + container = AccentPurpleContainer, + content = AccentPurple, + ) + } + if (product.isEligibleToExport) { + EditorialBadge( + text = stringResource(R.string.product_detail_status_export), + container = AccentBlue, + content = Color.White, + icon = Icons.Outlined.Public, + ) + } + } + + Box( + modifier = Modifier + .align(Alignment.BottomEnd) + .padding(18.dp) + .size(116.dp) + .background( + SurfaceContainerHighest.copy(alpha = 0.18f), + RoundedCornerShape(26.dp), + ) + ) + } + + if (gallery.isNotEmpty()) { + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + gallery.take(3).forEachIndexed { index, image -> + AsyncImage( + model = image, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier + .weight(1f) + .aspectRatio(1f) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = { onImageSelected(index) }, + ) + .then( + if (selectedImageIndex == index) Modifier.background(BrandRedContainer) + else Modifier + ), + ) + } + if (gallery.size > 3) { + Box( + modifier = Modifier + .weight(1f) + .aspectRatio(1f) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerHighest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = { onImageSelected(3) }, + ), + contentAlignment = Alignment.Center, + ) { + Text( + text = "+${gallery.size - 3}", + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + color = OnSurfaceVariant, + ) + } + } + } + } + } +} + +@Composable +private fun ProductSummarySection( + product: ProductDetail, + model: ProductModel?, +) { + val eyebrow = buildList { + product.brand()?.takeIf(String::isNotBlank)?.let(::add) + product.categoryLabel()?.takeIf(String::isNotBlank)?.let(::add) + }.joinToString(" • ") + + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + if (eyebrow.isNotBlank()) { + Text( + text = eyebrow, + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = AccentPurple, + letterSpacing = 2.sp, + ) + } + + Text( + text = product.name, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 36.sp, + lineHeight = 42.sp, + color = OnSurface, + ) + + PriceBlock(model = model) + + product.description.orEmpty().toPlainText().takeIf(String::isNotBlank)?.let { description -> + Text( + text = description, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 24.sp, + ) + } + } +} + +@Composable +private fun PriceBlock(model: ProductModel?) { + val salePrice = model?.promotionPrice + val regularPrice = model?.price + Row( + verticalAlignment = Alignment.Bottom, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = (salePrice ?: regularPrice).toDisplayPrice(), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 28.sp, + color = BrandRed, + ) + if (salePrice != null && regularPrice != null && regularPrice > salePrice) { + Text( + text = regularPrice.toDisplayPrice(), + style = MaterialTheme.typography.titleMedium, + color = OnSurfaceVariant.copy(alpha = 0.6f), + ) + } + } +} + +@Composable +private fun FeatureCardList( + features: List, +) { + val icons = listOf( + Icons.Outlined.CheckCircle, + Icons.Outlined.Battery6Bar, + Icons.Outlined.PhotoCamera, + ) + val colors = listOf(BrandRed, AccentBlue, AccentPurple) + val containers = listOf(BrandRedContainer, AccentBlueContainer, AccentPurpleContainer) + + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + features.take(3).forEachIndexed { index, feature -> + FeatureCard( + icon = icons[index % icons.size], + iconTint = colors[index % colors.size], + iconContainer = containers[index % containers.size], + title = feature, + ) + } + } +} + +@Composable +private fun FeatureCard( + icon: ImageVector, + iconTint: Color, + iconContainer: Color, + title: String, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(18.dp)) + .background(SurfaceContainerLow) + .padding(16.dp), + horizontalArrangement = Arrangement.spacedBy(14.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(14.dp)) + .background(iconContainer), + contentAlignment = Alignment.Center, + ) { + Icon(icon, contentDescription = null, tint = iconTint) + } + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + } +} + +@Composable +private fun OverviewStatsSection( + product: ProductDetail, + model: ProductModel?, +) { + val stock = model?.warehouses?.sumOf { it.stock }?.takeIf { it > 0 } + val warranty = product.warrantyInformation?.formattedText() + + if (stock == null && warranty == null) return + + Row(horizontalArrangement = Arrangement.spacedBy(14.dp)) { + warranty?.let { + StatCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Verified, + iconTint = BrandRed, + label = stringResource(R.string.product_detail_warranty), + value = it, + ) + } + stock?.let { + StatCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Inventory2, + iconTint = AccentBlue, + label = stringResource(R.string.product_detail_stock), + value = stringResource(R.string.product_detail_stock_available, it), + ) + } + } +} + +@Composable +private fun StatCard( + label: String, + value: String, + icon: ImageVector, + iconTint: Color, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .clip(RoundedCornerShape(18.dp)) + .background(SurfaceContainerLowest) + .padding(18.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Icon(icon, contentDescription = null, tint = iconTint) + Text( + text = label.uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + letterSpacing = 1.sp, + ) + Text( + text = value, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + } +} + +@Composable +private fun ComplianceWarningSection( + compliance: ComplianceInformation, +) { + val lines = buildList { + compliance.safetyWarning?.takeIf(String::isNotBlank)?.let(::add) + compliance.countryOfOrigin?.takeIf(String::isNotBlank)?.let { + add(stringResource(R.string.product_detail_origin_value, it)) + } + } + if (lines.isEmpty()) return + + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(18.dp)) + .background(BrandRedContainer.copy(alpha = 0.22f)) + .padding(16.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.Top, + ) { + Icon( + imageVector = Icons.Outlined.Warning, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.padding(top = 2.dp), + ) + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.product_detail_safety_warning), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = BrandRed, + letterSpacing = 1.sp, + ) + lines.forEach { + Text(text = it, style = MaterialTheme.typography.bodyMedium, color = OnSurfaceVariant) + } + } + } +} + +@Composable +private fun DetailedSpecificationsSection( + product: ProductDetail, + model: ProductModel?, +) { + val specifications = buildSpecifications(product, model) + if (specifications.isEmpty()) return + + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.product_detail_detailed_specifications), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 28.sp, + color = OnSurface, + ) + + specifications.forEach { (label, value) -> + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 6.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + ) { + Text( + text = label, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + modifier = Modifier.weight(1f), + ) + Spacer(modifier = Modifier.width(16.dp)) + Text( + text = value, + style = MaterialTheme.typography.bodyMedium, + fontWeight = FontWeight.Bold, + color = OnSurface, + modifier = Modifier.weight(1f), + textAlign = TextAlign.End, + ) + } + Box( + modifier = Modifier + .fillMaxWidth() + .height(1.dp) + .background(SurfaceContainerHighest) + ) + } + } +} + +@Composable +private fun KeywordSection( + keywords: List, +) { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.product_detail_keywords), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = OnSurface, + ) + LazyRow(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + itemsIndexed(keywords) { _, keyword -> + Box( + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(AccentPurpleContainer.copy(alpha = 0.3f)) + .padding(horizontal = 14.dp, vertical = 8.dp), + ) { + Text( + text = keyword, + style = MaterialTheme.typography.labelMedium, + color = AccentPurple, + fontWeight = FontWeight.Bold, + ) + } + } + } + } +} + +@Composable +private fun ProductDetailBottomBar( + product: ProductDetail, + isAddingToCart: Boolean, + canAddToCart: Boolean, + onAddToCart: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.95f)) + .padding(horizontal = 16.dp, vertical = 12.dp), + ) { + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + SecondaryBottomAction( + text = stringResource(R.string.product_detail_add_to_cart), + icon = Icons.Outlined.ShoppingCart, + enabled = canAddToCart && !isAddingToCart, + loading = isAddingToCart, + onClick = onAddToCart, + modifier = Modifier.weight(1f), + ) + PrimaryBottomAction( + text = stringResource(R.string.product_detail_buy_now), + modifier = Modifier.weight(1.45f), + ) + } + } +} + +@Composable +private fun SecondaryBottomAction( + text: String, + icon: ImageVector, + enabled: Boolean, + loading: Boolean, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .height(56.dp) + .clip(RoundedCornerShape(18.dp)) + .background(Color.White) + .clickable( + enabled = enabled && !loading, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + if (loading) { + CircularProgressIndicator( + modifier = Modifier.size(18.dp), + color = BrandRed, + strokeWidth = 2.dp, + ) + } else { + Icon(icon, contentDescription = null, tint = OnSurface) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = text, + color = OnSurface, + fontWeight = FontWeight.Bold, + ) + } + } +} + +@Composable +private fun PrimaryBottomAction( + text: String, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .height(56.dp) + .clip(RoundedCornerShape(18.dp)) + .background(Brush.linearGradient(listOf(BrandRed, Color(0xFFDB322F)))) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = Color.White.copy(alpha = 0.18f)), + onClick = {}, + ), + contentAlignment = Alignment.Center, + ) { + Text( + text = text, + color = Color.White, + fontWeight = FontWeight.Bold, + fontFamily = ManropeFontFamily, + ) + } +} + +@Composable +private fun TopBarIcon( + icon: ImageVector, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(12.dp)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = OnSurfaceVariant, + ) + } +} + +@Composable +private fun EditorialBadge( + text: String, + container: Color, + content: Color, + icon: ImageVector? = null, +) { + Row( + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(container) + .padding(horizontal = 12.dp, vertical = 8.dp), + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (icon != null) { + Icon(icon, contentDescription = null, tint = content, modifier = Modifier.size(14.dp)) + } + Text( + text = text, + style = MaterialTheme.typography.labelSmall, + color = content, + fontWeight = FontWeight.Bold, + letterSpacing = 1.sp, + ) + } +} + +@Composable +private fun ErrorState( + message: String, + onRetry: () -> Unit, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .fillMaxSize() + .padding(24.dp), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Text( + text = stringResource(R.string.product_detail_load_error), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + color = OnSurface, + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = message, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + Spacer(modifier = Modifier.height(20.dp)) + androidx.compose.material3.Button(onClick = onRetry) { + Text(stringResource(R.string.product_detail_retry)) + } + } +} + +private fun ProductDetail.primaryModel(): ProductModel? = productModels.firstOrNull() + +private fun ProductDetail.brand(): String? = + productInformations.firstOrNull { it.paramName.equals("Brand", ignoreCase = true) }?.paramValue + +private fun ProductDetail.categoryLabel(): String? = + categoryInformations.firstOrNull()?.paramValue + ?: subCategory?.name + +private fun ProductDetail.galleryImages(): List { + val ordered = productImages + .sortedBy(ProductImage::sequence) + .mapNotNull { it.image } + val fallback = listOfNotNull(image, primaryModel()?.image) + return (ordered + fallback).distinct() +} + +private fun ComplianceInformation.hasVisibleData(): Boolean = + !safetyWarning.isNullOrBlank() || !countryOfOrigin.isNullOrBlank() + +private fun id.iiyh.inatrading.feature.product.data.model.WarrantyInformation.formattedText(): String? { + val durationText = duration?.takeIf { it > 0 }?.let { + buildString { + append(it) + durationType?.takeIf(String::isNotBlank)?.let { type -> + append(" ") + append(type) + } + } + } + return listOfNotNull(type?.takeIf(String::isNotBlank), durationText).joinToString(" ").ifBlank { null } +} + +@Composable +private fun buildSpecifications( + product: ProductDetail, + model: ProductModel?, +): List> { + val items = mutableListOf>() + + product.brand()?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_brand) to it + } + product.productInformations.firstOrNull { it.paramName.equals("Battery", ignoreCase = true) }?.paramValue + ?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_battery_capacity) to it + } + product.categoryLabel()?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_category) to it + } + product.complianceInformation?.countryOfOrigin?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_origin) to it + } + model?.sku?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_sku) to it + } + model?.name?.takeIf(String::isNotBlank)?.let { + items += stringResource(R.string.product_detail_model_name) to it + } + model?.weight?.let { weight -> + model.weightType?.takeIf(String::isNotBlank)?.let { type -> + items += stringResource(R.string.product_detail_weight) to "${trimTrailingZero(weight)} $type" + } + } + model?.let { currentModel -> + val parts = listOfNotNull(currentModel.length, currentModel.width, currentModel.height).map(::trimTrailingZero) + if (parts.size == 3 && !currentModel.dimensionType.isNullOrBlank()) { + items += stringResource(R.string.product_detail_dimensions) to + "${parts[0]} x ${parts[1]} x ${parts[2]} ${currentModel.dimensionType.lowercase()}" + } + } + product.warrantyInformation?.formattedText()?.let { + items += stringResource(R.string.product_detail_warranty) to it + } + + return items +} + +private fun String.toPlainText(): String = + HtmlCompat.fromHtml(this, HtmlCompat.FROM_HTML_MODE_LEGACY).toString().trim() + +private fun trimTrailingZero(value: Double): String = + if (value % 1.0 == 0.0) value.toInt().toString() else value.toString() + +@Composable +private fun Double?.toDisplayPrice(): String { + if (this == null || this <= 0.0) return stringResource(R.string.products_contact_price) + return NumberFormat.getCurrencyInstance(Locale.forLanguageTag("id-ID")) + .apply { maximumFractionDigits = 0 } + .format(this) + .replace("Rp", "Rp ") +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailViewModel.kt new file mode 100644 index 0000000..f798996 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductDetailViewModel.kt @@ -0,0 +1,192 @@ +package id.iiyh.inatrading.feature.product.presentation + +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.local.SessionManager +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.cart.domain.CartRepository +import id.iiyh.inatrading.feature.product.data.model.ProductDetail +import id.iiyh.inatrading.feature.product.data.model.ProductModel +import id.iiyh.inatrading.feature.product.domain.ProductRepository +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +const val CART_ADDED_MESSAGE = "__cart_added__" + +data class ProductDetailUiState( + val product: ProductDetail? = null, + val isLoading: Boolean = false, + val errorMessage: String? = null, + val isLoggedIn: Boolean = false, + val isAddingToCart: Boolean = false, + val cartMessage: String? = null, + val sessionExpired: Boolean = false, + val canAddToCart: Boolean = false, +) + +@HiltViewModel +class ProductDetailViewModel @Inject constructor( + savedStateHandle: SavedStateHandle, + private val productRepository: ProductRepository, + private val cartRepository: CartRepository, + private val authRepository: AuthRepository, + sessionManager: SessionManager, +) : ViewModel() { + + private val productId: String = checkNotNull(savedStateHandle["productId"]) + + private val _uiState = MutableStateFlow(ProductDetailUiState(isLoading = true)) + val uiState: StateFlow = combine( + _uiState, + sessionManager.token, + ) { state, token -> + state.copy(isLoggedIn = !token.isNullOrBlank()) + }.stateIn( + scope = viewModelScope, + started = SharingStarted.WhileSubscribed(5_000), + initialValue = ProductDetailUiState(isLoading = true), + ) + + init { + loadProduct() + } + + fun loadProduct() { + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, errorMessage = null) } + productRepository.getProductDetail(productId) + .onSuccess { product -> + _uiState.update { + it.copy( + product = product, + isLoading = false, + errorMessage = null, + canAddToCart = product.primaryCartModel()?.let { model -> + model.primaryAvailableStock() > 0 && model.displayCartPrice() > 0.0 + } == true, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = error.message ?: "Gagal memuat detail produk", + ) + } + } + } + } + + fun addToCart() { + val product = _uiState.value.product ?: return + val sellerId = product.seller?.id + ?: run { + _uiState.update { it.copy(cartMessage = "Seller produk tidak ditemukan") } + return + } + val model = product.primaryCartModel() + ?: run { + _uiState.update { it.copy(cartMessage = "Model produk belum tersedia") } + return + } + val productModelId = model.id + ?: run { + _uiState.update { it.copy(cartMessage = "ID model produk tidak ditemukan") } + return + } + val warehouseId = model.primaryWarehouseId() + ?: run { + _uiState.update { it.copy(cartMessage = "Warehouse produk tidak ditemukan") } + return + } + if (model.primaryAvailableStock() <= 0) { + _uiState.update { it.copy(cartMessage = "Stok produk habis") } + return + } + if (model.displayCartPrice() <= 0.0) { + _uiState.update { it.copy(cartMessage = "Produk ini belum memiliki harga untuk ditambahkan ke keranjang") } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isAddingToCart = true, cartMessage = null, sessionExpired = false) } + cartRepository.addToCart( + sellerId = sellerId, + productModelId = productModelId, + warehouseId = warehouseId, + quantity = 1, + productMeasurementId = model.primaryMeasurementId(), + ).onSuccess { + _uiState.update { + it.copy( + isAddingToCart = false, + cartMessage = CART_ADDED_MESSAGE, + ) + } + }.onFailure { error -> + if (error is SessionExpiredException) { + authRepository.logout() + _uiState.update { + it.copy( + isAddingToCart = false, + sessionExpired = true, + cartMessage = null, + ) + } + } else { + _uiState.update { + it.copy( + isAddingToCart = false, + cartMessage = error.message ?: "Gagal menambahkan produk ke keranjang", + ) + } + } + } + } + } + + fun consumeCartMessage() { + _uiState.update { it.copy(cartMessage = null) } + } + + fun consumeSessionExpired() { + _uiState.update { it.copy(sessionExpired = false) } + } +} + +private fun ProductDetail.primaryCartModel(): ProductModel? = productModels.firstOrNull() + +private fun ProductModel.primaryWarehouseId(): String? = + productMeasurements.firstOrNull() + ?.warehouses + ?.firstOrNull() + ?.id + ?: warehouses.firstOrNull()?.id + +private fun ProductModel.primaryMeasurementId(): String = + productMeasurements.firstOrNull()?.id.orEmpty() + +private fun ProductModel.primaryAvailableStock(): Int = + productMeasurements.firstOrNull() + ?.warehouses + ?.firstOrNull() + ?.stock + ?: warehouses.firstOrNull()?.stock + ?: 0 + +private fun ProductModel.displayCartPrice(): Double { + return promotionPrice?.takeIf { it > 0.0 } + ?: price?.takeIf { it > 0.0 } + ?: 0.0 +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductNavViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductNavViewModel.kt new file mode 100644 index 0000000..67cfe06 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductNavViewModel.kt @@ -0,0 +1,20 @@ +package id.iiyh.inatrading.feature.product.presentation + +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.product.data.model.ProductItem +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import javax.inject.Inject + +@HiltViewModel +class ProductNavViewModel @Inject constructor() : ViewModel() { + + private val _selectedProduct = MutableStateFlow(null) + val selectedProduct: StateFlow = _selectedProduct.asStateFlow() + + fun select(product: ProductItem) { + _selectedProduct.value = product + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsScreen.kt new file mode 100644 index 0000000..fdba554 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsScreen.kt @@ -0,0 +1,896 @@ +package id.iiyh.inatrading.feature.product.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material.icons.automirrored.outlined.ArrowForward +import androidx.compose.material.icons.outlined.FavoriteBorder +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Public +import androidx.compose.material.icons.outlined.Search +import androidx.compose.material.icons.outlined.ShoppingCart +import androidx.compose.material.icons.outlined.Storefront +import androidx.compose.material.icons.outlined.Tune +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.runtime.snapshotFlow +import androidx.compose.ui.Alignment +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaChip +import id.iiyh.inatrading.core.ui.components.InaChipVariant +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.product.data.model.ProductItem +import java.text.NumberFormat +import java.util.Locale +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filter + +@Composable +fun ProductsScreen( + onProductClick: (ProductItem) -> Unit = {}, + onLoginRequired: () -> Unit = {}, + onSessionExpired: () -> Unit = onLoginRequired, + viewModel: ProductsViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val gridState = rememberLazyGridState() + val snackbarHostState = remember { SnackbarHostState() } + val favoriteAddedMessage = stringResource(R.string.products_favorite_added) + val favoriteRemovedMessage = stringResource(R.string.products_favorite_removed) + + LaunchedEffect(gridState) { + snapshotFlow { + val layoutInfo = gridState.layoutInfo + val lastVisible = layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: -1 + lastVisible to layoutInfo.totalItemsCount + } + .filter { (_, totalCount) -> totalCount > 0 } + .distinctUntilChanged() + .collect { (lastVisible, totalCount) -> + if (lastVisible >= totalCount - 5) { + viewModel.loadNextPage() + } + } + } + + LaunchedEffect(uiState.favoriteMessage) { + uiState.favoriteMessage?.let { + val message = when (it) { + PRODUCT_FAVORITE_ADDED_MESSAGE -> favoriteAddedMessage + PRODUCT_FAVORITE_REMOVED_MESSAGE -> favoriteRemovedMessage + else -> it + } + snackbarHostState.showSnackbar(message) + viewModel.consumeFavoriteMessage() + } + } + + LaunchedEffect(uiState.sessionExpired) { + if (uiState.sessionExpired) { + viewModel.consumeSessionExpired() + onSessionExpired() + } + } + + Box( + modifier = Modifier + .fillMaxSize() + .background(Background), + ) { + LazyVerticalGrid( + columns = GridCells.Fixed(2), + state = gridState, + modifier = Modifier.fillMaxSize(), + contentPadding = PaddingValues(start = 16.dp, end = 16.dp, top = 20.dp, bottom = 112.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + ProductsHero( + totalItem = uiState.totalItem, + totalLoaded = uiState.items.size, + ) + } + + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + SearchAndActionRow( + query = uiState.searchQuery, + onQueryChange = viewModel::onSearchQueryChange, + ) + } + + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + CategoryRow( + selected = uiState.selectedCategory, + onSelected = viewModel::onCategorySelected, + ) + } + + when { + uiState.isInitialLoading -> { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + CenterState( + title = stringResource(R.string.products_loading_title), + body = stringResource(R.string.products_loading_body), + loading = true, + ) + } + } + uiState.errorMessage != null && uiState.items.isEmpty() -> { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + CenterState( + title = stringResource(R.string.products_error_title), + body = uiState.errorMessage!!, + actionLabel = stringResource(R.string.product_detail_retry), + onAction = viewModel::loadInitial, + ) + } + } + uiState.filteredItems.isEmpty() -> { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + CenterState( + title = stringResource(R.string.products_empty_title), + body = stringResource(R.string.products_empty_body), + ) + } + } + else -> { + items(uiState.filteredItems, key = { it.id }) { product -> + ProductCard( + product = product, + isFavorite = product.id in uiState.favoriteIds, + onFavoriteClick = { + if (uiState.isLoggedIn) { + viewModel.toggleFavorite(product.id) + } else { + onLoginRequired() + } + }, + onClick = { onProductClick(product) }, + ) + } + + if (uiState.isAppending) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 8.dp), + horizontalArrangement = Arrangement.Center, + ) { + CircularProgressIndicator( + color = BrandRed, + modifier = Modifier.size(28.dp), + strokeWidth = 2.5.dp, + ) + } + } + } + } + } + } + + SnackbarHost( + hostState = snackbarHostState, + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 88.dp), + ) + } + + if (uiState.favoriteDialogOpen) { + FavoritePickerDialog( + groups = uiState.favoriteGroups, + createMode = uiState.favoriteCreateMode, + isLoading = uiState.favoriteActionLoading, + onDismiss = viewModel::dismissFavoriteDialog, + onCreateMode = viewModel::showCreateFavoriteGroup, + onCancelCreate = viewModel::hideCreateFavoriteGroup, + onCreateGroup = viewModel::createFavoriteGroup, + onSelectGroup = viewModel::addProductToFavorite, + ) + } +} + +@Composable +private fun ProductsHero( + totalItem: Int, + totalLoaded: Int, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(28.dp)) + .background( + Brush.linearGradient( + colors = listOf( + SurfaceContainerLowest, + SurfaceContainerLow, + ) + ) + ) + .padding(20.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(220.dp) + .clip(RoundedCornerShape(36.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.35f)), + ) + + Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { + Text( + text = stringResource(R.string.products_limited_edition), + style = MaterialTheme.typography.labelSmall, + color = AccentBlue, + fontWeight = FontWeight.Bold, + letterSpacing = 2.sp, + ) + Text( + text = stringResource(R.string.products_hero_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + lineHeight = 40.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.products_hero_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + modifier = Modifier.fillMaxWidth(0.85f), + ) + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + HeroStat( + label = stringResource(R.string.products_loaded), + value = totalLoaded.toString(), + containerColor = BrandRedContainer, + contentColor = BrandRed, + ) + HeroStat( + label = stringResource(R.string.products_catalog), + value = if (totalItem > 0) totalItem.toString() else "0", + containerColor = AccentPurpleContainer, + contentColor = AccentPurple, + ) + } + } + } +} + +@Composable +private fun HeroStat( + label: String, + value: String, + containerColor: Color, + contentColor: Color, +) { + Column( + modifier = Modifier + .clip(RoundedCornerShape(16.dp)) + .background(containerColor) + .padding(horizontal = 14.dp, vertical = 10.dp), + verticalArrangement = Arrangement.spacedBy(2.dp), + ) { + Text( + text = label.uppercase(), + style = MaterialTheme.typography.labelSmall, + color = contentColor, + letterSpacing = 1.sp, + ) + Text( + text = value, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 18.sp, + color = contentColor, + ) + } +} + +@Composable +private fun SearchAndActionRow( + query: String, + onQueryChange: (String) -> Unit, +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Box(modifier = Modifier.weight(1f)) { + InaTextField( + value = query, + onValueChange = onQueryChange, + placeholder = stringResource(R.string.products_search_placeholder), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text), + modifier = Modifier.fillMaxWidth(), + leadingIcon = { + Icon( + imageVector = Icons.Outlined.Search, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(20.dp), + ) + }, + ) + } + IconActionButton( + icon = Icons.Outlined.Tune, + contentDescription = stringResource(R.string.products_filter), + ) + } +} + +@Composable +private fun CategoryRow( + selected: ProductCategory, + onSelected: (ProductCategory) -> Unit, +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(10.dp), + ) { + ProductCategory.entries.forEach { category -> + InaChip( + label = category.label, + variant = when (category) { + ProductCategory.All -> InaChipVariant.Promo + ProductCategory.Local -> InaChipVariant.Category + ProductCategory.International -> InaChipVariant.Featured + }, + selected = selected == category, + onClick = { onSelected(category) }, + ) + } + } +} + +@Composable +private fun ProductCard( + product: ProductItem, + isFavorite: Boolean, + onFavoriteClick: () -> Unit, + onClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(4f / 5f) + .clip(RoundedCornerShape(18.dp)) + .background(SurfaceContainerLow), + ) { + if (product.image != null) { + AsyncImage( + model = product.image, + contentDescription = product.name, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } else { + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.linearGradient( + colors = listOf( + SurfaceContainerHighest, + SurfaceContainerLow, + ) + ) + ), + contentAlignment = Alignment.Center, + ) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Icon( + imageVector = Icons.Outlined.Storefront, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.75f), + modifier = Modifier.size(30.dp), + ) + Spacer(modifier = Modifier.height(6.dp)) + Text( + text = product.market ?: stringResource(R.string.app_name), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.75f), + ) + } + } + } + + FavoriteButton( + isFavorite = isFavorite, + onClick = onFavoriteClick, + modifier = Modifier + .align(Alignment.TopEnd) + .padding(10.dp), + ) + + MarketBadge( + market = product.market, + modifier = Modifier + .align(Alignment.BottomStart) + .padding(10.dp), + ) + } + + Column( + modifier = Modifier.padding(horizontal = 2.dp), + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + Text( + text = product.name, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + lineHeight = 20.sp, + color = OnSurface, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + ProductMetaRow(product = product) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Bottom, + ) { + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(2.dp), + ) { + Text( + text = stringResource(R.string.products_price), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + ) + Text( + text = product.displayPrice(), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 15.sp, + lineHeight = 18.sp, + color = BrandRed, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } + Spacer(modifier = Modifier.width(8.dp)) + Box( + modifier = Modifier + .size(38.dp) + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerHighest) + .alpha(if (product.canAddToCartFromList()) 1f else 0.45f) + .clickable( + enabled = product.canAddToCartFromList(), + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.ShoppingCart, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(20.dp), + ) + } + } + } + } +} + +@Composable +private fun ProductMetaRow(product: ProductItem) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Row( + modifier = Modifier.weight(1f), + horizontalArrangement = Arrangement.spacedBy(4.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = if (product.market.equals("International", ignoreCase = true)) { + Icons.Outlined.Public + } else { + Icons.Outlined.LocationOn + }, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(14.dp), + ) + Text( + text = product.market ?: stringResource(R.string.products_marketplace), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + } + Text( + text = if (product.totalStock > 0) { + stringResource(R.string.products_stock, product.totalStock) + } else { + stringResource(R.string.products_out_of_stock) + }, + style = MaterialTheme.typography.labelSmall, + color = if (product.totalStock > 0) AccentBlue else BrandRed, + fontWeight = FontWeight.SemiBold, + ) + } +} + +@Composable +private fun FavoriteButton( + isFavorite: Boolean, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .size(36.dp) + .clip(CircleShape) + .background(Color.White.copy(alpha = 0.88f)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = true), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = if (isFavorite) Icons.Filled.Favorite else Icons.Outlined.FavoriteBorder, + contentDescription = null, + tint = if (isFavorite) BrandRed else OnSurfaceVariant, + modifier = Modifier.size(18.dp), + ) + } +} + +@Composable +private fun MarketBadge( + market: String?, + modifier: Modifier = Modifier, +) { + val text = market ?: stringResource(R.string.products_general) + val (container, content) = if (market.equals("International", ignoreCase = true)) { + AccentPurpleContainer to AccentPurple + } else { + AccentBlueContainer to AccentBlue + } + + Box( + modifier = modifier + .clip(RoundedCornerShape(999.dp)) + .background(container.copy(alpha = 0.95f)) + .padding(horizontal = 10.dp, vertical = 6.dp), + ) { + Text( + text = text, + style = MaterialTheme.typography.labelSmall, + color = content, + fontWeight = FontWeight.Bold, + ) + } +} + +@Composable +private fun IconActionButton( + icon: androidx.compose.ui.graphics.vector.ImageVector, + contentDescription: String, +) { + Box( + modifier = Modifier + .size(52.dp) + .clip(RoundedCornerShape(14.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = {}, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = contentDescription, + tint = OnSurfaceVariant, + modifier = Modifier.size(22.dp), + ) + } +} + +@Composable +private fun CenterState( + title: String, + body: String, + loading: Boolean = false, + actionLabel: String? = null, + onAction: (() -> Unit)? = null, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 32.dp) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + if (loading) { + CircularProgressIndicator( + color = BrandRed, + modifier = Modifier.size(32.dp), + strokeWidth = 2.5.dp, + ) + } else { + Text( + text = stringResource(R.string.products_catalog_label), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 20.sp, + color = BrandRed, + fontStyle = FontStyle.Italic, + ) + } + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 24.sp, + color = OnSurface, + ) + Text( + text = body, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + lineHeight = 22.sp, + ) + if (actionLabel != null && onAction != null) { + InaPrimaryButton( + text = actionLabel, + onClick = onAction, + modifier = Modifier.padding(top = 6.dp), + ) + } + } +} + +@Composable +private fun FavoritePickerDialog( + groups: List, + createMode: Boolean, + isLoading: Boolean, + onDismiss: () -> Unit, + onCreateMode: () -> Unit, + onCancelCreate: () -> Unit, + onCreateGroup: (String) -> Unit, + onSelectGroup: (String) -> Unit, +) { + var groupName by remember { mutableStateOf("") } + + AlertDialog( + onDismissRequest = { + if (!isLoading) onDismiss() + }, + title = { + Text( + text = if (createMode) { + stringResource(R.string.favorite_create_collection) + } else { + stringResource(R.string.products_select_favorite_group) + }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + ) + }, + text = { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + if (isLoading) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + ) { + CircularProgressIndicator( + color = BrandRed, + modifier = Modifier.size(28.dp), + strokeWidth = 2.5.dp, + ) + } + } else if (createMode) { + InaTextField( + value = groupName, + onValueChange = { groupName = it }, + placeholder = stringResource(R.string.favorite_name_placeholder), + ) + } else { + Text( + text = stringResource(R.string.products_choose_favorite_group), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + groups.forEach { group -> + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(14.dp)) + .background(SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = { onSelectGroup(group.id) }, + ) + .padding(horizontal = 14.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(2.dp), + ) { + Text( + text = group.name, + fontWeight = FontWeight.SemiBold, + color = OnSurface, + ) + Text( + text = stringResource(R.string.products_favorite_group_count, group.itemCount), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowForward, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + } + } + } + } + }, + confirmButton = { + when { + createMode -> { + TextButton( + enabled = groupName.trim().isNotEmpty() && !isLoading, + onClick = { + onCreateGroup(groupName.trim()) + groupName = "" + }, + ) { + Text(stringResource(R.string.favorite_create_action)) + } + } + else -> { + TextButton( + enabled = !isLoading, + onClick = onCreateMode, + ) { + Text(stringResource(R.string.favorite_create_collection)) + } + } + } + }, + dismissButton = { + TextButton( + enabled = !isLoading, + onClick = { + if (createMode && groups.isNotEmpty()) { + onCancelCreate() + } else { + onDismiss() + } + }, + ) { + Text(stringResource(R.string.dialog_cancel)) + } + }, + ) +} + +@Composable +private fun ProductItem.displayPrice(): String { + val min = minPrice + val max = maxPrice + if (min <= 0.0 && max <= 0.0) return stringResource(R.string.products_contact_price) + return if (min > 0.0 && max > 0.0 && min != max) { + "${min.toCurrency()} - ${max.toCurrency()}" + } else { + maxOf(min, max).toCurrency() + } +} + +private fun ProductItem.canAddToCartFromList(): Boolean { + return maxOf(minPrice, maxPrice) > 0.0 +} + +private fun Double.toCurrency(): String { + val formatter = NumberFormat.getCurrencyInstance(Locale("in", "ID")).apply { + maximumFractionDigits = 0 + } + return formatter.format(this).replace("Rp", "Rp ") +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsViewModel.kt new file mode 100644 index 0000000..7123ed0 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/product/presentation/ProductsViewModel.kt @@ -0,0 +1,332 @@ +package id.iiyh.inatrading.feature.product.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.remote.SessionExpiredException +import id.iiyh.inatrading.core.data.local.SessionManager +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupSummary +import id.iiyh.inatrading.feature.favorite.domain.FavoriteRepository +import id.iiyh.inatrading.feature.product.data.model.ProductItem +import id.iiyh.inatrading.feature.product.domain.ProductRepository +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import kotlinx.coroutines.flow.SharingStarted +import javax.inject.Inject + +private const val PRODUCT_PAGE_LIMIT = 10 + +data class ProductsUiState( + val items: List = emptyList(), + val isInitialLoading: Boolean = false, + val isAppending: Boolean = false, + val errorMessage: String? = null, + val currentPage: Int = 0, + val totalPage: Int = 0, + val totalItem: Int = 0, + val pageSize: Int = PRODUCT_PAGE_LIMIT, + val selectedCategory: ProductCategory = ProductCategory.All, + val searchQuery: String = "", + val favoriteIds: Set = emptySet(), + val isLoggedIn: Boolean = false, + val favoriteGroups: List = emptyList(), + val favoriteProductId: String? = null, + val favoriteDialogOpen: Boolean = false, + val favoriteCreateMode: Boolean = false, + val favoriteActionLoading: Boolean = false, + val favoriteMessage: String? = null, + val sessionExpired: Boolean = false, +) { + val hasMore: Boolean + get() = totalPage == 0 || currentPage < totalPage || items.size < totalItem + + val filteredItems: List + get() = items.filter { product -> + val matchesCategory = when (selectedCategory) { + ProductCategory.All -> true + ProductCategory.Local -> product.market.equals("Local Market", ignoreCase = true) + ProductCategory.International -> product.market.equals("International", ignoreCase = true) + } + + val matchesQuery = searchQuery.isBlank() || + product.name.contains(searchQuery, ignoreCase = true) || + product.market.orEmpty().contains(searchQuery, ignoreCase = true) + + matchesCategory && matchesQuery + } +} + +enum class ProductCategory(val label: String) { + All("Semua"), + Local("Lokal"), + International("Internasional"), +} + +@HiltViewModel +class ProductsViewModel @Inject constructor( + private val productRepository: ProductRepository, + private val favoriteRepository: FavoriteRepository, + private val authRepository: AuthRepository, + sessionManager: SessionManager, +) : ViewModel() { + + private val baseState = MutableStateFlow(ProductsUiState()) + val uiState: StateFlow = combine( + baseState, + sessionManager.token, + ) { state, token -> + state.copy(isLoggedIn = !token.isNullOrBlank()) + }.stateIn( + scope = viewModelScope, + started = SharingStarted.WhileSubscribed(5_000), + initialValue = ProductsUiState(), + ) + + init { + loadInitial() + } + + fun loadInitial() { + baseState.update { + it.copy( + items = emptyList(), + isInitialLoading = true, + isAppending = false, + errorMessage = null, + currentPage = 0, + totalPage = 0, + totalItem = 0, + ) + } + loadPage(1) + } + + fun loadNextPage() { + val state = baseState.value + if (state.isInitialLoading || state.isAppending || !state.hasMore) return + loadPage(state.currentPage + 1) + } + + fun onSearchQueryChange(value: String) { + baseState.update { it.copy(searchQuery = value) } + } + + fun onCategorySelected(category: ProductCategory) { + baseState.update { it.copy(selectedCategory = category) } + } + + fun toggleFavorite(productId: String) { + if (baseState.value.favoriteIds.contains(productId)) { + removeProductFromFavorite(productId) + return + } + openFavoriteDialog(productId) + } + + fun dismissFavoriteDialog() { + baseState.update { + it.copy( + favoriteDialogOpen = false, + favoriteCreateMode = false, + favoriteActionLoading = false, + favoriteGroups = emptyList(), + favoriteProductId = null, + ) + } + } + + fun showCreateFavoriteGroup() { + baseState.update { it.copy(favoriteCreateMode = true) } + } + + fun hideCreateFavoriteGroup() { + baseState.update { it.copy(favoriteCreateMode = false) } + } + + fun consumeFavoriteMessage() { + baseState.update { it.copy(favoriteMessage = null) } + } + + fun consumeSessionExpired() { + baseState.update { it.copy(sessionExpired = false) } + } + + fun createFavoriteGroup(name: String) { + val productId = baseState.value.favoriteProductId ?: return + viewModelScope.launch { + baseState.update { it.copy(favoriteActionLoading = true, favoriteMessage = null) } + favoriteRepository.createFavoriteGroup(name) + .onSuccess { + favoriteRepository.getFavoriteGroups() + .onSuccess { groups -> + baseState.update { + it.copy( + favoriteGroups = groups, + favoriteCreateMode = false, + favoriteActionLoading = false, + favoriteProductId = productId, + ) + } + } + .onFailure { handleFavoriteFailure(it, "Gagal memuat koleksi favorit") } + } + .onFailure { handleFavoriteFailure(it, "Gagal membuat koleksi favorit") } + } + } + + fun addProductToFavorite(favoriteId: String) { + val productId = baseState.value.favoriteProductId ?: return + viewModelScope.launch { + baseState.update { it.copy(favoriteActionLoading = true, favoriteMessage = null) } + favoriteRepository.addProductToFavorite( + favoriteId = favoriteId, + productId = productId, + ).onSuccess { + baseState.update { state -> + state.copy( + favoriteIds = state.favoriteIds + productId, + favoriteDialogOpen = false, + favoriteCreateMode = false, + favoriteActionLoading = false, + favoriteGroups = emptyList(), + favoriteProductId = null, + favoriteMessage = PRODUCT_FAVORITE_ADDED_MESSAGE, + ) + } + }.onFailure { + handleFavoriteFailure(it, "Gagal menambahkan produk ke favorit") + } + } + } + + private fun removeProductFromFavorite(productId: String) { + viewModelScope.launch { + baseState.update { it.copy(favoriteActionLoading = true, favoriteMessage = null) } + favoriteRepository.removeProductFromFavorite(productId) + .onSuccess { + baseState.update { state -> + state.copy( + favoriteIds = state.favoriteIds - productId, + favoriteActionLoading = false, + favoriteMessage = PRODUCT_FAVORITE_REMOVED_MESSAGE, + ) + } + } + .onFailure { + handleFavoriteFailure(it, "Gagal menghapus produk dari favorit") + } + } + } + + private fun loadPage(page: Int) { + viewModelScope.launch { + baseState.update { + it.copy( + isInitialLoading = page == 1, + isAppending = page > 1, + errorMessage = if (page == 1) null else it.errorMessage, + ) + } + + productRepository.getProducts(page = page, limit = PRODUCT_PAGE_LIMIT) + .onSuccess { result -> + baseState.update { state -> + val mergedItems = if (page == 1) result.items else state.items + result.items + val responseFavoriteIds = result.items + .filter(ProductItem::isFavorite) + .map(ProductItem::id) + .toSet() + val favoriteIds = if (page == 1) { + mergedItems.filter(ProductItem::isFavorite).map(ProductItem::id).toSet() + } else { + state.favoriteIds + responseFavoriteIds + } + + state.copy( + items = mergedItems, + isInitialLoading = false, + isAppending = false, + errorMessage = null, + currentPage = page, + totalPage = result.totalPage, + totalItem = result.totalItem, + favoriteIds = favoriteIds, + ) + } + } + .onFailure { error -> + baseState.update { state -> + state.copy( + isInitialLoading = false, + isAppending = false, + errorMessage = error.message ?: "Gagal memuat produk", + ) + } + } + } + } + + private fun openFavoriteDialog(productId: String) { + viewModelScope.launch { + baseState.update { + it.copy( + favoriteDialogOpen = true, + favoriteProductId = productId, + favoriteCreateMode = false, + favoriteActionLoading = true, + favoriteMessage = null, + sessionExpired = false, + ) + } + favoriteRepository.getFavoriteGroups() + .onSuccess { groups -> + baseState.update { + it.copy( + favoriteGroups = groups, + favoriteCreateMode = groups.isEmpty(), + favoriteActionLoading = false, + ) + } + } + .onFailure { + handleFavoriteFailure(it, "Gagal memuat koleksi favorit") + } + } + } + + private suspend fun handleFavoriteFailure( + error: Throwable, + fallbackMessage: String, + ) { + if (error is SessionExpiredException) { + authRepository.logout() + baseState.update { + it.copy( + favoriteDialogOpen = false, + favoriteCreateMode = false, + favoriteActionLoading = false, + favoriteGroups = emptyList(), + favoriteProductId = null, + favoriteMessage = null, + sessionExpired = true, + ) + } + return + } + + baseState.update { + it.copy( + favoriteActionLoading = false, + favoriteMessage = error.message ?: fallbackMessage, + ) + } + } +} + +const val PRODUCT_FAVORITE_ADDED_MESSAGE = "PRODUCT_FAVORITE_ADDED" +const val PRODUCT_FAVORITE_REMOVED_MESSAGE = "PRODUCT_FAVORITE_REMOVED" diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/BuyerProfileModels.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/BuyerProfileModels.kt new file mode 100644 index 0000000..a0fd8f1 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/BuyerProfileModels.kt @@ -0,0 +1,26 @@ +package id.iiyh.inatrading.feature.profile.data.model + +data class BuyerProfile( + val email: String? = null, + val imageId: String? = null, + val mobile: String? = null, + val name: String? = null, + val profileDescription: String? = null, +) + +data class UpdateBuyerProfileRequest( + val email: String? = null, + val imageId: String? = null, + val mobile: String? = null, + val name: String? = null, + val profileDescription: String? = null, +) + +data class ChangePasswordRequest( + val newPassword: String, + val oldPassword: String, +) + +data class FileUploadData( + val fileId: String? = null, +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/RegionModels.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/RegionModels.kt new file mode 100644 index 0000000..8f3daa0 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/RegionModels.kt @@ -0,0 +1,35 @@ +package id.iiyh.inatrading.feature.profile.data.model + +data class ProvinceItem( + val code: String? = null, + val id: String? = null, + val name: String? = null, +) + +data class ProvinceListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} + +data class CityItem( + val code: String? = null, + val id: String? = null, + val name: String? = null, + val provinceId: String? = null, + val provinceName: String? = null, +) + +data class CityListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/ShippingAddressModels.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/ShippingAddressModels.kt new file mode 100644 index 0000000..e17b29b --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/data/model/ShippingAddressModels.kt @@ -0,0 +1,44 @@ +package id.iiyh.inatrading.feature.profile.data.model + +import com.google.gson.annotations.SerializedName + +data class ShippingAddress( + val address: String? = null, + val city: String? = null, + val country: String? = null, + val id: String? = null, + val isPrimary: Boolean = false, + val label: String? = null, + val latitude: Double? = null, + val longitude: Double? = null, + val postalCode: String? = null, + val province: String? = null, + val recipient: String? = null, + @SerializedName(value = "mobile", alternate = ["phone"]) + val mobile: String? = null, +) + +data class CreateShippingAddressRequest( + val label: String, + val recipient: String, + @SerializedName("mobile") + val mobile: String, + val address: String, + val country: String, + val province: String, + val city: String, + val postalCode: String, + val isPrimary: Boolean, + val latitude: Double? = null, + val longitude: Double? = null, +) + +data class ShippingAddressListResponse( + val responseCode: String? = null, + val responseDesc: String? = null, + val rows: List = emptyList(), + val totalItem: Int = 0, + val totalPage: Int = 0, +) { + val isSuccess: Boolean get() = responseCode == "0000" +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressScreen.kt new file mode 100644 index 0000000..2419870 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressScreen.kt @@ -0,0 +1,418 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Add +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +@Composable +fun AddShippingAddressScreen( + onBack: () -> Unit, + onSaveSuccess: () -> Unit, + viewModel: AddShippingAddressViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + val context = LocalContext.current + val locationPermissionLauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.RequestPermission(), + ) { granted -> + if (granted) { + viewModel.onLocationRequestStarted() + requestCurrentLocation( + context = context, + onSuccess = viewModel::onLocationCaptured, + onError = viewModel::onLocationError, + ) + } else { + viewModel.onLocationError(context.getString(R.string.address_pin_permission_required)) + } + } + + LaunchedEffect(uiState.infoMessage) { + uiState.infoMessage?.let { + snackbarHostState.showSnackbar(it) + viewModel.consumeInfoMessage() + } + } + + LaunchedEffect(uiState.saveSuccess) { + if (uiState.saveSuccess) { + viewModel.consumeSaveSuccess() + onSaveSuccess() + } + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + ) { innerPadding -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .background(Background), + contentPadding = PaddingValues(start = 20.dp, end = 20.dp, top = 16.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(32.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.35f)) + .padding(horizontal = 24.dp, vertical = 28.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text( + text = stringResource(R.string.add_shipping_address_eyebrow), + style = MaterialTheme.typography.labelSmall, + letterSpacing = 1.6.sp, + color = AccentPurple, + ) + Text( + text = stringResource(R.string.add_shipping_address_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + lineHeight = 38.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.add_shipping_address_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + } + + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + Text( + text = stringResource(R.string.add_shipping_address_label_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + color = OnSurface, + ) + + Row(horizontalArrangement = Arrangement.spacedBy(10.dp)) { + AddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_home), + selected = uiState.label.equals("rumah", ignoreCase = true) || uiState.label.equals("home", ignoreCase = true), + onClick = { viewModel.onLabelSelected("rumah") }, + ) + AddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_office), + selected = uiState.label.equals("kantor", ignoreCase = true) || uiState.label.equals("office", ignoreCase = true), + onClick = { viewModel.onLabelSelected("kantor") }, + ) + AddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_warehouse), + selected = uiState.label.equals("gudang", ignoreCase = true) || uiState.label.equals("warehouse", ignoreCase = true), + onClick = { viewModel.onLabelSelected("gudang") }, + ) + AddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_other), + selected = uiState.label == AddShippingAddressViewModel.CUSTOM_LABEL_KEY, + icon = Icons.Outlined.Add, + onClick = viewModel::onCustomLabelSelected, + ) + } + + if (uiState.label == AddShippingAddressViewModel.CUSTOM_LABEL_KEY) { + InaTextField( + value = uiState.customLabel, + onValueChange = viewModel::onCustomLabelChange, + label = stringResource(R.string.add_shipping_address_custom_label_title), + placeholder = stringResource(R.string.add_shipping_address_custom_label_placeholder), + ) + } + + InaTextField( + value = uiState.recipient, + onValueChange = viewModel::onRecipientChange, + label = stringResource(R.string.add_shipping_address_recipient_label), + placeholder = stringResource(R.string.add_shipping_address_recipient_placeholder), + ) + + InaTextField( + value = uiState.phone, + onValueChange = viewModel::onPhoneChange, + label = stringResource(R.string.add_shipping_address_phone_label), + placeholder = stringResource(R.string.add_shipping_address_phone_placeholder), + ) + + AddressDropdownField( + value = if (uiState.countryKey == ADDRESS_COUNTRY_INDONESIA) { + stringResource(R.string.add_shipping_address_country_indonesia) + } else { + stringResource(R.string.add_shipping_address_country_other) + }, + label = stringResource(R.string.add_shipping_address_country_label), + placeholder = stringResource(R.string.add_shipping_address_country_placeholder), + options = listOf( + DropdownOption(ADDRESS_COUNTRY_INDONESIA, stringResource(R.string.add_shipping_address_country_indonesia)), + DropdownOption(ADDRESS_COUNTRY_OTHER, stringResource(R.string.add_shipping_address_country_other)), + ), + onOptionSelected = { viewModel.onCountrySelected(it.id) }, + ) + + if (uiState.countryKey == ADDRESS_COUNTRY_OTHER) { + InaTextField( + value = uiState.customCountry, + onValueChange = viewModel::onCustomCountryChange, + label = stringResource(R.string.add_shipping_address_country_custom_label), + placeholder = stringResource(R.string.add_shipping_address_country_custom_placeholder), + ) + InaTextField( + value = uiState.province, + onValueChange = viewModel::onProvinceChange, + label = stringResource(R.string.add_shipping_address_province_label), + placeholder = stringResource(R.string.add_shipping_address_province_placeholder), + ) + InaTextField( + value = uiState.city, + onValueChange = viewModel::onCityChange, + label = stringResource(R.string.add_shipping_address_city_label), + placeholder = stringResource(R.string.add_shipping_address_city_placeholder), + ) + } else { + AddressDropdownField( + value = uiState.province, + label = stringResource(R.string.add_shipping_address_province_label), + placeholder = if (uiState.isLoadingProvinces) { + stringResource(R.string.address_loading_provinces) + } else { + stringResource(R.string.add_shipping_address_province_placeholder) + }, + options = uiState.provinces.mapNotNull { + val id = it.id ?: return@mapNotNull null + val label = it.name ?: return@mapNotNull null + DropdownOption(id, label) + }, + enabled = !uiState.isLoadingProvinces && uiState.provinces.isNotEmpty(), + onOptionSelected = { viewModel.onProvinceSelected(it.id) }, + ) + + AddressDropdownField( + value = uiState.city, + label = stringResource(R.string.add_shipping_address_city_label), + placeholder = if (uiState.selectedProvinceId == null) { + stringResource(R.string.address_select_province_first) + } else if (uiState.isLoadingCities) { + stringResource(R.string.address_loading_cities) + } else { + stringResource(R.string.add_shipping_address_city_placeholder) + }, + options = uiState.cities.mapNotNull { + val id = it.id ?: return@mapNotNull null + val label = it.name ?: return@mapNotNull null + DropdownOption(id, label) + }, + enabled = uiState.selectedProvinceId != null && !uiState.isLoadingCities, + onOptionSelected = { viewModel.onCitySelected(it.id) }, + ) + } + + InaTextField( + value = uiState.postalCode, + onValueChange = viewModel::onPostalCodeChange, + label = stringResource(R.string.add_shipping_address_postal_label), + placeholder = stringResource(R.string.add_shipping_address_postal_placeholder), + ) + + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = stringResource(R.string.add_shipping_address_full_label), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + color = OnSurface, + ) + androidx.compose.material3.OutlinedTextField( + value = uiState.address, + onValueChange = viewModel::onAddressChange, + modifier = Modifier.fillMaxWidth(), + minLines = 4, + shape = RoundedCornerShape(16.dp), + textStyle = MaterialTheme.typography.bodyLarge.copy(color = OnSurface), + placeholder = { + Text( + text = stringResource(R.string.add_shipping_address_full_placeholder), + color = OnSurfaceVariant.copy(alpha = 0.6f), + ) + }, + colors = TextFieldDefaults.colors( + focusedTextColor = OnSurface, + unfocusedTextColor = OnSurface, + focusedContainerColor = Color.White, + unfocusedContainerColor = Color.White, + disabledContainerColor = Color.White, + focusedIndicatorColor = BrandRed.copy(alpha = 0.45f), + unfocusedIndicatorColor = OnSurfaceVariant.copy(alpha = 0.28f), + focusedPlaceholderColor = OnSurfaceVariant.copy(alpha = 0.6f), + unfocusedPlaceholderColor = OnSurfaceVariant.copy(alpha = 0.6f), + ), + ) + } + + AddressPinTeaser( + latitude = uiState.latitude, + longitude = uiState.longitude, + isLoading = uiState.isResolvingLocation, + onClick = { + if (hasLocationPermission(context)) { + viewModel.onLocationRequestStarted() + requestCurrentLocation( + context = context, + onSuccess = viewModel::onLocationCaptured, + onError = viewModel::onLocationError, + ) + } else { + locationPermissionLauncher.launch(android.Manifest.permission.ACCESS_FINE_LOCATION) + } + }, + ) + CurrentLocationPermissionMessage() + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.add_shipping_address_primary_label), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.add_shipping_address_primary_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + Switch( + checked = uiState.isPrimary, + onCheckedChange = viewModel::onPrimaryChange, + ) + } + + InaPrimaryButton( + text = stringResource(R.string.add_shipping_address_save), + onClick = viewModel::saveAddress, + isLoading = uiState.isSaving, + enabled = !uiState.isResolvingLocation, + modifier = Modifier.fillMaxWidth(), + ) + } + } + } + } +} + +@Composable +private fun AddressLabelChip( + text: String, + selected: Boolean, + icon: androidx.compose.ui.graphics.vector.ImageVector? = null, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .clip(CircleShape) + .background(if (selected) BrandRedContainer else SurfaceContainerLow) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(horizontal = 16.dp, vertical = 10.dp), + contentAlignment = Alignment.Center, + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (icon != null) { + Icon( + imageVector = icon, + contentDescription = null, + tint = if (selected) BrandRed else OnSurfaceVariant, + modifier = Modifier.size(16.dp), + ) + } + Text( + text = text, + style = MaterialTheme.typography.labelLarge, + color = if (selected) BrandRed else OnSurfaceVariant, + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressViewModel.kt new file mode 100644 index 0000000..84d367c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddShippingAddressViewModel.kt @@ -0,0 +1,337 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.profile.data.model.CityItem +import id.iiyh.inatrading.feature.profile.data.model.CreateShippingAddressRequest +import id.iiyh.inatrading.feature.profile.data.model.ProvinceItem +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +const val ADDRESS_COUNTRY_INDONESIA = "indonesia" +const val ADDRESS_COUNTRY_OTHER = "other" + +data class AddShippingAddressUiState( + val label: String = "rumah", + val customLabel: String = "", + val recipient: String = "", + val phone: String = "", + val countryKey: String = ADDRESS_COUNTRY_INDONESIA, + val customCountry: String = "", + val provinces: List = emptyList(), + val cities: List = emptyList(), + val selectedProvinceId: String? = null, + val selectedCityId: String? = null, + val isLoadingProvinces: Boolean = false, + val isLoadingCities: Boolean = false, + val province: String = "", + val city: String = "", + val postalCode: String = "", + val address: String = "", + val isPrimary: Boolean = true, + val latitude: Double? = null, + val longitude: Double? = null, + val isResolvingLocation: Boolean = false, + val isSaving: Boolean = false, + val infoMessage: String? = null, + val saveSuccess: Boolean = false, +) + +@HiltViewModel +class AddShippingAddressViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(AddShippingAddressUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadProvinces() + } + + fun onLabelSelected(value: String) { + _uiState.update { it.copy(label = value, customLabel = "") } + } + + fun onCustomLabelSelected() { + _uiState.update { + it.copy( + label = CUSTOM_LABEL_KEY, + customLabel = it.customLabel, + ) + } + } + + fun onCustomLabelChange(value: String) { + _uiState.update { + it.copy( + label = CUSTOM_LABEL_KEY, + customLabel = value, + ) + } + } + + fun onRecipientChange(value: String) { + _uiState.update { it.copy(recipient = value) } + } + + fun onPhoneChange(value: String) { + _uiState.update { it.copy(phone = value.filter(Char::isDigit)) } + } + + fun onCountrySelected(value: String) { + _uiState.update { + it.copy( + countryKey = value, + customCountry = if (value == ADDRESS_COUNTRY_OTHER) it.customCountry else "", + province = "", + city = "", + selectedProvinceId = null, + selectedCityId = null, + cities = emptyList(), + ) + } + if (value == ADDRESS_COUNTRY_INDONESIA) { + loadProvinces() + } + } + + fun onCustomCountryChange(value: String) { + _uiState.update { it.copy(customCountry = value) } + } + + fun onProvinceSelected(id: String) { + val province = _uiState.value.provinces.firstOrNull { it.id == id } ?: return + _uiState.update { + it.copy( + selectedProvinceId = province.id, + province = province.name.orEmpty(), + selectedCityId = null, + city = "", + cities = emptyList(), + ) + } + province.id?.let(::loadCities) + } + + fun onProvinceChange(value: String) { + _uiState.update { it.copy(province = value) } + } + + fun onCitySelected(id: String) { + val city = _uiState.value.cities.firstOrNull { it.id == id } ?: return + _uiState.update { + it.copy( + selectedCityId = city.id, + city = city.name.orEmpty(), + ) + } + } + + fun onCityChange(value: String) { + _uiState.update { it.copy(city = value) } + } + + fun onPostalCodeChange(value: String) { + _uiState.update { it.copy(postalCode = value.filter(Char::isDigit)) } + } + + fun onAddressChange(value: String) { + _uiState.update { it.copy(address = value) } + } + + fun onPrimaryChange(value: Boolean) { + _uiState.update { it.copy(isPrimary = value) } + } + + fun onLocationCaptured(latitude: Double, longitude: Double) { + _uiState.update { + it.copy( + latitude = latitude, + longitude = longitude, + isResolvingLocation = false, + infoMessage = "Lokasi saat ini berhasil digunakan.", + ) + } + } + + fun onLocationError(message: String) { + _uiState.update { it.copy(isResolvingLocation = false, infoMessage = message) } + } + + fun onLocationRequestStarted() { + _uiState.update { + it.copy( + isResolvingLocation = true, + infoMessage = "Mengambil koordinat lokasi saat ini...", + ) + } + } + + fun onPinPointClick() { + _uiState.update { + it.copy(infoMessage = "Pemilihan pin point map akan segera tersedia.") + } + } + + fun saveAddress() { + val state = _uiState.value + if (state.recipient.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nama penerima wajib diisi.") } + return + } + if (state.phone.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nomor telepon wajib diisi.") } + return + } + if (state.province.isBlank()) { + _uiState.update { it.copy(infoMessage = "Provinsi wajib diisi.") } + return + } + if (state.city.isBlank()) { + _uiState.update { it.copy(infoMessage = "Kota wajib diisi.") } + return + } + if (state.postalCode.isBlank()) { + _uiState.update { it.copy(infoMessage = "Kode pos wajib diisi.") } + return + } + if (state.address.isBlank()) { + _uiState.update { it.copy(infoMessage = "Detail alamat wajib diisi.") } + return + } + if (state.label == CUSTOM_LABEL_KEY && state.customLabel.isBlank()) { + _uiState.update { it.copy(infoMessage = "Label alamat wajib diisi.") } + return + } + if (state.resolvedCountry().isBlank()) { + _uiState.update { it.copy(infoMessage = "Negara wajib dipilih.") } + return + } + if (state.countryKey == ADDRESS_COUNTRY_INDONESIA && state.selectedProvinceId == null) { + _uiState.update { it.copy(infoMessage = "Provinsi wajib dipilih.") } + return + } + if (state.countryKey == ADDRESS_COUNTRY_INDONESIA && state.selectedCityId == null) { + _uiState.update { it.copy(infoMessage = "Kota/Kabupaten wajib dipilih.") } + return + } + if (state.isResolvingLocation) { + _uiState.update { it.copy(infoMessage = "Tunggu sampai koordinat lokasi selesai diambil.") } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isSaving = true, infoMessage = null) } + authRepository.createAddress( + CreateShippingAddressRequest( + label = state.submittedLabel(), + recipient = state.recipient.trim(), + mobile = normalizePhone(state.phone), + address = state.address.trim(), + country = state.resolvedCountry(), + province = state.province.trim(), + city = state.city.trim(), + postalCode = state.postalCode.trim(), + isPrimary = state.isPrimary, + latitude = state.latitude, + longitude = state.longitude, + ) + ).onSuccess { + _uiState.update { + it.copy( + isSaving = false, + saveSuccess = true, + infoMessage = "Alamat berhasil disimpan.", + ) + } + }.onFailure { error -> + _uiState.update { + it.copy( + isSaving = false, + infoMessage = error.message ?: "Gagal menyimpan alamat", + ) + } + } + } + } + + fun consumeInfoMessage() { + _uiState.update { it.copy(infoMessage = null) } + } + + fun consumeSaveSuccess() { + _uiState.update { it.copy(saveSuccess = false) } + } + + private fun loadProvinces() { + viewModelScope.launch { + _uiState.update { it.copy(isLoadingProvinces = true) } + authRepository.getProvinces() + .onSuccess { provinces -> + _uiState.update { + it.copy( + isLoadingProvinces = false, + provinces = provinces.sortedBy { item -> item.name.orEmpty() }, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoadingProvinces = false, + infoMessage = error.message ?: "Gagal memuat provinsi", + ) + } + } + } + } + + private fun loadCities(provinceId: String) { + viewModelScope.launch { + _uiState.update { it.copy(isLoadingCities = true) } + authRepository.getCities(provinceId) + .onSuccess { cities -> + _uiState.update { + it.copy( + isLoadingCities = false, + cities = cities.sortedBy { item -> item.name.orEmpty() }, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoadingCities = false, + infoMessage = error.message ?: "Gagal memuat kota", + ) + } + } + } + } + + private fun normalizePhone(raw: String): String { + val digits = raw.filter(Char::isDigit) + if (digits.startsWith("0")) return digits + if (digits.startsWith("62")) return "0${digits.removePrefix("62")}" + return "0$digits" + } + + private fun AddShippingAddressUiState.submittedLabel(): String { + return if (label == CUSTOM_LABEL_KEY) customLabel.trim() else label + } + + private fun AddShippingAddressUiState.resolvedCountry(): String { + return if (countryKey == ADDRESS_COUNTRY_OTHER) customCountry.trim() else "Indonesia" + } + + companion object { + const val CUSTOM_LABEL_KEY = "__custom__" + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddressFormComponents.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddressFormComponents.kt new file mode 100644 index 0000000..c2b4963 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/AddressFormComponents.kt @@ -0,0 +1,329 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context +import android.content.pm.PackageManager +import android.location.Location +import android.location.LocationManager +import android.os.Build +import android.os.CancellationSignal +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.KeyboardArrowDown +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import androidx.compose.ui.window.Dialog + +data class DropdownOption( + val id: String, + val label: String, +) + +@Composable +fun AddressDropdownField( + value: String, + label: String, + placeholder: String, + options: List, + enabled: Boolean = true, + onOptionSelected: (DropdownOption) -> Unit, +) { + var dialogOpen by remember { mutableStateOf(false) } + + Box( + modifier = Modifier + .fillMaxWidth() + .clickable( + enabled = enabled, + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = { dialogOpen = true }, + ), + ) { + Column(modifier = Modifier.fillMaxWidth()) { + Text( + text = label, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + modifier = Modifier.padding(start = 16.dp, bottom = 6.dp), + ) + Surface( + modifier = Modifier.fillMaxWidth(), + shape = RoundedCornerShape(16.dp), + color = SurfaceContainerLow, + tonalElevation = 0.dp, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 16.dp), + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { + Text( + text = value.ifBlank { placeholder }, + style = MaterialTheme.typography.bodyLarge, + color = if (value.isBlank()) { + OnSurfaceVariant.copy(alpha = 0.65f) + } else { + OnSurface + }, + modifier = Modifier.weight(1f), + ) + Spacer(modifier = Modifier.width(12.dp)) + Icon( + imageVector = Icons.Outlined.KeyboardArrowDown, + contentDescription = null, + tint = OnSurfaceVariant, + ) + } + } + } + } + + if (dialogOpen) { + Dialog(onDismissRequest = { dialogOpen = false }) { + Surface( + modifier = Modifier.fillMaxWidth(), + shape = RoundedCornerShape(24.dp), + color = SurfaceContainerLowest, + tonalElevation = 4.dp, + shadowElevation = 12.dp, + ) { + Column( + modifier = Modifier.padding(vertical = 12.dp), + ) { + Text( + text = label, + style = MaterialTheme.typography.titleMedium, + color = OnSurface, + modifier = Modifier.padding(horizontal = 20.dp, vertical = 8.dp), + ) + Column( + modifier = Modifier + .heightIn(max = 360.dp) + .verticalScroll(rememberScrollState()), + ) { + options.forEach { option -> + Row( + modifier = Modifier + .fillMaxWidth() + .clickable { + dialogOpen = false + onOptionSelected(option) + } + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { + Text( + text = option.label, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + style = MaterialTheme.typography.bodyLarge, + color = OnSurface, + ) + } + } + } + } + } + } + } +} + +@Composable +fun CurrentLocationPermissionMessage() { + val context = LocalContext.current + Box( + modifier = Modifier.padding(top = 6.dp), + ) { + Text( + text = if (hasLocationPermission(context)) { + stringResource(R.string.address_pin_helper_ready) + } else { + stringResource(R.string.address_pin_helper_permission) + }, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } +} + +@Composable +fun AddressPinTeaser( + latitude: Double?, + longitude: Double?, + isLoading: Boolean = false, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(132.dp) + .background( + brush = androidx.compose.ui.graphics.Brush.linearGradient( + colors = listOf( + SurfaceContainerHighest, + SurfaceContainerLow, + SurfaceContainerLowest, + ) + ), + shape = RoundedCornerShape(20.dp), + ) + .clickable( + enabled = !isLoading, + interactionSource = remember { MutableInteractionSource() }, + indication = androidx.compose.material3.ripple(), + onClick = onClick, + ), + ) { + Row( + modifier = Modifier + .align(androidx.compose.ui.Alignment.Center) + .background(Color.White.copy(alpha = 0.92f), CircleShape) + .padding(horizontal = 18.dp, vertical = 10.dp), + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + horizontalArrangement = androidx.compose.foundation.layout.Arrangement.spacedBy(8.dp), + ) { + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.size(18.dp), + color = BrandRed, + strokeWidth = 2.dp, + ) + } else { + Icon( + imageVector = Icons.Outlined.LocationOn, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(20.dp), + ) + } + Text( + text = if (isLoading) { + stringResource(R.string.address_pin_loading) + } else if (latitude != null && longitude != null) { + stringResource(R.string.address_pin_coordinates, latitude, longitude) + } else { + stringResource(R.string.add_shipping_address_pin) + }, + fontWeight = androidx.compose.ui.text.font.FontWeight.Bold, + color = OnSurface, + ) + } + } +} + +fun hasLocationPermission(context: Context): Boolean { + val fine = ContextCompat.checkSelfPermission( + context, + Manifest.permission.ACCESS_FINE_LOCATION, + ) == PackageManager.PERMISSION_GRANTED + val coarse = ContextCompat.checkSelfPermission( + context, + Manifest.permission.ACCESS_COARSE_LOCATION, + ) == PackageManager.PERMISSION_GRANTED + return fine || coarse +} + +@SuppressLint("MissingPermission") +fun requestCurrentLocation( + context: Context, + onSuccess: (latitude: Double, longitude: Double) -> Unit, + onError: (String) -> Unit, +) { + if (!hasLocationPermission(context)) { + onError(context.getString(R.string.address_pin_permission_required)) + return + } + + val locationManager = context.getSystemService(Context.LOCATION_SERVICE) as? LocationManager + ?: run { + onError(context.getString(R.string.address_pin_unavailable)) + return + } + + val providers = locationManager.getProviders(true) + if (providers.isEmpty()) { + onError(context.getString(R.string.address_pin_enable_location)) + return + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + val provider = when { + providers.contains(LocationManager.GPS_PROVIDER) -> LocationManager.GPS_PROVIDER + providers.contains(LocationManager.NETWORK_PROVIDER) -> LocationManager.NETWORK_PROVIDER + else -> providers.first() + } + locationManager.getCurrentLocation( + provider, + CancellationSignal(), + ContextCompat.getMainExecutor(context), + ) { location -> + if (location != null) { + onSuccess(location.latitude, location.longitude) + } else { + emitLastKnownLocation(locationManager, providers, onSuccess, onError, context) + } + } + } else { + emitLastKnownLocation(locationManager, providers, onSuccess, onError, context) + } +} + +private fun emitLastKnownLocation( + locationManager: LocationManager, + providers: List, + onSuccess: (latitude: Double, longitude: Double) -> Unit, + onError: (String) -> Unit, + context: Context, +) { + val location = providers + .mapNotNull { provider -> runCatching { locationManager.getLastKnownLocation(provider) }.getOrNull() } + .maxByOrNull(Location::getTime) + + if (location != null) { + onSuccess(location.latitude, location.longitude) + } else { + onError(context.getString(R.string.address_pin_location_not_found)) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordScreen.kt new file mode 100644 index 0000000..8a5e75c --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordScreen.kt @@ -0,0 +1,532 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.animateScrollBy +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.outlined.MoreVert +import androidx.compose.material.icons.outlined.Shield +import androidx.compose.material.icons.outlined.Visibility +import androidx.compose.material.icons.outlined.VisibilityOff +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.layout.positionInRoot +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +@Composable +fun ChangePasswordScreen( + onBack: () -> Unit, + onLoggedOut: () -> Unit, + viewModel: ChangePasswordViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + val successMessage = stringResource(R.string.change_password_success) + val coroutineScope = rememberCoroutineScope() + val listState = rememberLazyListState() + val density = LocalDensity.current + val desiredFieldTopPx = with(density) { 96.dp.toPx() } + var oldPasswordTopPx by remember { mutableFloatStateOf(0f) } + var newPasswordTopPx by remember { mutableFloatStateOf(0f) } + var confirmPasswordTopPx by remember { mutableFloatStateOf(0f) } + + LaunchedEffect(uiState.infoMessage) { + uiState.infoMessage?.let { message -> + snackbarHostState.showSnackbar(message) + viewModel.consumeInfoMessage() + } + } + + LaunchedEffect(uiState.isLoggedOut) { + if (uiState.isLoggedOut) { + onLoggedOut() + } + } + + Scaffold( + topBar = { ChangePasswordTopBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + bottomBar = { + Surface( + shadowElevation = 8.dp, + color = Color.White.copy(alpha = 0.92f), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp, vertical = 16.dp), + contentAlignment = Alignment.Center, + ) { + InaPrimaryButton( + text = stringResource(R.string.change_password_save), + onClick = { viewModel.onSaveClick(successMessage) }, + isLoading = uiState.isSaving, + ) + } + } + }, + ) { innerPadding -> + ChangePasswordContent( + uiState = uiState, + onOldPasswordChange = viewModel::onOldPasswordChange, + onNewPasswordChange = viewModel::onNewPasswordChange, + onConfirmPasswordChange = viewModel::onConfirmPasswordChange, + onToggleOldPasswordVisibility = viewModel::toggleOldPasswordVisibility, + onToggleNewPasswordVisibility = viewModel::toggleNewPasswordVisibility, + onToggleConfirmPasswordVisibility = viewModel::toggleConfirmPasswordVisibility, + listState = listState, + oldPasswordModifier = Modifier.onGloballyPositioned { + oldPasswordTopPx = it.positionInRoot().y + }, + newPasswordModifier = Modifier.onGloballyPositioned { + newPasswordTopPx = it.positionInRoot().y + }, + confirmPasswordModifier = Modifier.onGloballyPositioned { + confirmPasswordTopPx = it.positionInRoot().y + }, + onOldPasswordFocused = { + coroutineScope.launch { + delay(150) + scrollFieldNearTop( + listState = listState, + fieldTopPx = oldPasswordTopPx, + desiredTopPx = desiredFieldTopPx, + ) + } + }, + onNewPasswordFocused = { + coroutineScope.launch { + delay(150) + scrollFieldNearTop( + listState = listState, + fieldTopPx = newPasswordTopPx, + desiredTopPx = desiredFieldTopPx, + ) + } + }, + onConfirmPasswordFocused = { + coroutineScope.launch { + delay(150) + scrollFieldNearTop( + listState = listState, + fieldTopPx = confirmPasswordTopPx, + desiredTopPx = desiredFieldTopPx, + ) + } + }, + modifier = Modifier.padding(innerPadding), + ) + } +} + +@Composable +private fun ChangePasswordTopBar( + onBack: () -> Unit, +) { + Surface( + shadowElevation = 2.dp, + color = Color.White.copy(alpha = 0.88f), + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 20.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp), + ) { + IconButton(onClick = onBack) { + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + tint = BrandRed, + ) + } + Text( + text = stringResource(R.string.app_name), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Black, + fontSize = 20.sp, + color = BrandRed, + ) + } + IconButton(onClick = {}) { + Icon( + imageVector = Icons.Outlined.MoreVert, + contentDescription = null, + tint = OnSurfaceVariant, + ) + } + } + } +} + +@Composable +private fun ChangePasswordContent( + uiState: ChangePasswordUiState, + onOldPasswordChange: (String) -> Unit, + onNewPasswordChange: (String) -> Unit, + onConfirmPasswordChange: (String) -> Unit, + onToggleOldPasswordVisibility: () -> Unit, + onToggleNewPasswordVisibility: () -> Unit, + onToggleConfirmPasswordVisibility: () -> Unit, + listState: androidx.compose.foundation.lazy.LazyListState, + oldPasswordModifier: Modifier = Modifier, + newPasswordModifier: Modifier = Modifier, + confirmPasswordModifier: Modifier = Modifier, + onOldPasswordFocused: () -> Unit = {}, + onNewPasswordFocused: () -> Unit = {}, + onConfirmPasswordFocused: () -> Unit = {}, + modifier: Modifier = Modifier, +) { + val strength = rememberPasswordStrength(uiState.newPassword) + + LazyColumn( + state = listState, + modifier = modifier + .fillMaxSize() + .background(Background), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 120.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + item { + Box( + modifier = Modifier + .fillMaxWidth() + .background(Color.Transparent), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(220.dp) + .background(SurfaceContainerHighest.copy(alpha = 0.42f), RoundedCornerShape(bottomStart = 36.dp)) + ) + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(24.dp), + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + Text( + text = stringResource(R.string.change_password_eyebrow), + style = MaterialTheme.typography.labelSmall, + color = AccentPurple, + fontWeight = FontWeight.Bold, + ) + Text( + text = stringResource(R.string.change_password_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 40.sp, + color = OnSurface, + lineHeight = 44.sp, + ) + Text( + text = stringResource(R.string.change_password_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + } + } + + item { + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + ChangePasswordField( + label = stringResource(R.string.change_password_old_label), + value = uiState.oldPassword, + onValueChange = onOldPasswordChange, + placeholder = stringResource(R.string.change_password_old_placeholder), + modifier = oldPasswordModifier, + isPasswordHidden = !uiState.oldPasswordVisible, + isError = uiState.errors.oldPassword != null, + errorMessage = when (uiState.errors.oldPassword) { + "required" -> stringResource(R.string.change_password_error_old_required) + else -> "" + }, + onToggleVisibility = onToggleOldPasswordVisibility, + isSaving = uiState.isSaving, + onFocused = onOldPasswordFocused, + ) + + Column(verticalArrangement = Arrangement.spacedBy(10.dp)) { + ChangePasswordField( + label = stringResource(R.string.change_password_new_label), + value = uiState.newPassword, + onValueChange = onNewPasswordChange, + placeholder = stringResource(R.string.change_password_new_placeholder), + modifier = newPasswordModifier, + isPasswordHidden = !uiState.newPasswordVisible, + isError = uiState.errors.newPassword != null, + errorMessage = when (uiState.errors.newPassword) { + "required" -> stringResource(R.string.change_password_error_new_required) + "min_length" -> stringResource(R.string.change_password_error_min_length) + "must_differ" -> stringResource(R.string.change_password_error_must_differ) + else -> "" + }, + onToggleVisibility = onToggleNewPasswordVisibility, + isSaving = uiState.isSaving, + onFocused = onNewPasswordFocused, + ) + PasswordStrengthMeter( + score = strength.score, + label = strength.label, + ) + } + + ChangePasswordField( + label = stringResource(R.string.change_password_confirm_label), + value = uiState.confirmPassword, + onValueChange = onConfirmPasswordChange, + placeholder = stringResource(R.string.change_password_confirm_placeholder), + modifier = confirmPasswordModifier, + isPasswordHidden = !uiState.confirmPasswordVisible, + isError = uiState.errors.confirmPassword != null, + errorMessage = when (uiState.errors.confirmPassword) { + "mismatch" -> stringResource(R.string.change_password_error_confirmation) + else -> "" + }, + onToggleVisibility = onToggleConfirmPasswordVisibility, + isSaving = uiState.isSaving, + onFocused = onConfirmPasswordFocused, + ) + } + } + + item { + Surface( + shape = RoundedCornerShape(24.dp), + color = SurfaceContainerLowest, + shadowElevation = 2.dp, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(18.dp), + horizontalArrangement = Arrangement.spacedBy(14.dp), + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(42.dp) + .background(AccentPurpleContainer, CircleShape), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Shield, + contentDescription = null, + tint = AccentPurple, + modifier = Modifier.size(20.dp), + ) + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.change_password_tip_title), + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + Text( + text = stringResource(R.string.change_password_tip_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + } + } + } + } +} + +@Composable +private fun ChangePasswordField( + label: String, + value: String, + onValueChange: (String) -> Unit, + placeholder: String, + modifier: Modifier = Modifier, + isPasswordHidden: Boolean, + isError: Boolean, + errorMessage: String, + onToggleVisibility: () -> Unit, + isSaving: Boolean, + onFocused: () -> Unit = {}, +) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = label, + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + InaTextField( + value = value, + onValueChange = onValueChange, + modifier = modifier, + placeholder = placeholder, + isPassword = isPasswordHidden, + isError = isError, + errorMessage = errorMessage, + onFocusChanged = { + if (it.isFocused) onFocused() + }, + trailingIcon = { + Icon( + imageVector = if (isPasswordHidden) { + Icons.Outlined.Visibility + } else { + Icons.Outlined.VisibilityOff + }, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier + .size(20.dp) + .clickable(enabled = !isSaving, onClick = onToggleVisibility), + ) + }, + ) + } +} + +private suspend fun scrollFieldNearTop( + listState: androidx.compose.foundation.lazy.LazyListState, + fieldTopPx: Float, + desiredTopPx: Float, +) { + if (fieldTopPx <= 0f) return + + val scrollDelta = fieldTopPx - desiredTopPx + if (scrollDelta > 0f) { + listState.animateScrollBy(scrollDelta) + } +} + +@Composable +private fun PasswordStrengthMeter( + score: Int, + label: String, +) { + val activeColor = when (score) { + 1 -> BrandRed + 2 -> Color(0xFFD97706) + 3 -> AccentPurple + else -> Color(0xFF2E7D32) + } + + Column(verticalArrangement = Arrangement.spacedBy(6.dp)) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + repeat(4) { index -> + Box( + modifier = Modifier + .weight(1f) + .height(4.dp) + .background( + color = if (index < score) activeColor else SurfaceContainerLow, + shape = RoundedCornerShape(999.dp), + ), + ) + } + Text( + text = label.uppercase(), + style = MaterialTheme.typography.labelSmall, + color = if (score == 0) OnSurfaceVariant else activeColor, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.End, + ) + } + } +} + +@Composable +private fun rememberPasswordStrength(password: String): PasswordStrengthUi { + val score = buildList { + if (password.length >= 8) add(Unit) + if (password.any(Char::isUpperCase) || password.any(Char::isLowerCase)) add(Unit) + if (password.any(Char::isDigit)) add(Unit) + if (password.any { !it.isLetterOrDigit() } || password.length >= 12) add(Unit) + }.size.coerceIn(0, 4) + + val labelRes = when (score) { + 0, 1 -> R.string.change_password_strength_weak + 2 -> R.string.change_password_strength_fair + 3 -> R.string.change_password_strength_good + else -> R.string.change_password_strength_strong + } + + return PasswordStrengthUi( + score = score, + label = stringResource(labelRes), + ) +} + +private data class PasswordStrengthUi( + val score: Int, + val label: String, +) diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordViewModel.kt new file mode 100644 index 0000000..c3bfeb7 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ChangePasswordViewModel.kt @@ -0,0 +1,151 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +data class ChangePasswordErrors( + val oldPassword: String? = null, + val newPassword: String? = null, + val confirmPassword: String? = null, +) + +data class ChangePasswordUiState( + val oldPassword: String = "", + val newPassword: String = "", + val confirmPassword: String = "", + val oldPasswordVisible: Boolean = false, + val newPasswordVisible: Boolean = false, + val confirmPasswordVisible: Boolean = false, + val isSaving: Boolean = false, + val isLoggedOut: Boolean = false, + val infoMessage: String? = null, + val errors: ChangePasswordErrors = ChangePasswordErrors(), +) + +@HiltViewModel +class ChangePasswordViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(ChangePasswordUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + fun onOldPasswordChange(value: String) { + _uiState.update { + it.copy( + oldPassword = value, + errors = it.errors.copy(oldPassword = null), + ) + } + } + + fun onNewPasswordChange(value: String) { + _uiState.update { + it.copy( + newPassword = value, + errors = it.errors.copy(newPassword = null, confirmPassword = null), + ) + } + } + + fun onConfirmPasswordChange(value: String) { + _uiState.update { + it.copy( + confirmPassword = value, + errors = it.errors.copy(confirmPassword = null), + ) + } + } + + fun toggleOldPasswordVisibility() { + _uiState.update { it.copy(oldPasswordVisible = !it.oldPasswordVisible) } + } + + fun toggleNewPasswordVisibility() { + _uiState.update { it.copy(newPasswordVisible = !it.newPasswordVisible) } + } + + fun toggleConfirmPasswordVisibility() { + _uiState.update { it.copy(confirmPasswordVisible = !it.confirmPasswordVisible) } + } + + fun onSaveClick(successMessage: String) { + val state = _uiState.value + val errors = validate(state) + if (errors != ChangePasswordErrors()) { + _uiState.update { it.copy(errors = errors) } + return + } + + viewModelScope.launch { + _uiState.update { + it.copy( + isSaving = true, + infoMessage = null, + errors = ChangePasswordErrors(), + ) + } + authRepository.changePassword( + oldPassword = state.oldPassword, + newPassword = state.newPassword, + ).onSuccess { + authRepository.logout() + _uiState.update { + it.copy( + oldPassword = "", + newPassword = "", + confirmPassword = "", + isSaving = false, + isLoggedOut = true, + infoMessage = successMessage, + ) + } + }.onFailure { error -> + _uiState.update { + it.copy( + isSaving = false, + infoMessage = error.message ?: "Gagal mengubah kata sandi", + ) + } + } + } + } + + fun consumeInfoMessage() { + _uiState.update { it.copy(infoMessage = null) } + } + + private fun validate(state: ChangePasswordUiState): ChangePasswordErrors { + var oldPasswordError: String? = null + var newPasswordError: String? = null + var confirmPasswordError: String? = null + + if (state.oldPassword.isBlank()) { + oldPasswordError = "required" + } + if (state.newPassword.isBlank()) { + newPasswordError = "required" + } else if (state.newPassword.length < 8) { + newPasswordError = "min_length" + } else if (state.newPassword == state.oldPassword) { + newPasswordError = "must_differ" + } + if (state.confirmPassword != state.newPassword) { + confirmPasswordError = "mismatch" + } + + return ChangePasswordErrors( + oldPassword = oldPasswordError, + newPassword = newPasswordError, + confirmPassword = confirmPasswordError, + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileScreen.kt new file mode 100644 index 0000000..55d77a4 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileScreen.kt @@ -0,0 +1,602 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import android.content.Context +import android.net.Uri +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.AlertDialog +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.outlined.Collections +import androidx.compose.material.icons.outlined.Lock +import androidx.compose.material.icons.outlined.MoreVert +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.PhotoCamera +import androidx.compose.material.icons.outlined.VerifiedUser +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import androidx.core.content.FileProvider +import coil.compose.AsyncImage +import id.iiyh.inatrading.BuildConfig +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest + +@Composable +fun EditProfileScreen( + onBack: () -> Unit, + viewModel: EditProfileViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + val context = LocalContext.current + var sourcePickerOpen by rememberSaveable { mutableStateOf(false) } + var cameraImageUri by remember { mutableStateOf(null) } + + val galleryLauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.GetContent(), + ) { uri -> + if (uri != null) { + viewModel.uploadProfileImage(uri) + } + } + + val cameraLauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.TakePicture(), + ) { success -> + if (success) { + cameraImageUri?.let(viewModel::uploadProfileImage) + } + } + + LaunchedEffect(uiState.infoMessage) { + uiState.infoMessage?.let { + snackbarHostState.showSnackbar(it) + viewModel.consumeInfoMessage() + } + } + + Scaffold( + topBar = { EditProfileTopBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + ) { innerPadding -> + when { + uiState.isLoading -> { + Box( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + + uiState.errorMessage != null -> { + EditProfileState( + title = stringResource(R.string.edit_profile_error_title), + body = uiState.errorMessage.orEmpty(), + actionLabel = stringResource(R.string.explore_retry), + onAction = viewModel::loadProfile, + modifier = Modifier.padding(innerPadding), + ) + } + + else -> { + EditProfileContent( + uiState = uiState, + onNameChange = viewModel::onNameChange, + onPhoneChange = viewModel::onPhoneChange, + onSaveClick = viewModel::onSaveClick, + onPhotoClick = { sourcePickerOpen = true }, + modifier = Modifier.padding(innerPadding), + ) + } + } + } + + if (sourcePickerOpen) { + PhotoSourceDialog( + onDismiss = { sourcePickerOpen = false }, + onGalleryClick = { + sourcePickerOpen = false + galleryLauncher.launch("image/*") + }, + onCameraClick = { + sourcePickerOpen = false + val uri = createCameraImageUri(context) + cameraImageUri = uri + cameraLauncher.launch(uri) + }, + ) + } +} + +@Composable +private fun EditProfileTopBar( + onBack: () -> Unit, +) { + Surface( + shadowElevation = 2.dp, + color = Color.White.copy(alpha = 0.88f), + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 20.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp), + ) { + IconButton(onClick = onBack) { + Icon( + imageVector = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + tint = BrandRed, + ) + } + Text( + text = stringResource(R.string.app_name), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Black, + fontSize = 20.sp, + color = BrandRed, + ) + } + IconButton(onClick = {}) { + Icon( + imageVector = Icons.Outlined.MoreVert, + contentDescription = null, + tint = OnSurfaceVariant, + ) + } + } + } +} + +@Composable +private fun EditProfileContent( + uiState: EditProfileUiState, + onNameChange: (String) -> Unit, + onPhoneChange: (String) -> Unit, + onSaveClick: () -> Unit, + onPhotoClick: () -> Unit, + modifier: Modifier = Modifier, +) { + LazyColumn( + modifier = modifier + .fillMaxSize() + .background(Background), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + item { + Column(verticalArrangement = Arrangement.spacedBy(18.dp)) { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(36.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.55f)) + .padding(24.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(18.dp)) { + Text( + text = stringResource(R.string.edit_profile_eyebrow), + style = MaterialTheme.typography.labelSmall, + color = AccentPurple, + fontWeight = FontWeight.Bold, + ) + Text( + text = stringResource(R.string.edit_profile_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 42.sp, + color = OnSurface, + lineHeight = 44.sp, + ) + } + } + + Box( + modifier = Modifier + .fillMaxWidth() + .padding(top = 8.dp), + contentAlignment = Alignment.Center, + ) { + Box { + ProfileAvatar( + imageUrl = uiState.imageUrl, + modifier = Modifier.size(128.dp), + ) + Box( + modifier = Modifier + .align(Alignment.BottomEnd) + .size(38.dp) + .clip(CircleShape) + .background(BrandRed), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = if (uiState.isUploadingImage) { + Icons.Outlined.Collections + } else { + Icons.Outlined.PhotoCamera + }, + contentDescription = null, + tint = Color.White, + modifier = Modifier + .size(18.dp) + .clickable(enabled = !uiState.isUploadingImage) { + onPhotoClick() + }, + ) + } + + if (uiState.isUploadingImage) { + Box( + modifier = Modifier + .matchParentSize() + .clip(CircleShape) + .background(Color.Black.copy(alpha = 0.24f)), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator( + modifier = Modifier.size(28.dp), + color = Color.White, + strokeWidth = 2.5.dp, + ) + } + } + } + } + } + } + + item { + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + LabeledField( + label = stringResource(R.string.edit_profile_name_label), + content = { + InaTextField( + value = uiState.name, + onValueChange = onNameChange, + placeholder = stringResource(R.string.edit_profile_name_placeholder), + ) + }, + ) + + LabeledField( + label = stringResource(R.string.edit_profile_email_label), + trailing = { + Icon( + imageVector = Icons.Outlined.Lock, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.65f), + modifier = Modifier.size(16.dp), + ) + }, + content = { + Surface( + shape = RoundedCornerShape(16.dp), + color = SurfaceContainerHighest, + ) { + Text( + text = uiState.email, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 16.dp), + style = MaterialTheme.typography.bodyLarge, + color = OnSurfaceVariant, + ) + } + }, + ) + + LabeledField( + label = stringResource(R.string.edit_profile_phone_label), + content = { + InaTextField( + value = uiState.phone, + onValueChange = onPhoneChange, + placeholder = stringResource(R.string.edit_profile_phone_placeholder), + ) + }, + ) + } + } + + item { + Surface( + shape = RoundedCornerShape(24.dp), + color = AccentPurpleContainer.copy(alpha = 0.18f), + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(18.dp), + horizontalArrangement = Arrangement.spacedBy(14.dp), + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(42.dp) + .clip(CircleShape) + .background(AccentPurple), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.VerifiedUser, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size(20.dp), + ) + } + + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.edit_profile_security_title), + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + Text( + text = stringResource(R.string.edit_profile_security_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + } + } + } + + item { + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + InaPrimaryButton( + text = stringResource(R.string.edit_profile_save), + onClick = onSaveClick, + isLoading = uiState.isSaving, + enabled = !uiState.isUploadingImage, + ) + Text( + text = stringResource(R.string.edit_profile_footer), + modifier = Modifier.fillMaxWidth(), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + } + } + } +} + +@Composable +private fun LabeledField( + label: String, + trailing: @Composable (() -> Unit)? = null, + content: @Composable () -> Unit, +) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = label, + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + trailing?.invoke() + } + content() + } +} + +@Composable +private fun ProfileAvatar( + imageUrl: String?, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .clip(CircleShape) + .background(SurfaceContainerHighest), + ) { + if (!imageUrl.isNullOrBlank()) { + AsyncImage( + model = imageUrl.toImageModel(), + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } else { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Person, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(52.dp), + ) + } + } + } +} + +@Composable +private fun PhotoSourceDialog( + onDismiss: () -> Unit, + onGalleryClick: () -> Unit, + onCameraClick: () -> Unit, +) { + AlertDialog( + onDismissRequest = onDismiss, + title = { + Text( + text = stringResource(R.string.edit_profile_photo_dialog_title), + fontWeight = FontWeight.Bold, + ) + }, + text = { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text( + text = stringResource(R.string.edit_profile_photo_dialog_body), + color = OnSurfaceVariant, + ) + SourceActionRow( + icon = Icons.Outlined.Collections, + label = stringResource(R.string.edit_profile_photo_gallery), + onClick = onGalleryClick, + ) + SourceActionRow( + icon = Icons.Outlined.PhotoCamera, + label = stringResource(R.string.edit_profile_photo_camera), + onClick = onCameraClick, + ) + } + }, + confirmButton = {}, + dismissButton = {}, + containerColor = Color.White, + ) +} + +@Composable +private fun SourceActionRow( + icon: androidx.compose.ui.graphics.vector.ImageVector, + label: String, + onClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.55f)) + .clickable(onClick = onClick) + .padding(horizontal = 16.dp, vertical = 14.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon(imageVector = icon, contentDescription = null, tint = BrandRed) + Text(text = label, color = OnSurface, fontWeight = FontWeight.SemiBold) + } +} + +@Composable +private fun EditProfileState( + title: String, + body: String, + actionLabel: String, + onAction: () -> Unit, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .fillMaxSize() + .padding(horizontal = 24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text( + text = title, + style = MaterialTheme.typography.headlineSmall, + color = OnSurface, + fontWeight = FontWeight.Bold, + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = body, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + Spacer(modifier = Modifier.height(20.dp)) + InaPrimaryButton( + text = actionLabel, + onClick = onAction, + modifier = Modifier.width(180.dp), + ) + } +} + +private fun createCameraImageUri(context: Context): Uri { + val directory = java.io.File(context.cacheDir, "images").apply { mkdirs() } + val file = java.io.File.createTempFile("camera_", ".jpg", directory) + return FileProvider.getUriForFile( + context, + "${BuildConfig.APPLICATION_ID}.fileprovider", + file, + ) +} + +private fun String.toImageModel(): String { + return when { + startsWith("content://") || startsWith("file://") || startsWith("http") -> this + else -> "${BuildConfig.BASE_URL}api/v1.0/file/image/$this" + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileViewModel.kt new file mode 100644 index 0000000..1d1f1b7 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditProfileViewModel.kt @@ -0,0 +1,157 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import android.net.Uri +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +data class EditProfileUiState( + val isLoading: Boolean = false, + val isSaving: Boolean = false, + val isUploadingImage: Boolean = false, + val errorMessage: String? = null, + val infoMessage: String? = null, + val name: String = "", + val email: String = "", + val phone: String = "", + val imageUrl: String? = null, + val imageId: String? = null, +) + +@HiltViewModel +class EditProfileViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(EditProfileUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadProfile() + } + + fun loadProfile() { + viewModelScope.launch { + _uiState.update { + it.copy( + isLoading = true, + errorMessage = null, + ) + } + + authRepository.getBuyerProfile() + .onSuccess { profile -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = null, + name = profile.name.orEmpty(), + email = profile.email.orEmpty(), + phone = profile.mobile.orEmpty(), + imageUrl = profile.imageId, + imageId = profile.imageId, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = error.message ?: "Gagal memuat profil", + ) + } + } + } + } + + fun onNameChange(value: String) { + _uiState.update { it.copy(name = value) } + } + + fun onPhoneChange(value: String) { + _uiState.update { it.copy(phone = value.filter(Char::isDigit)) } + } + + fun uploadProfileImage(uri: Uri) { + viewModelScope.launch { + _uiState.update { + it.copy( + imageUrl = uri.toString(), + isUploadingImage = true, + infoMessage = null, + errorMessage = null, + ) + } + + authRepository.uploadFile(uri) + .onSuccess { fileId -> + _uiState.update { + it.copy( + isUploadingImage = false, + imageId = fileId, + infoMessage = "Foto profil berhasil diunggah.", + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isUploadingImage = false, + infoMessage = error.message ?: "Gagal mengunggah foto profil", + ) + } + } + } + } + + fun onSaveClick() { + val state = _uiState.value + if (state.name.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nama lengkap wajib diisi.") } + return + } + if (state.phone.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nomor telepon wajib diisi.") } + return + } + if (state.isUploadingImage) { + _uiState.update { it.copy(infoMessage = "Tunggu hingga upload foto selesai.") } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isSaving = true, errorMessage = null, infoMessage = null) } + authRepository.updateBuyerProfile( + name = state.name, + mobile = state.phone, + imageId = state.imageId, + email = state.email, + ).onSuccess { + _uiState.update { + it.copy( + isSaving = false, + infoMessage = "Profil berhasil diperbarui.", + ) + } + }.onFailure { error -> + _uiState.update { + it.copy( + isSaving = false, + infoMessage = error.message ?: "Gagal menyimpan profil", + ) + } + } + } + } + + fun consumeInfoMessage() { + _uiState.update { it.copy(infoMessage = null) } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressScreen.kt new file mode 100644 index 0000000..32b0fd1 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressScreen.kt @@ -0,0 +1,532 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Add +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.Star +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +@Composable +fun EditShippingAddressScreen( + onBack: () -> Unit, + onFinished: () -> Unit, + viewModel: EditShippingAddressViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + val context = LocalContext.current + val locationPermissionLauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.RequestPermission(), + ) { granted -> + if (granted) { + viewModel.onLocationRequestStarted() + requestCurrentLocation( + context = context, + onSuccess = viewModel::onLocationCaptured, + onError = viewModel::onLocationError, + ) + } else { + viewModel.onLocationError(context.getString(R.string.address_pin_permission_required)) + } + } + + LaunchedEffect(uiState.infoMessage) { + uiState.infoMessage?.let { + snackbarHostState.showSnackbar(it) + viewModel.consumeInfoMessage() + } + } + + LaunchedEffect(uiState.saveSuccess) { + if (uiState.saveSuccess) { + viewModel.consumeSaveSuccess() + onFinished() + } + } + + LaunchedEffect(uiState.deleteSuccess) { + if (uiState.deleteSuccess) { + viewModel.consumeDeleteSuccess() + onFinished() + } + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + ) { innerPadding -> + when { + uiState.isLoading -> { + Box( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + + uiState.errorMessage != null -> { + EditAddressState( + title = stringResource(R.string.shipping_addresses_error_title), + body = uiState.errorMessage.orEmpty(), + actionLabel = stringResource(R.string.explore_retry), + onAction = viewModel::loadAddress, + modifier = Modifier.padding(innerPadding), + ) + } + + else -> { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding) + .background(Background), + contentPadding = PaddingValues(start = 20.dp, end = 20.dp, top = 16.dp, bottom = 120.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(32.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.35f)) + .padding(horizontal = 24.dp, vertical = 28.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text( + text = stringResource(R.string.edit_shipping_address_eyebrow), + style = MaterialTheme.typography.labelSmall, + letterSpacing = 1.6.sp, + color = AccentPurple, + ) + Text( + text = stringResource(R.string.edit_shipping_address_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.edit_shipping_address_body), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + } + } + + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + SectionHeaderRow(Icons.Outlined.Person, stringResource(R.string.edit_shipping_address_recipient_section)) + InaTextField( + value = uiState.recipient, + onValueChange = viewModel::onRecipientChange, + label = stringResource(R.string.add_shipping_address_recipient_label), + placeholder = stringResource(R.string.add_shipping_address_recipient_placeholder), + ) + InaTextField( + value = uiState.phone, + onValueChange = viewModel::onPhoneChange, + label = stringResource(R.string.add_shipping_address_phone_label), + placeholder = stringResource(R.string.add_shipping_address_phone_placeholder), + ) + } + } + + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + SectionHeaderRow(Icons.Outlined.LocationOn, stringResource(R.string.edit_shipping_address_location_section)) + AddressDropdownField( + value = if (uiState.countryKey == ADDRESS_COUNTRY_INDONESIA) { + stringResource(R.string.add_shipping_address_country_indonesia) + } else { + stringResource(R.string.add_shipping_address_country_other) + }, + label = stringResource(R.string.add_shipping_address_country_label), + placeholder = stringResource(R.string.add_shipping_address_country_placeholder), + options = listOf( + DropdownOption(ADDRESS_COUNTRY_INDONESIA, stringResource(R.string.add_shipping_address_country_indonesia)), + DropdownOption(ADDRESS_COUNTRY_OTHER, stringResource(R.string.add_shipping_address_country_other)), + ), + onOptionSelected = { viewModel.onCountrySelected(it.id) }, + ) + if (uiState.countryKey == ADDRESS_COUNTRY_OTHER) { + InaTextField( + value = uiState.customCountry, + onValueChange = viewModel::onCustomCountryChange, + label = stringResource(R.string.add_shipping_address_country_custom_label), + placeholder = stringResource(R.string.add_shipping_address_country_custom_placeholder), + ) + InaTextField( + value = uiState.province, + onValueChange = viewModel::onProvinceChange, + label = stringResource(R.string.add_shipping_address_province_label), + ) + InaTextField( + value = uiState.city, + onValueChange = viewModel::onCityChange, + label = stringResource(R.string.add_shipping_address_city_label), + ) + } else { + AddressDropdownField( + value = uiState.province, + label = stringResource(R.string.add_shipping_address_province_label), + placeholder = if (uiState.isLoadingProvinces) { + stringResource(R.string.address_loading_provinces) + } else { + stringResource(R.string.add_shipping_address_province_placeholder) + }, + options = uiState.provinces.mapNotNull { + val id = it.id ?: return@mapNotNull null + val label = it.name ?: return@mapNotNull null + DropdownOption(id, label) + }, + enabled = !uiState.isLoadingProvinces && uiState.provinces.isNotEmpty(), + onOptionSelected = { viewModel.onProvinceSelected(it.id) }, + ) + AddressDropdownField( + value = uiState.city, + label = stringResource(R.string.add_shipping_address_city_label), + placeholder = if (uiState.selectedProvinceId == null) { + stringResource(R.string.address_select_province_first) + } else if (uiState.isLoadingCities) { + stringResource(R.string.address_loading_cities) + } else { + stringResource(R.string.add_shipping_address_city_placeholder) + }, + options = uiState.cities.mapNotNull { + val id = it.id ?: return@mapNotNull null + val label = it.name ?: return@mapNotNull null + DropdownOption(id, label) + }, + enabled = uiState.selectedProvinceId != null && !uiState.isLoadingCities, + onOptionSelected = { viewModel.onCitySelected(it.id) }, + ) + } + InaTextField( + value = uiState.postalCode, + onValueChange = viewModel::onPostalCodeChange, + label = stringResource(R.string.add_shipping_address_postal_label), + ) + androidx.compose.material3.OutlinedTextField( + value = uiState.address, + onValueChange = viewModel::onAddressChange, + modifier = Modifier.fillMaxWidth(), + minLines = 3, + shape = RoundedCornerShape(16.dp), + label = { Text(stringResource(R.string.add_shipping_address_full_label)) }, + textStyle = MaterialTheme.typography.bodyLarge.copy(color = OnSurface), + colors = TextFieldDefaults.colors( + focusedTextColor = OnSurface, + unfocusedTextColor = OnSurface, + focusedContainerColor = Color.White, + unfocusedContainerColor = Color.White, + disabledContainerColor = Color.White, + focusedIndicatorColor = BrandRed.copy(alpha = 0.45f), + unfocusedIndicatorColor = OnSurfaceVariant.copy(alpha = 0.28f), + focusedLabelColor = BrandRed, + unfocusedLabelColor = OnSurfaceVariant, + ), + ) + Text( + text = stringResource( + R.string.edit_shipping_address_coordinates, + uiState.latitude ?: 0.0, + uiState.longitude ?: 0.0, + ), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + AddressPinTeaser( + latitude = uiState.latitude, + longitude = uiState.longitude, + isLoading = uiState.isResolvingLocation, + onClick = { + if (hasLocationPermission(context)) { + viewModel.onLocationRequestStarted() + requestCurrentLocation( + context = context, + onSuccess = viewModel::onLocationCaptured, + onError = viewModel::onLocationError, + ) + } else { + locationPermissionLauncher.launch(android.Manifest.permission.ACCESS_FINE_LOCATION) + } + }, + ) + CurrentLocationPermissionMessage() + Row(horizontalArrangement = Arrangement.spacedBy(10.dp)) { + EditAddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_home), + selected = uiState.label.equals("rumah", true) || uiState.label.equals("home", true), + onClick = { viewModel.onLabelSelected("rumah") }, + ) + EditAddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_office), + selected = uiState.label.equals("kantor", true) || uiState.label.equals("office", true), + onClick = { viewModel.onLabelSelected("kantor") }, + ) + EditAddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_warehouse), + selected = uiState.label.equals("gudang", true) || uiState.label.equals("warehouse", true), + onClick = { viewModel.onLabelSelected("gudang") }, + ) + EditAddressLabelChip( + text = stringResource(R.string.add_shipping_address_label_other), + selected = uiState.label == EditShippingAddressViewModel.CUSTOM_LABEL_KEY, + icon = Icons.Outlined.Add, + onClick = viewModel::onCustomLabelSelected, + ) + } + if (uiState.label == EditShippingAddressViewModel.CUSTOM_LABEL_KEY) { + InaTextField( + value = uiState.customLabel, + onValueChange = viewModel::onCustomLabelChange, + label = stringResource(R.string.add_shipping_address_custom_label_title), + placeholder = stringResource(R.string.add_shipping_address_custom_label_placeholder), + ) + } + } + } + + item { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(20.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Row(horizontalArrangement = Arrangement.spacedBy(12.dp), verticalAlignment = Alignment.CenterVertically) { + Box( + modifier = Modifier + .size(44.dp) + .clip(RoundedCornerShape(14.dp)) + .background(BrandRedContainer.copy(alpha = 0.18f)), + contentAlignment = Alignment.Center, + ) { + Icon(Icons.Outlined.Star, contentDescription = null, tint = BrandRed) + } + Column { + Text( + text = stringResource(R.string.add_shipping_address_primary_label), + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + Text( + text = stringResource(R.string.add_shipping_address_primary_body), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + } + Switch( + checked = uiState.isPrimary, + onCheckedChange = viewModel::onPrimaryChange, + ) + } + } + + item { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + ) { + TextButton( + onClick = viewModel::onDeleteClick, + enabled = !uiState.isDeleting && !uiState.isSaving, + ) { + Text( + text = stringResource(R.string.edit_shipping_address_delete), + color = BrandRed, + fontWeight = FontWeight.Bold, + ) + } + } + } + } + + Box( + modifier = Modifier + .fillMaxSize() + .padding(bottom = 24.dp), + contentAlignment = Alignment.BottomCenter, + ) { + InaPrimaryButton( + text = stringResource(R.string.edit_shipping_address_save), + onClick = viewModel::onSaveClick, + isLoading = uiState.isSaving, + enabled = !uiState.isResolvingLocation, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 20.dp), + ) + } + } + } + } +} + +@Composable +private fun EditAddressLabelChip( + text: String, + selected: Boolean, + icon: androidx.compose.ui.graphics.vector.ImageVector? = null, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .clip(RoundedCornerShape(999.dp)) + .background(if (selected) BrandRed else SurfaceContainerHighest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(horizontal = 16.dp, vertical = 10.dp), + contentAlignment = Alignment.Center, + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (icon != null) { + Icon( + imageVector = icon, + contentDescription = null, + tint = if (selected) Color.White else OnSurfaceVariant, + modifier = Modifier.size(16.dp), + ) + } + Text( + text = text, + style = MaterialTheme.typography.labelLarge, + color = if (selected) Color.White else OnSurfaceVariant, + ) + } + } +} + +@Composable +private fun SectionHeaderRow( + icon: androidx.compose.ui.graphics.vector.ImageVector, + title: String, +) { + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon(icon, contentDescription = null, tint = BrandRed) + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = OnSurface, + ) + } +} + +@Composable +private fun EditAddressState( + title: String, + body: String, + actionLabel: String, + onAction: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxSize() + .background(Background) + .padding(24.dp), + contentAlignment = Alignment.Center, + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + Text(text = title, fontFamily = ManropeFontFamily, fontWeight = FontWeight.ExtraBold, fontSize = 24.sp) + Text(text = body, color = OnSurfaceVariant) + InaPrimaryButton( + text = actionLabel, + onClick = onAction, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressViewModel.kt new file mode 100644 index 0000000..29ca005 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/EditShippingAddressViewModel.kt @@ -0,0 +1,467 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.profile.data.model.CityItem +import id.iiyh.inatrading.feature.profile.data.model.CreateShippingAddressRequest +import id.iiyh.inatrading.feature.profile.data.model.ProvinceItem +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +data class EditShippingAddressUiState( + val isLoading: Boolean = false, + val isSaving: Boolean = false, + val isDeleting: Boolean = false, + val addressId: String = "", + val label: String = "", + val customLabel: String = "", + val recipient: String = "", + val phone: String = "", + val countryKey: String = ADDRESS_COUNTRY_INDONESIA, + val customCountry: String = "", + val provinces: List = emptyList(), + val cities: List = emptyList(), + val selectedProvinceId: String? = null, + val selectedCityId: String? = null, + val isLoadingProvinces: Boolean = false, + val isLoadingCities: Boolean = false, + val country: String = "", + val province: String = "", + val city: String = "", + val postalCode: String = "", + val address: String = "", + val isPrimary: Boolean = false, + val latitude: Double? = null, + val longitude: Double? = null, + val isResolvingLocation: Boolean = false, + val errorMessage: String? = null, + val infoMessage: String? = null, + val saveSuccess: Boolean = false, + val deleteSuccess: Boolean = false, +) + +@HiltViewModel +class EditShippingAddressViewModel @Inject constructor( + savedStateHandle: SavedStateHandle, + private val authRepository: AuthRepository, +) : ViewModel() { + + private val addressId: String = savedStateHandle["addressId"] ?: "" + + private val _uiState = MutableStateFlow(EditShippingAddressUiState(addressId = addressId)) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadAddress() + } + + fun loadAddress() { + if (addressId.isBlank()) { + _uiState.update { it.copy(errorMessage = "Alamat tidak ditemukan.") } + return + } + viewModelScope.launch { + _uiState.update { it.copy(isLoading = true, errorMessage = null) } + authRepository.getAddresses() + .onSuccess { addresses -> + val address = addresses.firstOrNull { it.id == addressId } + if (address == null) { + _uiState.update { + it.copy( + isLoading = false, + errorMessage = "Alamat tidak ditemukan.", + ) + } + } else { + val resolvedLabel = address.label.orEmpty() + val isPreset = isPresetLabel(resolvedLabel) + val isIndonesia = address.country.orEmpty().equals("indonesia", true) + _uiState.update { + it.copy( + isLoading = false, + label = if (isPreset) resolvedLabel else CUSTOM_LABEL_KEY, + customLabel = if (isPreset) "" else resolvedLabel, + recipient = address.recipient.orEmpty(), + phone = address.mobile.orEmpty(), + countryKey = if (isIndonesia) ADDRESS_COUNTRY_INDONESIA else ADDRESS_COUNTRY_OTHER, + customCountry = if (isIndonesia) "" else address.country.orEmpty(), + country = address.country.orEmpty(), + province = address.province.orEmpty(), + city = address.city.orEmpty(), + postalCode = address.postalCode.orEmpty(), + address = address.address.orEmpty(), + isPrimary = address.isPrimary, + latitude = address.latitude, + longitude = address.longitude, + ) + } + if (isIndonesia) { + loadProvinces( + initialProvinceName = address.province.orEmpty(), + initialCityName = address.city.orEmpty(), + ) + } + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = error.message ?: "Gagal memuat alamat", + ) + } + } + } + } + + fun onLabelSelected(value: String) { + _uiState.update { it.copy(label = value, customLabel = "") } + } + + fun onCustomLabelSelected() { + _uiState.update { + it.copy( + label = CUSTOM_LABEL_KEY, + customLabel = it.customLabel, + ) + } + } + + fun onCustomLabelChange(value: String) { + _uiState.update { + it.copy( + label = CUSTOM_LABEL_KEY, + customLabel = value, + ) + } + } + + fun onRecipientChange(value: String) { + _uiState.update { it.copy(recipient = value) } + } + + fun onPhoneChange(value: String) { + _uiState.update { it.copy(phone = value.filter(Char::isDigit)) } + } + + fun onCountryChange(value: String) { + _uiState.update { it.copy(country = value) } + } + + fun onCountrySelected(value: String) { + _uiState.update { + it.copy( + countryKey = value, + customCountry = if (value == ADDRESS_COUNTRY_OTHER) it.customCountry else "", + country = if (value == ADDRESS_COUNTRY_INDONESIA) "Indonesia" else it.country, + province = "", + city = "", + selectedProvinceId = null, + selectedCityId = null, + cities = emptyList(), + ) + } + if (value == ADDRESS_COUNTRY_INDONESIA) { + loadProvinces() + } + } + + fun onCustomCountryChange(value: String) { + _uiState.update { it.copy(customCountry = value, country = value) } + } + + fun onProvinceChange(value: String) { + _uiState.update { it.copy(province = value) } + } + + fun onProvinceSelected(id: String) { + val province = _uiState.value.provinces.firstOrNull { it.id == id } ?: return + _uiState.update { + it.copy( + selectedProvinceId = province.id, + province = province.name.orEmpty(), + selectedCityId = null, + city = "", + cities = emptyList(), + ) + } + province.id?.let { loadCities(it) } + } + + fun onCityChange(value: String) { + _uiState.update { it.copy(city = value) } + } + + fun onCitySelected(id: String) { + val city = _uiState.value.cities.firstOrNull { it.id == id } ?: return + _uiState.update { + it.copy( + selectedCityId = city.id, + city = city.name.orEmpty(), + ) + } + } + + fun onPostalCodeChange(value: String) { + _uiState.update { it.copy(postalCode = value.filter(Char::isDigit)) } + } + + fun onAddressChange(value: String) { + _uiState.update { it.copy(address = value) } + } + + fun onPrimaryChange(value: Boolean) { + _uiState.update { it.copy(isPrimary = value) } + } + + fun onLocationCaptured(latitude: Double, longitude: Double) { + _uiState.update { + it.copy( + latitude = latitude, + longitude = longitude, + isResolvingLocation = false, + infoMessage = "Lokasi saat ini berhasil digunakan.", + ) + } + } + + fun onLocationError(message: String) { + _uiState.update { it.copy(isResolvingLocation = false, infoMessage = message) } + } + + fun onLocationRequestStarted() { + _uiState.update { + it.copy( + isResolvingLocation = true, + infoMessage = "Mengambil koordinat lokasi saat ini...", + ) + } + } + + fun onSaveClick() { + val state = _uiState.value + if (state.recipient.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nama penerima wajib diisi.") } + return + } + if (state.phone.isBlank()) { + _uiState.update { it.copy(infoMessage = "Nomor telepon wajib diisi.") } + return + } + if (state.province.isBlank()) { + _uiState.update { it.copy(infoMessage = "Provinsi wajib diisi.") } + return + } + if (state.city.isBlank()) { + _uiState.update { it.copy(infoMessage = "Kota wajib diisi.") } + return + } + if (state.postalCode.isBlank()) { + _uiState.update { it.copy(infoMessage = "Kode pos wajib diisi.") } + return + } + if (state.address.isBlank()) { + _uiState.update { it.copy(infoMessage = "Detail alamat wajib diisi.") } + return + } + if (state.label == CUSTOM_LABEL_KEY && state.customLabel.isBlank()) { + _uiState.update { it.copy(infoMessage = "Label alamat wajib diisi.") } + return + } + if (state.resolvedCountry().isBlank()) { + _uiState.update { it.copy(infoMessage = "Negara wajib dipilih.") } + return + } + if (state.countryKey == ADDRESS_COUNTRY_INDONESIA && state.selectedProvinceId == null) { + _uiState.update { it.copy(infoMessage = "Provinsi wajib dipilih.") } + return + } + if (state.countryKey == ADDRESS_COUNTRY_INDONESIA && state.selectedCityId == null) { + _uiState.update { it.copy(infoMessage = "Kota/Kabupaten wajib dipilih.") } + return + } + if (state.isResolvingLocation) { + _uiState.update { it.copy(infoMessage = "Tunggu sampai koordinat lokasi selesai diambil.") } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isSaving = true, infoMessage = null) } + authRepository.updateAddress( + addressId = state.addressId, + request = CreateShippingAddressRequest( + label = state.submittedLabel(), + recipient = state.recipient.trim(), + mobile = normalizePhone(state.phone), + address = state.address.trim(), + country = state.resolvedCountry(), + province = state.province.trim(), + city = state.city.trim(), + postalCode = state.postalCode.trim(), + isPrimary = state.isPrimary, + latitude = state.latitude, + longitude = state.longitude, + ), + ).onSuccess { + _uiState.update { + it.copy( + isSaving = false, + saveSuccess = true, + infoMessage = "Alamat berhasil diperbarui.", + ) + } + }.onFailure { error -> + _uiState.update { + it.copy( + isSaving = false, + infoMessage = error.message ?: "Gagal memperbarui alamat", + ) + } + } + } + } + + fun onDeleteClick() { + val state = _uiState.value + if (state.addressId.isBlank()) { + _uiState.update { it.copy(infoMessage = "Alamat tidak ditemukan.") } + return + } + + viewModelScope.launch { + _uiState.update { it.copy(isDeleting = true, infoMessage = null) } + authRepository.deleteAddress(state.addressId) + .onSuccess { + _uiState.update { + it.copy( + isDeleting = false, + deleteSuccess = true, + infoMessage = "Alamat berhasil dihapus.", + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isDeleting = false, + infoMessage = error.message ?: "Gagal menghapus alamat", + ) + } + } + } + } + + fun consumeInfoMessage() { + _uiState.update { it.copy(infoMessage = null) } + } + + fun consumeSaveSuccess() { + _uiState.update { it.copy(saveSuccess = false) } + } + + fun consumeDeleteSuccess() { + _uiState.update { it.copy(deleteSuccess = false) } + } + + private fun loadProvinces( + initialProvinceName: String? = null, + initialCityName: String? = null, + ) { + viewModelScope.launch { + _uiState.update { it.copy(isLoadingProvinces = true) } + authRepository.getProvinces() + .onSuccess { provinces -> + val sorted = provinces.sortedBy { item -> item.name.orEmpty() } + val matchedProvince = initialProvinceName?.let { provinceName -> + sorted.firstOrNull { it.name.orEmpty().equals(provinceName, true) } + } + _uiState.update { + it.copy( + isLoadingProvinces = false, + provinces = sorted, + selectedProvinceId = matchedProvince?.id ?: it.selectedProvinceId, + province = matchedProvince?.name.orEmpty().ifBlank { it.province }, + ) + } + matchedProvince?.id?.let { provinceId -> + loadCities(provinceId, initialCityName) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoadingProvinces = false, + infoMessage = error.message ?: "Gagal memuat provinsi", + ) + } + } + } + } + + private fun loadCities( + provinceId: String, + initialCityName: String? = null, + ) { + viewModelScope.launch { + _uiState.update { it.copy(isLoadingCities = true) } + authRepository.getCities(provinceId) + .onSuccess { cities -> + val sorted = cities.sortedBy { item -> item.name.orEmpty() } + val matchedCity = initialCityName?.let { cityName -> + sorted.firstOrNull { it.name.orEmpty().equals(cityName, true) } + } + _uiState.update { + it.copy( + isLoadingCities = false, + cities = sorted, + selectedCityId = matchedCity?.id ?: it.selectedCityId, + city = matchedCity?.name.orEmpty().ifBlank { it.city }, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoadingCities = false, + infoMessage = error.message ?: "Gagal memuat kota", + ) + } + } + } + } + + private fun normalizePhone(raw: String): String { + val digits = raw.filter(Char::isDigit) + if (digits.startsWith("0")) return digits + if (digits.startsWith("62")) return "0${digits.removePrefix("62")}" + return "0$digits" + } + + private fun EditShippingAddressUiState.submittedLabel(): String { + return if (label == CUSTOM_LABEL_KEY) customLabel.trim() else label.ifBlank { "rumah" } + } + + private fun EditShippingAddressUiState.resolvedCountry(): String { + return if (countryKey == ADDRESS_COUNTRY_OTHER) customCountry.trim() else "Indonesia" + } + + private fun isPresetLabel(value: String): Boolean { + return value.equals("rumah", true) || + value.equals("home", true) || + value.equals("kantor", true) || + value.equals("office", true) || + value.equals("gudang", true) || + value.equals("warehouse", true) + } + + companion object { + const val CUSTOM_LABEL_KEY = "__custom__" + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoriteGroupDetailScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoriteGroupDetailScreen.kt new file mode 100644 index 0000000..145a92b --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoriteGroupDetailScreen.kt @@ -0,0 +1,447 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.automirrored.outlined.ArrowForward +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material.icons.outlined.Inventory2 +import androidx.compose.material.icons.outlined.Storefront +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.pluralStringResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupProduct +import id.iiyh.inatrading.feature.favorite.presentation.FavoriteGroupDetailViewModel + +@Composable +fun FavoriteGroupDetailScreen( + onBack: () -> Unit, + onProductClick: (String) -> Unit, + onSessionExpired: () -> Unit, + viewModel: FavoriteGroupDetailViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + + LaunchedEffect(uiState.errorMessage) { + uiState.errorMessage?.let { + snackbarHostState.showSnackbar(it) + viewModel.consumeError() + } + } + + LaunchedEffect(uiState.sessionExpired) { + if (uiState.sessionExpired) { + viewModel.consumeSessionExpired() + onSessionExpired() + } + } + + Scaffold( + topBar = { + FavoriteGroupDetailTopBar( + title = uiState.groupName.ifBlank { stringResource(R.string.profile_my_favorites) }, + onBack = onBack, + ) + }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + ) { innerPadding -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(innerPadding), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + item { + FavoriteGroupHero(groupName = uiState.groupName) + } + + item { + GroupSummaryCard(itemCount = uiState.items.size) + } + + when { + uiState.isLoading -> { + item { DetailLoadingState() } + } + + uiState.items.isEmpty() -> { + item { FavoriteGroupEmptyState() } + } + + else -> { + items(uiState.items, key = { it.id }) { item -> + FavoriteProductCard( + item = item, + isRemoving = uiState.removingProductId == item.productId, + onDelete = { viewModel.removeFavorite(item.productId) }, + onProductClick = { onProductClick(item.productId) }, + ) + } + } + } + } + } +} + +@Composable +private fun FavoriteGroupDetailTopBar( + title: String, + onBack: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.88f)) + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + IconAction( + icon = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + onClick = onBack, + ) + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = BrandRed, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.padding(start = 8.dp), + ) + } +} + +@Composable +private fun FavoriteGroupHero(groupName: String) { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(34.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.28f)) + .padding(horizontal = 24.dp, vertical = 28.dp), + ) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text( + text = stringResource(R.string.favorite_group_eyebrow), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + color = BrandRed, + letterSpacing = 2.sp, + ) + Text( + text = groupName.ifBlank { stringResource(R.string.profile_my_favorites) }, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 32.sp, + lineHeight = 36.sp, + color = OnSurface, + ) + } + } +} + +@Composable +private fun GroupSummaryCard(itemCount: Int) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(18.dp)) + .background(SurfaceContainerLow) + .padding(18.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text( + text = stringResource(R.string.favorite_group_summary), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 18.sp, + color = OnSurface, + ) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + text = stringResource(R.string.favorite_group_total_items), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + Text( + text = pluralStringResource(R.plurals.favorite_products_count, itemCount, itemCount), + style = MaterialTheme.typography.bodyMedium, + fontWeight = FontWeight.Bold, + color = OnSurface, + ) + } + } +} + +@Composable +private fun FavoriteProductCard( + item: FavoriteGroupProduct, + isRemoving: Boolean, + onDelete: () -> Unit, + onProductClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(20.dp)) + .background(SurfaceContainerLowest) + .padding(18.dp), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + Box( + modifier = Modifier + .size(112.dp) + .clip(RoundedCornerShape(14.dp)) + .background(SurfaceContainerLow), + contentAlignment = Alignment.Center, + ) { + if (!item.productImage.isNullOrBlank()) { + AsyncImage( + model = item.productImage, + contentDescription = item.productName, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + } else { + Icon( + imageVector = Icons.Outlined.Inventory2, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(36.dp), + ) + } + } + + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.SpaceBetween, + ) { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + ) { + Text( + text = item.productName, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 20.sp, + lineHeight = 24.sp, + color = OnSurface, + modifier = Modifier.weight(1f), + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + Spacer(modifier = Modifier.width(8.dp)) + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(20.dp)) + .clickable( + enabled = !isRemoving, + interactionSource = remember { MutableInteractionSource() }, + indication = androidx.compose.material3.ripple(), + onClick = onDelete, + ), + contentAlignment = Alignment.Center, + ) { + if (isRemoving) { + CircularProgressIndicator( + color = BrandRed, + strokeWidth = 2.dp, + modifier = Modifier.size(18.dp), + ) + } else { + Icon( + imageVector = Icons.Outlined.Delete, + contentDescription = stringResource(R.string.favorite_delete_item), + tint = BrandRed, + modifier = Modifier.size(22.dp), + ) + } + } + } + + item.sellerName?.takeIf { it.isNotBlank() }?.let { sellerName -> + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(6.dp), + ) { + Icon( + imageVector = Icons.Outlined.Storefront, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(16.dp), + ) + Text( + text = sellerName, + style = MaterialTheme.typography.bodyMedium, + fontWeight = FontWeight.SemiBold, + color = BrandRed, + ) + } + } + + item.productDescription?.takeIf { it.isNotBlank() }?.let { description -> + Text( + text = description, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + maxLines = 4, + overflow = TextOverflow.Ellipsis, + ) + } + } + + Row( + modifier = Modifier.padding(top = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + InaPrimaryButton( + text = stringResource(R.string.favorite_group_product_detail), + onClick = onProductClick, + ) + Text( + text = item.productId.take(8) + "...", + style = MaterialTheme.typography.labelMedium, + color = OnSurfaceVariant, + fontStyle = FontStyle.Italic, + ) + } + } + } +} + +@Composable +private fun FavoriteGroupEmptyState() { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(horizontal = 24.dp, vertical = 32.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Icon( + imageVector = Icons.Outlined.Inventory2, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(42.dp), + ) + Text( + text = stringResource(R.string.favorite_group_empty_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.favorite_group_empty_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + } +} + +@Composable +private fun DetailLoadingState() { + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(vertical = 42.dp), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } +} + +@Composable +private fun IconAction( + icon: androidx.compose.ui.graphics.vector.ImageVector, + contentDescription: String, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(20.dp)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = androidx.compose.material3.ripple(bounded = false, radius = 20.dp), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = contentDescription, + tint = BrandRed, + modifier = Modifier.size(22.dp), + ) + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoritesScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoritesScreen.kt new file mode 100644 index 0000000..8b6dafd --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/FavoritesScreen.kt @@ -0,0 +1,679 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.itemsIndexed +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.filled.CreateNewFolder +import androidx.compose.material.icons.outlined.CardGiftcard +import androidx.compose.material.icons.outlined.DeleteOutline +import androidx.compose.material.icons.outlined.Edit +import androidx.compose.material.icons.outlined.HomeWork +import androidx.compose.material.icons.outlined.MoreVert +import androidx.compose.material.icons.outlined.Refresh +import androidx.compose.material.icons.outlined.Restaurant +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.pluralStringResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.components.InaTextField +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedLight +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.favorite.domain.FavoriteGroupSummary +import id.iiyh.inatrading.feature.favorite.presentation.FavoritesViewModel + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun FavoritesScreen( + onBack: () -> Unit, + onBrowseProducts: () -> Unit, + onGroupClick: (FavoriteGroupSummary) -> Unit, + onSessionExpired: () -> Unit, + viewModel: FavoritesViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + var createDialogOpen by remember { mutableStateOf(false) } + var editingGroup by remember { mutableStateOf(null) } + var deletingGroup by remember { mutableStateOf(null) } + val gridState = rememberLazyGridState() + + LaunchedEffect(uiState.errorMessage) { + uiState.errorMessage?.let { snackbarHostState.showSnackbar(it) } + } + + LaunchedEffect(uiState.sessionExpired) { + if (uiState.sessionExpired) { + viewModel.consumeSessionExpired() + onSessionExpired() + } + } + + Scaffold( + topBar = { + FavoritesTopBar( + onBack = onBack, + onCreateClick = { createDialogOpen = true }, + ) + }, + snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, + floatingActionButton = { + Box( + modifier = Modifier + .size(56.dp) + .clip(RoundedCornerShape(18.dp)) + .background(BrandRed) + .clickable(onClick = { createDialogOpen = true }), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Filled.CreateNewFolder, + contentDescription = stringResource(R.string.favorite_create_collection), + tint = Color.White, + modifier = Modifier.size(28.dp), + ) + } + }, + containerColor = Background, + ) { innerPadding -> + LazyVerticalGrid( + columns = GridCells.Adaptive(minSize = 160.dp), + state = gridState, + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(innerPadding), + contentPadding = androidx.compose.foundation.layout.PaddingValues( + start = 24.dp, + end = 24.dp, + top = 20.dp, + bottom = 104.dp, + ), + horizontalArrangement = Arrangement.spacedBy(16.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + FavoritesHero() + } + + if (uiState.isLoading) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + LoadingState() + } + } else if (uiState.groups.isEmpty()) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + EmptyState(onBrowseProducts = onBrowseProducts, onCreateClick = { createDialogOpen = true }) + } + } else { + itemsIndexed(uiState.groups, key = { _, item -> item.id }) { index, group -> + FavoriteGroupCard( + group = group, + accent = accentFor(index), + onClick = { onGroupClick(group) }, + onEdit = { editingGroup = group }, + onDelete = { deletingGroup = group }, + ) + } + + item { + CreateCollectionCard(onClick = { createDialogOpen = true }) + } + } + + if (!uiState.isLoading && uiState.groups.isNotEmpty()) { + item(span = { androidx.compose.foundation.lazy.grid.GridItemSpan(maxLineSpan) }) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 4.dp), + horizontalArrangement = Arrangement.Center, + ) { + TextButton(onClick = viewModel::loadFavorites) { + Icon( + imageVector = Icons.Outlined.Refresh, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + Text( + text = stringResource(R.string.favorite_refresh), + color = BrandRed, + modifier = Modifier.padding(start = 8.dp), + ) + } + } + } + } + } + } + + if (createDialogOpen) { + FavoriteNameDialog( + title = stringResource(R.string.favorite_create_collection), + confirmLabel = stringResource(R.string.favorite_create_action), + initialValue = "", + isSubmitting = uiState.isSubmitting, + onDismiss = { createDialogOpen = false }, + onConfirm = { name -> + createDialogOpen = false + viewModel.createGroup(name) + }, + ) + } + + editingGroup?.let { group -> + FavoriteNameDialog( + title = stringResource(R.string.favorite_edit_collection), + confirmLabel = stringResource(R.string.favorite_save_action), + initialValue = group.name, + isSubmitting = uiState.isSubmitting, + onDismiss = { editingGroup = null }, + onConfirm = { name -> + editingGroup = null + viewModel.renameGroup(group.id, name) + }, + ) + } + + deletingGroup?.let { group -> + DeleteFavoriteDialog( + name = group.name, + isSubmitting = uiState.isSubmitting, + onDismiss = { deletingGroup = null }, + onConfirm = { + deletingGroup = null + viewModel.deleteGroup(group.id) + }, + ) + } +} + +@Composable +private fun FavoritesTopBar( + onBack: () -> Unit, + onCreateClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(Color.White.copy(alpha = 0.88f)) + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Row(verticalAlignment = Alignment.CenterVertically) { + IconAction( + icon = Icons.AutoMirrored.Outlined.ArrowBack, + contentDescription = stringResource(R.string.favorite_back), + onClick = onBack, + ) + Text( + text = stringResource(R.string.profile_my_favorites), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = BrandRed, + modifier = Modifier.padding(start = 8.dp), + ) + } + + IconAction( + icon = Icons.Filled.CreateNewFolder, + contentDescription = stringResource(R.string.favorite_create_collection), + onClick = onCreateClick, + ) + } +} + +@Composable +private fun FavoritesHero() { + Box( + modifier = Modifier + .fillMaxWidth() + .height(170.dp) + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(154.dp) + .clip(RoundedCornerShape(40.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.42f)) + ) + + Column( + modifier = Modifier + .fillMaxWidth() + .align(Alignment.CenterStart) + .padding(horizontal = 24.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Text( + text = stringResource(R.string.profile_favorites_eyebrow), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + color = AccentBlue, + letterSpacing = 2.sp, + ) + Text( + text = stringResource(R.string.favorite_hero_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 32.sp, + lineHeight = 36.sp, + color = OnSurface, + ) + } + } +} + +@Composable +private fun FavoriteGroupCard( + group: FavoriteGroupSummary, + accent: FavoriteAccent, + onClick: () -> Unit, + onEdit: () -> Unit, + onDelete: () -> Unit, +) { + var expanded by remember { mutableStateOf(false) } + + Box( + modifier = Modifier + .fillMaxWidth() + .height(188.dp) + .clip(RoundedCornerShape(18.dp)) + .background(SurfaceContainerLowest) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(18.dp), + ) { + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.SpaceBetween, + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(14.dp)) + .background(accent.container), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = accent.icon, + contentDescription = null, + tint = accent.tint, + modifier = Modifier.size(24.dp), + ) + } + + Box { + IconAction( + icon = Icons.Outlined.MoreVert, + contentDescription = stringResource(R.string.favorite_more_options), + onClick = { expanded = true }, + ) + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + ) { + DropdownMenuItem( + text = { Text(stringResource(R.string.favorite_edit_action)) }, + leadingIcon = { + Icon(Icons.Outlined.Edit, contentDescription = null) + }, + onClick = { + expanded = false + onEdit() + }, + ) + DropdownMenuItem( + text = { Text(stringResource(R.string.favorite_delete_action)) }, + leadingIcon = { + Icon(Icons.Outlined.DeleteOutline, contentDescription = null) + }, + onClick = { + expanded = false + onDelete() + }, + ) + } + } + } + + Column(verticalArrangement = Arrangement.spacedBy(6.dp)) { + Text( + text = group.name, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + maxLines = 2, + ) + Text( + text = pluralStringResource( + R.plurals.favorite_products_count, + group.itemCount, + group.itemCount, + ), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + if (group.isDefault) { + Text( + text = stringResource(R.string.favorite_default_collection), + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Bold, + color = BrandRed, + letterSpacing = 1.sp, + ) + } + } + } + + Box( + modifier = Modifier + .align(Alignment.BottomEnd) + .size(72.dp) + .clip(RoundedCornerShape(16.dp)) + .background(accent.container.copy(alpha = 0.55f)), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = accent.icon, + contentDescription = null, + tint = accent.tint.copy(alpha = 0.85f), + modifier = Modifier.size(32.dp), + ) + } + } +} + +@Composable +private fun CreateCollectionCard( + onClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .height(188.dp) + .clip(RoundedCornerShape(18.dp)) + .background(Color.Transparent) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onClick, + ) + .padding(2.dp) + .clip(RoundedCornerShape(18.dp)) + .background(BrandRed.copy(alpha = 0.04f)) + .padding(18.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Box( + modifier = Modifier + .size(52.dp) + .clip(RoundedCornerShape(16.dp)) + .background(SurfaceContainerLow), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Filled.CreateNewFolder, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(26.dp), + ) + } + Text( + text = stringResource(R.string.favorite_create_collection), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + modifier = Modifier.padding(top = 12.dp), + ) + } +} + +@Composable +private fun EmptyState( + onBrowseProducts: () -> Unit, + onCreateClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(horizontal = 24.dp, vertical = 32.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + Text( + text = stringResource(R.string.profile_favorites_empty_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = OnSurface, + textAlign = TextAlign.Center, + ) + Text( + text = stringResource(R.string.favorite_empty_groups_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + InaPrimaryButton( + text = stringResource(R.string.favorite_create_collection), + onClick = onCreateClick, + modifier = Modifier.fillMaxWidth(), + ) + TextButton(onClick = onBrowseProducts) { + Text(text = stringResource(R.string.profile_favorites_browse_products), color = BrandRed) + } + } +} + +@Composable +private fun LoadingState() { + Box( + modifier = Modifier + .fillMaxWidth() + .height(220.dp) + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } +} + +@Composable +private fun FavoriteNameDialog( + title: String, + confirmLabel: String, + initialValue: String, + isSubmitting: Boolean, + onDismiss: () -> Unit, + onConfirm: (String) -> Unit, +) { + var value by remember(initialValue) { mutableStateOf(initialValue) } + + AlertDialog( + onDismissRequest = { + if (!isSubmitting) onDismiss() + }, + title = { Text(title, fontFamily = ManropeFontFamily, fontWeight = FontWeight.Bold) }, + text = { + InaTextField( + value = value, + onValueChange = { value = it }, + placeholder = stringResource(R.string.favorite_name_placeholder), + ) + }, + confirmButton = { + TextButton( + enabled = value.trim().isNotEmpty() && !isSubmitting, + onClick = { onConfirm(value.trim()) }, + ) { + Text(confirmLabel) + } + }, + dismissButton = { + TextButton( + enabled = !isSubmitting, + onClick = onDismiss, + ) { + Text(stringResource(R.string.dialog_cancel)) + } + }, + ) +} + +@Composable +private fun DeleteFavoriteDialog( + name: String, + isSubmitting: Boolean, + onDismiss: () -> Unit, + onConfirm: () -> Unit, +) { + AlertDialog( + onDismissRequest = { + if (!isSubmitting) onDismiss() + }, + title = { Text(stringResource(R.string.favorite_delete_action), fontFamily = ManropeFontFamily, fontWeight = FontWeight.Bold) }, + text = { + Text(stringResource(R.string.favorite_delete_confirmation, name)) + }, + confirmButton = { + TextButton( + enabled = !isSubmitting, + onClick = onConfirm, + ) { + Text(stringResource(R.string.favorite_delete_action), color = BrandRed) + } + }, + dismissButton = { + TextButton( + enabled = !isSubmitting, + onClick = onDismiss, + ) { + Text(stringResource(R.string.dialog_cancel)) + } + }, + ) +} + +@Composable +private fun IconAction( + icon: ImageVector, + contentDescription: String, + onClick: () -> Unit, +) { + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(20.dp)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false, radius = 20.dp), + onClick = onClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = contentDescription, + tint = BrandRed, + modifier = Modifier.size(22.dp), + ) + } +} + +private data class FavoriteAccent( + val icon: ImageVector, + val tint: Color, + val container: Color, +) + +private fun accentFor(index: Int): FavoriteAccent = when (index % 3) { + 0 -> FavoriteAccent( + icon = Icons.Outlined.HomeWork, + tint = BrandRed, + container = BrandRedLight.copy(alpha = 0.18f), + ) + 1 -> FavoriteAccent( + icon = Icons.Outlined.Restaurant, + tint = AccentBlue, + container = AccentBlueContainer.copy(alpha = 0.45f), + ) + else -> FavoriteAccent( + icon = Icons.Outlined.CardGiftcard, + tint = AccentPurple, + container = AccentPurpleContainer.copy(alpha = 0.45f), + ) +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileScreen.kt new file mode 100644 index 0000000..f659f2f --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileScreen.kt @@ -0,0 +1,699 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Verified +import androidx.compose.material.icons.outlined.AccountBalanceWallet +import androidx.compose.material.icons.outlined.Description +import androidx.compose.material.icons.outlined.Favorite +import androidx.compose.material.icons.outlined.Grade +import androidx.compose.material.icons.outlined.HelpCenter +import androidx.compose.material.icons.outlined.Info +import androidx.compose.material.icons.outlined.Inventory2 +import androidx.compose.material.icons.outlined.LocalShipping +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Logout +import androidx.compose.material.icons.outlined.Payments +import androidx.compose.material.icons.outlined.Edit +import androidx.compose.material.icons.outlined.PrivacyTip +import androidx.compose.material.icons.outlined.Settings +import androidx.compose.material.icons.outlined.ChevronRight +import androidx.compose.material.icons.outlined.Shield +import androidx.compose.material.icons.outlined.Lock +import androidx.compose.material.icons.outlined.VerifiedUser +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import coil.compose.AsyncImage +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaCard +import id.iiyh.inatrading.core.ui.components.InaChip +import id.iiyh.inatrading.core.ui.components.InaChipVariant +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest + +@Composable +fun ProfileScreen( + onLoginClick: () -> Unit, + onEditProfile: () -> Unit, + onChangePassword: () -> Unit, + onShippingAddresses: () -> Unit, + onFavoritesClick: () -> Unit, + onPaymentMethods: () -> Unit, + onHelpCenterClick: () -> Unit, + onTermsClick: () -> Unit, + onPrivacyPolicyClick: () -> Unit, + onAboutClick: () -> Unit, + viewModel: ProfileViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + + if (uiState.isLoggedIn && uiState.user != null) { + ProfileLoggedInContent( + user = uiState.user!!, + orderCounts = uiState.orderCounts, + onEditProfile = onEditProfile, + onChangePassword = onChangePassword, + onShippingAddresses = onShippingAddresses, + onFavoritesClick = onFavoritesClick, + onPaymentMethods = onPaymentMethods, + onHelpCenterClick = onHelpCenterClick, + onTermsClick = onTermsClick, + onPrivacyPolicyClick = onPrivacyPolicyClick, + onAboutClick = onAboutClick, + onLogout = viewModel::logout, + ) + } else { + ProfileGuestContent( + onLoginClick = onLoginClick, + onHelpCenterClick = onHelpCenterClick, + onTermsClick = onTermsClick, + onPrivacyPolicyClick = onPrivacyPolicyClick, + onAboutClick = onAboutClick, + ) + } +} + +// ─── Logged In ──────────────────────────────────────────────────────────────── + +@Composable +private fun ProfileLoggedInContent( + user: UserProfile, + orderCounts: OrderCounts, + onEditProfile: () -> Unit, + onChangePassword: () -> Unit, + onShippingAddresses: () -> Unit, + onFavoritesClick: () -> Unit, + onPaymentMethods: () -> Unit, + onHelpCenterClick: () -> Unit, + onTermsClick: () -> Unit, + onPrivacyPolicyClick: () -> Unit, + onAboutClick: () -> Unit, + onLogout: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxSize() + .background(Background) + .verticalScroll(rememberScrollState()) + .padding(horizontal = 24.dp) + .padding(bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // ── Profile Header dengan Brand Slope ───────────────────────────── + Box( + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + ) { + // Brand Slope background + Box( + modifier = Modifier + .fillMaxWidth() + .offset(x = (-16).dp) + .width(420.dp) + .height(128.dp) + .rotate(-2f) + .clip(RoundedCornerShape(40.dp)) + .background(SurfaceContainerHighest) + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 12.dp, bottom = 4.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + // Avatar + verified badge + Box { + AsyncImage( + model = user.avatarUrl.ifEmpty { null }, + contentDescription = user.name, + contentScale = ContentScale.Crop, + modifier = Modifier + .size(72.dp) + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow), + ) + // Verified badge + Box( + modifier = Modifier + .size(22.dp) + .align(Alignment.BottomEnd) + .offset(x = 4.dp, y = 4.dp) + .background(AccentPurple, CircleShape) + .clip(CircleShape), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Filled.Verified, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size(14.dp), + ) + } + } + + // Name, email, chip + settings button + Row( + modifier = Modifier.weight(1f), + verticalAlignment = Alignment.CenterVertically, + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = user.name, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 21.sp, + color = OnSurface, + ) + Text( + text = user.email, + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + + // Settings shortcut + Box( + modifier = Modifier + .size(36.dp) + .clip(RoundedCornerShape(8.dp)) + .background(SurfaceContainerLow) + .clickable(onClick = onEditProfile), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Settings, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(20.dp), + ) + } + } + } + } + + // ── My Orders ───────────────────────────────────────────────────── + InaCard { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = stringResource(R.string.profile_my_orders), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 17.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.profile_view_all), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.SemiBold, + color = BrandRed, + ) + } + + Spacer(modifier = Modifier.height(20.dp)) + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceAround, + ) { + OrderTab(icon = Icons.Outlined.AccountBalanceWallet, label = stringResource(R.string.profile_to_pay)) + OrderTab(icon = Icons.Outlined.LocalShipping, label = stringResource(R.string.profile_to_ship), badge = orderCounts.toShip) + OrderTab(icon = Icons.Outlined.Inventory2, label = stringResource(R.string.profile_to_receive)) + OrderTab(icon = Icons.Outlined.Grade, label = stringResource(R.string.profile_review)) + } + } + + // ── Settings & Info ─────────────────────────────────────────────── + Text( + text = stringResource(R.string.profile_settings_section), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + color = OnSurfaceVariant.copy(alpha = 0.7f), + letterSpacing = 2.sp, + ) + + // Bento Grid: Edit Profile + Shipping Addresses + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + BentoCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Edit, + iconTint = AccentBlue, + label = stringResource(R.string.profile_edit_profile), + onClick = onEditProfile, + ) + BentoCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.LocationOn, + iconTint = AccentPurple, + label = stringResource(R.string.profile_shipping_addresses), + onClick = onShippingAddresses, + ) + } + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + BentoCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Lock, + iconTint = BrandRed, + label = stringResource(R.string.profile_change_password), + onClick = onChangePassword, + ) + Spacer(modifier = Modifier.weight(1f)) + } + + // List Settings + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest), + ) { + SettingsListItem(icon = Icons.Outlined.Favorite, label = stringResource(R.string.profile_my_favorites), onClick = onFavoritesClick) + SettingsListItem(icon = Icons.Outlined.Payments, label = stringResource(R.string.profile_payment_methods), onClick = onPaymentMethods) + SettingsListItem(icon = Icons.Outlined.Info, label = stringResource(R.string.settings_about), onClick = onAboutClick) + SettingsListItem(icon = Icons.Outlined.Description, label = stringResource(R.string.settings_terms), onClick = onTermsClick) + SettingsListItem(icon = Icons.Outlined.Shield, label = stringResource(R.string.settings_privacy_policy), onClick = onPrivacyPolicyClick) + SettingsListItem(icon = Icons.Outlined.HelpCenter, label = stringResource(R.string.settings_help_center), onClick = onHelpCenterClick, showDivider = false) + } + + // ── Logout ──────────────────────────────────────────────────────── + Box( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(BrandRed.copy(alpha = 0.06f)) + .clickable(onClick = onLogout) + .padding(vertical = 16.dp), + contentAlignment = Alignment.Center, + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon(Icons.Outlined.Logout, contentDescription = null, tint = BrandRed, modifier = Modifier.size(20.dp)) + Text( + text = stringResource(R.string.profile_logout), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + color = BrandRed, + ) + } + } + + // ── Footer ──────────────────────────────────────────────────────── + Column( + modifier = Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Text( + text = stringResource(R.string.app_version).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 2.sp, + ) + Text( + text = stringResource(R.string.app_tagline), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant.copy(alpha = 0.4f), + ) + } + } +} + +// ─── Guest ──────────────────────────────────────────────────────────────────── + +@Composable +private fun ProfileGuestContent( + onLoginClick: () -> Unit, + onHelpCenterClick: () -> Unit, + onTermsClick: () -> Unit, + onPrivacyPolicyClick: () -> Unit, + onAboutClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxSize() + .background(Background) + .verticalScroll(rememberScrollState()) + .padding(horizontal = 24.dp) + .padding(bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + // ── Hero Section ────────────────────────────────────────────────── + Box(modifier = Modifier.fillMaxWidth()) { + // Identity Accent + Box( + modifier = Modifier + .fillMaxWidth() + .offset(x = (-24).dp) + .width(500.dp) + .height(280.dp) + .rotate(-2f) + .background(SurfaceContainerHighest.copy(alpha = 0.35f)) + ) + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(top = 40.dp, bottom = 24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = stringResource(R.string.profile_guest_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + color = OnSurface, + textAlign = TextAlign.Center, + ) + Text( + text = stringResource(R.string.profile_guest_desc), + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + Spacer(modifier = Modifier.height(8.dp)) + InaPrimaryButton( + text = stringResource(R.string.profile_guest_cta), + onClick = onLoginClick, + ) + } + } + + // ── Benefits ────────────────────────────────────────────────────── + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Bottom, + ) { + Text( + text = stringResource(R.string.profile_why_join), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.profile_benefits_label).uppercase(), + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 2.sp, + ) + } + + // Benefit cards + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + BenefitCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.LocalShipping, + iconBg = BrandRed.copy(alpha = 0.10f), + iconTint = BrandRed, + title = stringResource(R.string.profile_benefit_track_title), + desc = stringResource(R.string.profile_benefit_track_desc), + ) + BenefitCard( + modifier = Modifier.weight(1f), + icon = Icons.Outlined.Favorite, + iconBg = AccentBlue.copy(alpha = 0.10f), + iconTint = AccentBlue, + title = stringResource(R.string.profile_benefit_save_title), + desc = stringResource(R.string.profile_benefit_save_desc), + ) + } + + // Wide benefit card + Row( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(AccentPurpleContainer.copy(alpha = 0.15f)) + .padding(20.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(20.dp), + ) { + Box( + modifier = Modifier + .size(56.dp) + .clip(CircleShape) + .background(AccentPurple.copy(alpha = 0.15f)), + contentAlignment = Alignment.Center, + ) { + Icon(Icons.Outlined.VerifiedUser, contentDescription = null, tint = AccentPurple, modifier = Modifier.size(28.dp)) + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = stringResource(R.string.profile_benefit_secure_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 16.sp, + color = OnSurface, + ) + Text( + text = stringResource(R.string.profile_benefit_secure_desc), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + ) + } + } + + // ── Info Links ──────────────────────────────────────────────────── + Text( + text = stringResource(R.string.profile_info_section).uppercase(), + style = MaterialTheme.typography.labelMedium, + fontWeight = FontWeight.Bold, + color = OnSurfaceVariant.copy(alpha = 0.5f), + letterSpacing = 2.sp, + ) + + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest), + ) { + SettingsListItem(icon = Icons.Outlined.Info, label = stringResource(R.string.settings_about), onClick = onAboutClick) + SettingsListItem(icon = Icons.Outlined.HelpCenter, label = stringResource(R.string.settings_help_center), onClick = onHelpCenterClick) + SettingsListItem(icon = Icons.Outlined.PrivacyTip, label = stringResource(R.string.settings_privacy_policy), onClick = onPrivacyPolicyClick) + SettingsListItem(icon = Icons.Outlined.Description, label = stringResource(R.string.settings_terms), onClick = onTermsClick, showDivider = false) + } + + // ── Footer ──────────────────────────────────────────────────────── + Text( + text = "${stringResource(R.string.app_version)} • ${stringResource(R.string.app_tagline)}", + style = MaterialTheme.typography.labelSmall, + color = OnSurfaceVariant.copy(alpha = 0.4f), + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + letterSpacing = 1.5.sp, + ) + } +} + +// ─── Shared sub-composables ─────────────────────────────────────────────────── + +@Composable +private fun OrderTab( + icon: ImageVector, + label: String, + badge: Int = 0, +) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp), + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(bounded = false, radius = 32.dp), + onClick = {}, + ), + ) { + Box { + Box( + modifier = Modifier + .size(48.dp) + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLow), + contentAlignment = Alignment.Center, + ) { + Icon(icon, contentDescription = label, tint = OnSurfaceVariant, modifier = Modifier.size(22.dp)) + } + if (badge > 0) { + Box( + modifier = Modifier + .size(16.dp) + .align(Alignment.TopEnd) + .offset(x = 4.dp, y = (-4).dp) + .background(BrandRed, CircleShape), + contentAlignment = Alignment.Center, + ) { + Text(badge.toString(), style = MaterialTheme.typography.labelSmall.copy(fontSize = 9.sp), color = Color.White) + } + } + } + Text( + text = label.uppercase(), + style = MaterialTheme.typography.labelSmall.copy(fontSize = 9.sp), + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + letterSpacing = 0.5.sp, + ) + } +} + +@Composable +private fun BentoCard( + icon: ImageVector, + iconTint: Color, + label: String, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .height(128.dp) + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .clickable(onClick = onClick) + .padding(20.dp), + verticalArrangement = Arrangement.SpaceBetween, + ) { + Icon(icon, contentDescription = null, tint = iconTint, modifier = Modifier.size(24.dp)) + Text( + text = label, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 13.sp, + color = OnSurface, + ) + } +} + +@Composable +private fun BenefitCard( + icon: ImageVector, + iconBg: Color, + iconTint: Color, + title: String, + desc: String, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .clip(RoundedCornerShape(12.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .size(44.dp) + .clip(RoundedCornerShape(12.dp)) + .background(iconBg), + contentAlignment = Alignment.Center, + ) { + Icon(icon, contentDescription = null, tint = iconTint, modifier = Modifier.size(22.dp)) + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text(title, fontFamily = ManropeFontFamily, fontWeight = FontWeight.Bold, fontSize = 14.sp, color = OnSurface) + Text(desc, style = MaterialTheme.typography.bodySmall, color = OnSurfaceVariant) + } + } +} + +@Composable +private fun SettingsListItem( + icon: ImageVector, + label: String, + onClick: () -> Unit = {}, + showDivider: Boolean = true, +) { + Column { + Row( + modifier = Modifier + .fillMaxWidth() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(color = OnSurface.copy(alpha = 0.06f)), + onClick = onClick, + ) + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + Icon(icon, contentDescription = null, tint = OnSurfaceVariant.copy(alpha = 0.6f), modifier = Modifier.size(22.dp)) + Text(label, style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.SemiBold, color = OnSurface, modifier = Modifier.weight(1f)) + Icon( + Icons.Outlined.ChevronRight, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.25f), + modifier = Modifier.size(18.dp), + ) + } + if (showDivider) { + Box(modifier = Modifier.fillMaxWidth().height(4.dp).background(SurfaceContainerLow)) + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileViewModel.kt new file mode 100644 index 0000000..54bf93f --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ProfileViewModel.kt @@ -0,0 +1,90 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.core.data.local.SessionManager +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.launch +import javax.inject.Inject + +data class UserProfile( + val name: String, + val email: String, + val avatarUrl: String, + val isPremium: Boolean, +) + +data class OrderCounts( + val toShip: Int = 0, +) + +data class ProfileUiState( + val isLoggedIn: Boolean = false, + val user: UserProfile? = null, + val orderCounts: OrderCounts = OrderCounts(), +) + +@HiltViewModel +class ProfileViewModel @Inject constructor( + private val sessionManager: SessionManager, + private val authRepository: AuthRepository, +) : ViewModel() { + + val uiState: StateFlow = combine( + sessionManager.token, + sessionManager.email, + sessionManager.name, + sessionManager.avatarUrl, + sessionManager.userType, + ) { token, email, name, avatarUrl, userType -> + if (token.isNullOrEmpty()) { + ProfileUiState(isLoggedIn = false) + } else { + ProfileUiState( + isLoggedIn = true, + user = UserProfile( + name = name.orEmpty().ifEmpty { email.orEmpty() }, + email = email.orEmpty(), + avatarUrl = avatarUrl.orEmpty(), + isPremium = userType.equals("SELLER", ignoreCase = true), + ), + orderCounts = OrderCounts(), + ) + } + }.stateIn( + scope = viewModelScope, + started = SharingStarted.WhileSubscribed(5_000), + initialValue = ProfileUiState(), + ) + + init { + sessionManager.token + .distinctUntilChanged() + .onEach { token -> + if (!token.isNullOrBlank()) { + refreshProfile() + } + } + .launchIn(viewModelScope) + } + + private fun refreshProfile() { + viewModelScope.launch { + authRepository.getBuyerProfile() + } + } + + fun logout() { + viewModelScope.launch { + authRepository.logout() + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesScreen.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesScreen.kt new file mode 100644 index 0000000..c5582b2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesScreen.kt @@ -0,0 +1,486 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.BusinessCenter +import androidx.compose.material.icons.outlined.Edit +import androidx.compose.material.icons.outlined.Explore +import androidx.compose.material.icons.outlined.Home +import androidx.compose.material.icons.outlined.LocationOn +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.Phone +import androidx.compose.material.icons.outlined.Refresh +import androidx.compose.material.icons.outlined.Warehouse +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaInnerTopAppBar +import id.iiyh.inatrading.core.ui.components.InaPrimaryButton +import id.iiyh.inatrading.core.ui.theme.AccentBlue +import id.iiyh.inatrading.core.ui.theme.AccentBlueContainer +import id.iiyh.inatrading.core.ui.theme.AccentPurple +import id.iiyh.inatrading.core.ui.theme.AccentPurpleContainer +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.BrandRedContainer +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerHighest +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLow +import id.iiyh.inatrading.core.ui.theme.SurfaceContainerLowest +import id.iiyh.inatrading.feature.profile.data.model.ShippingAddress + +@Composable +fun ShippingAddressesScreen( + onBack: () -> Unit, + onAddAddressClick: () -> Unit, + onEditAddressClick: (ShippingAddress) -> Unit, + viewModel: ShippingAddressesViewModel = hiltViewModel(), +) { + val uiState by viewModel.uiState.collectAsState() + val snackbarHostState = remember { SnackbarHostState() } + + LaunchedEffect(uiState.infoMessage) { + uiState.infoMessage?.let { + snackbarHostState.showSnackbar(it) + viewModel.consumeInfoMessage() + } + } + + Scaffold( + topBar = { InaInnerTopAppBar(onBack = onBack) }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + containerColor = Background, + ) { innerPadding -> + when { + uiState.isLoading -> { + Box( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = BrandRed) + } + } + + uiState.errorMessage != null -> { + AddressState( + title = stringResource(R.string.shipping_addresses_error_title), + body = uiState.errorMessage.orEmpty(), + actionLabel = stringResource(R.string.explore_retry), + onAction = viewModel::loadAddresses, + modifier = Modifier.padding(innerPadding), + ) + } + + uiState.addresses.isEmpty() -> { + AddressState( + title = stringResource(R.string.shipping_addresses_empty_title), + body = stringResource(R.string.shipping_addresses_empty_body), + actionLabel = stringResource(R.string.shipping_addresses_add_cta), + onAction = onAddAddressClick, + modifier = Modifier.padding(innerPadding), + ) + } + + else -> { + ShippingAddressesContent( + addresses = uiState.addresses, + onAddAddressClick = onAddAddressClick, + onEditAddressClick = onEditAddressClick, + modifier = Modifier.padding(innerPadding), + ) + } + } + } +} + +@Composable +private fun ShippingAddressesContent( + addresses: List, + onAddAddressClick: () -> Unit, + onEditAddressClick: (ShippingAddress) -> Unit, + modifier: Modifier = Modifier, +) { + LazyColumn( + modifier = modifier + .fillMaxSize() + .background(Background), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 32.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + item { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(32.dp)) + .background(SurfaceContainerHighest.copy(alpha = 0.35f)) + .padding(horizontal = 24.dp, vertical = 28.dp), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text( + text = stringResource(R.string.shipping_addresses_eyebrow), + style = MaterialTheme.typography.labelSmall, + letterSpacing = 2.sp, + color = AccentPurple, + ) + Text( + text = stringResource(R.string.shipping_addresses_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 34.sp, + lineHeight = 38.sp, + color = OnSurface, + ) + } + } + + itemsIndexed(addresses, key = { _, item -> item.id.orEmpty() }) { index, address -> + ShippingAddressCard( + address = address, + title = resolveAddressLabel(address, index), + icon = if (index == 0 || address.isPrimary) Icons.Outlined.Home else Icons.Outlined.BusinessCenter, + accent = if (address.isPrimary) BrandRed else AccentBlue, + accentContainer = if (address.isPrimary) BrandRedContainer.copy(alpha = 0.14f) else AccentBlueContainer.copy(alpha = 0.22f), + onEditClick = { onEditAddressClick(address) }, + ) + } + + item { + DeliveryZoneCard() + } + + item { + InaPrimaryButton( + text = stringResource(R.string.shipping_addresses_add_cta), + onClick = onAddAddressClick, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} + +@Composable +private fun ShippingAddressCard( + address: ShippingAddress, + title: String, + icon: ImageVector, + accent: Color, + accentContainer: Color, + onEditClick: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Box( + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(12.dp)) + .background(accentContainer), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = accent, + ) + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.Bold, + fontSize = 19.sp, + color = OnSurface, + ) + if (address.isPrimary) { + Box( + modifier = Modifier + .clip(CircleShape) + .background(AccentPurpleContainer) + .padding(horizontal = 10.dp, vertical = 4.dp), + ) { + Text( + text = stringResource(R.string.shipping_addresses_primary), + style = MaterialTheme.typography.labelSmall, + color = Color.White, + ) + } + } + } + } + + Box( + modifier = Modifier + .size(32.dp) + .clip(CircleShape) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onEditClick, + ), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Edit, + contentDescription = null, + tint = OnSurfaceVariant.copy(alpha = 0.75f), + modifier = Modifier.size(20.dp), + ) + } + } + + AddressMetaRow( + icon = Icons.Outlined.Person, + primaryText = address.recipient?.takeIf { it.isNotBlank() } + ?: stringResource(R.string.shipping_addresses_recipient_fallback), + ) + AddressMetaRow( + icon = Icons.Outlined.Phone, + primaryText = address.mobile?.takeIf { it.isNotBlank() } + ?: stringResource(R.string.shipping_addresses_phone_fallback), + ) + AddressMetaRow( + icon = Icons.Outlined.LocationOn, + primaryText = buildAddressLine(address), + isMultiLine = true, + ) + } +} + +@Composable +private fun AddressMetaRow( + icon: ImageVector, + primaryText: String, + isMultiLine: Boolean = false, +) { + Row( + horizontalArrangement = Arrangement.spacedBy(10.dp), + verticalAlignment = if (isMultiLine) Alignment.Top else Alignment.CenterVertically, + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier + .padding(top = if (isMultiLine) 2.dp else 0.dp) + .size(18.dp), + ) + Text( + text = primaryText, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + maxLines = if (isMultiLine) Int.MAX_VALUE else 1, + overflow = if (isMultiLine) TextOverflow.Clip else TextOverflow.Ellipsis, + ) + } +} + +@Composable +private fun DeliveryZoneCard() { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(24.dp)) + .background(SurfaceContainerLowest) + .padding(bottom = 20.dp), + ) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(132.dp) + .background( + brush = Brush.linearGradient( + colors = listOf( + SurfaceContainerHighest, + SurfaceContainerLow, + SurfaceContainerLowest, + ) + ) + ), + ) { + Box( + modifier = Modifier + .align(Alignment.Center) + .size(56.dp) + .clip(CircleShape) + .background(Color.White.copy(alpha = 0.88f)), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.Explore, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(28.dp), + ) + } + Row( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(start = 20.dp, bottom = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(6.dp), + ) { + Icon( + imageVector = Icons.Outlined.Warehouse, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(16.dp), + ) + Text( + text = stringResource(R.string.shipping_addresses_zone_label), + style = MaterialTheme.typography.labelSmall, + letterSpacing = 1.4.sp, + color = OnSurfaceVariant, + ) + } + } + + Text( + text = stringResource(R.string.shipping_addresses_zone_quote), + style = MaterialTheme.typography.bodySmall, + color = OnSurfaceVariant, + modifier = Modifier.padding(horizontal = 20.dp, vertical = 16.dp), + ) + } +} + +@Composable +private fun AddressState( + title: String, + body: String, + actionLabel: String, + onAction: () -> Unit, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxSize() + .background(Background) + .padding(24.dp), + contentAlignment = Alignment.Center, + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(28.dp)) + .background(SurfaceContainerLowest) + .padding(24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp), + ) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 26.sp, + color = OnSurface, + ) + Text( + text = body, + style = MaterialTheme.typography.bodyMedium, + color = OnSurfaceVariant, + ) + Row( + modifier = Modifier + .clip(RoundedCornerShape(18.dp)) + .background(BrandRed) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onAction, + ) + .padding(horizontal = 18.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = Icons.Outlined.Refresh, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size(18.dp), + ) + Text( + text = actionLabel, + color = Color.White, + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun resolveAddressLabel(address: ShippingAddress, index: Int): String { + val label = address.label?.trim().orEmpty() + if (label.isNotBlank()) return label.replaceFirstChar { it.uppercase() } + if (address.isPrimary) return stringResource(R.string.shipping_addresses_home_label) + if (index == 1) return stringResource(R.string.shipping_addresses_office_label) + return stringResource(R.string.shipping_addresses_default_label, index + 1) +} + +private fun buildAddressLine(address: ShippingAddress): String { + return listOfNotNull( + address.address?.takeIf { it.isNotBlank() }, + address.city?.takeIf { it.isNotBlank() }, + address.province?.takeIf { it.isNotBlank() }, + address.country?.takeIf { it.isNotBlank() }, + address.postalCode?.takeIf { it.isNotBlank() }, + ).joinToString(", ") +} diff --git a/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesViewModel.kt b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesViewModel.kt new file mode 100644 index 0000000..c3ed4b2 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/feature/profile/presentation/ShippingAddressesViewModel.kt @@ -0,0 +1,73 @@ +package id.iiyh.inatrading.feature.profile.presentation + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import id.iiyh.inatrading.feature.auth.domain.repository.AuthRepository +import id.iiyh.inatrading.feature.profile.data.model.ShippingAddress +import javax.inject.Inject +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +data class ShippingAddressesUiState( + val isLoading: Boolean = false, + val addresses: List = emptyList(), + val errorMessage: String? = null, + val infoMessage: String? = null, +) + +@HiltViewModel +class ShippingAddressesViewModel @Inject constructor( + private val authRepository: AuthRepository, +) : ViewModel() { + + private val _uiState = MutableStateFlow(ShippingAddressesUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + loadAddresses() + } + + fun loadAddresses() { + viewModelScope.launch { + _uiState.update { + it.copy( + isLoading = true, + errorMessage = null, + ) + } + + authRepository.getAddresses() + .onSuccess { addresses -> + _uiState.update { + it.copy( + isLoading = false, + addresses = addresses, + errorMessage = null, + ) + } + } + .onFailure { error -> + _uiState.update { + it.copy( + isLoading = false, + errorMessage = error.message ?: "Gagal memuat alamat pengiriman", + ) + } + } + } + } + + fun onAddAddressClick() { + _uiState.update { + it.copy(infoMessage = "Fitur tambah alamat akan segera tersedia.") + } + } + + fun consumeInfoMessage() { + _uiState.update { it.copy(infoMessage = null) } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/navigation/AppNavigation.kt b/app/src/main/java/id/iiyh/inatrading/navigation/AppNavigation.kt new file mode 100644 index 0000000..637130b --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/navigation/AppNavigation.kt @@ -0,0 +1,589 @@ +package id.iiyh.inatrading.navigation + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Cancel +import androidx.compose.material.icons.outlined.WifiTethering +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.ripple +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.Alignment +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavGraph.Companion.findStartDestination +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.currentBackStackEntryAsState +import androidx.navigation.compose.rememberNavController +import id.iiyh.inatrading.MainActivity +import id.iiyh.inatrading.R +import id.iiyh.inatrading.core.ui.components.InaBottomNavBar +import id.iiyh.inatrading.core.ui.components.InaTopAppBar +import id.iiyh.inatrading.core.ui.theme.Background +import id.iiyh.inatrading.core.ui.theme.BrandRed +import id.iiyh.inatrading.core.ui.theme.ManropeFontFamily +import id.iiyh.inatrading.core.ui.theme.OnSurface +import id.iiyh.inatrading.core.ui.theme.OnSurfaceVariant +import id.iiyh.inatrading.feature.auth.presentation.ForgotPasswordScreen +import id.iiyh.inatrading.feature.auth.presentation.LoginScreen +import id.iiyh.inatrading.feature.auth.presentation.RegisterScreen +import id.iiyh.inatrading.feature.auth.presentation.RegisterSuccessScreen +import androidx.hilt.navigation.compose.hiltViewModel +import id.iiyh.inatrading.feature.cart.presentation.CartScreen +import id.iiyh.inatrading.feature.cart.presentation.CartViewModel +import id.iiyh.inatrading.feature.info.presentation.AboutScreen +import id.iiyh.inatrading.feature.info.presentation.HelpCenterScreen +import id.iiyh.inatrading.feature.info.presentation.PrivacyPolicyScreen +import id.iiyh.inatrading.feature.info.presentation.TermsConditionsScreen +import id.iiyh.inatrading.feature.explore.presentation.ExploreDetailScreen +import id.iiyh.inatrading.feature.explore.presentation.ExploreNavViewModel +import id.iiyh.inatrading.feature.explore.presentation.ExploreScreen +import id.iiyh.inatrading.feature.home.presentation.HomeScreen +import id.iiyh.inatrading.feature.news.presentation.NewsDetailScreen +import id.iiyh.inatrading.feature.news.presentation.NewsListScreen +import id.iiyh.inatrading.feature.news.presentation.NewsNavViewModel +import id.iiyh.inatrading.feature.product.presentation.ProductDetailScreen +import id.iiyh.inatrading.feature.product.presentation.ProductNavViewModel +import id.iiyh.inatrading.feature.product.presentation.ProductsScreen +import id.iiyh.inatrading.feature.profile.presentation.EditProfileScreen +import id.iiyh.inatrading.feature.profile.presentation.FavoriteGroupDetailScreen +import id.iiyh.inatrading.feature.profile.presentation.FavoritesScreen +import id.iiyh.inatrading.feature.profile.presentation.AddShippingAddressScreen +import id.iiyh.inatrading.feature.profile.presentation.ChangePasswordScreen +import id.iiyh.inatrading.feature.profile.presentation.EditShippingAddressScreen +import id.iiyh.inatrading.feature.profile.presentation.ProfileScreen +import id.iiyh.inatrading.feature.profile.presentation.ShippingAddressesViewModel +import id.iiyh.inatrading.feature.profile.presentation.ShippingAddressesScreen + +@Composable +fun AppNavigation( + navController: NavHostController = rememberNavController(), + cartViewModel: CartViewModel = hiltViewModel(), + newsNavViewModel: NewsNavViewModel = hiltViewModel(), + exploreNavViewModel: ExploreNavViewModel = hiltViewModel(), + productNavViewModel: ProductNavViewModel = hiltViewModel(), +) { + val cartUiState by cartViewModel.uiState.collectAsState() + val backStackEntry by navController.currentBackStackEntryAsState() + val currentRoute = backStackEntry?.destination?.route + val isMainScreen = currentRoute in mainRoutes + val context = LocalContext.current + val activity = context as? MainActivity + val snackbarHostState = remember { SnackbarHostState() } + var isRfidDialogVisible by rememberSaveable { mutableStateOf(false) } + + Scaffold( + topBar = { + if (isMainScreen) { + InaTopAppBar( + cartItemCount = cartUiState.itemCount, + onMenuClick = { /* TODO: open drawer */ }, + onRfidClick = { isRfidDialogVisible = true }, + onCartClick = { navController.navigate(Screen.Cart.route) }, + onNotifClick = { /* TODO: navigate to notifications */ }, + ) + } + }, + snackbarHost = { SnackbarHost(snackbarHostState) }, + bottomBar = { + if (isMainScreen) { + InaBottomNavBar( + currentRoute = currentRoute, + onTabSelected = { screen -> + navController.navigate(screen.route) { + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } + launchSingleTop = true + restoreState = true + } + }, + ) + } + }, + ) { innerPadding -> + NavHost( + navController = navController, + startDestination = Screen.Home.route, + modifier = Modifier.padding(innerPadding), + ) { + // ── Main tabs ───────────────────────────────────────────────── + composable(Screen.Home.route) { + HomeScreen( + onNewsClick = { article -> + newsNavViewModel.select(article) + navController.navigate(Screen.NewsDetail.createRoute(article.id)) + }, + onViewAllNews = { navController.navigate(Screen.NewsList.route) }, + ) + } + composable(Screen.Explore.route) { + ExploreScreen( + onLocationClick = { location -> + exploreNavViewModel.select(location) + navController.navigate(Screen.ExploreDetail.createRoute(location.id)) + }, + ) + } + composable(Screen.Products.route) { + ProductsScreen( + onProductClick = { product -> + productNavViewModel.select(product) + navController.navigate(Screen.ProductDetail.createRoute(product.id)) + }, + onLoginRequired = { navController.navigate(Screen.Login.route) }, + onSessionExpired = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.Products.route) { inclusive = false } + launchSingleTop = true + } + }, + ) + } + composable(Screen.Profile.route) { + ProfileScreen( + onLoginClick = { navController.navigate(Screen.Login.route) }, + onEditProfile = { navController.navigate(Screen.EditProfile.route) }, + onChangePassword = { navController.navigate(Screen.ChangePassword.route) }, + onShippingAddresses = { navController.navigate(Screen.ShippingAddresses.route) }, + onFavoritesClick = { navController.navigate(Screen.Favorites.route) }, + onPaymentMethods = { navController.navigate(Screen.PaymentMethods.route) }, + onHelpCenterClick = { navController.navigate(Screen.HelpCenter.route) }, + onTermsClick = { navController.navigate(Screen.TermsConditions.route) }, + onPrivacyPolicyClick = { navController.navigate(Screen.PrivacyPolicy.route) }, + onAboutClick = { navController.navigate(Screen.About.route) }, + ) + } + + // ── Auth ────────────────────────────────────────────────────── + composable(Screen.Login.route) { + LoginScreen( + onBack = { navController.popBackStack() }, + onLoginSuccess = { + navController.navigate(Screen.Profile.route) { + popUpTo(Screen.Login.route) { inclusive = true } + } + }, + onForgotPassword = { navController.navigate(Screen.ForgotPassword.route) }, + onRegister = { navController.navigate(Screen.Register.route) }, + ) + } + composable(Screen.ForgotPassword.route) { + ForgotPasswordScreen(onBack = { navController.popBackStack() }) + } + composable(Screen.Register.route) { + RegisterScreen( + onBack = { navController.popBackStack() }, + onRegisterSuccess = { + navController.navigate(Screen.RegisterSuccess.route) { + popUpTo(Screen.Register.route) { inclusive = true } + } + }, + onLoginClick = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.Register.route) { inclusive = true } + } + }, + ) + } + composable(Screen.RegisterSuccess.route) { + RegisterSuccessScreen( + onLoginClick = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.RegisterSuccess.route) { inclusive = true } + } + }, + ) + } + + // ── Inner screens ───────────────────────────────────────────── + composable(Screen.About.route) { + AboutScreen(onBack = { navController.popBackStack() }) + } + composable(Screen.HelpCenter.route) { + HelpCenterScreen(onBack = { navController.popBackStack() }) + } + composable(Screen.TermsConditions.route) { + TermsConditionsScreen(onBack = { navController.popBackStack() }) + } + composable(Screen.PrivacyPolicy.route) { + PrivacyPolicyScreen( + onBack = { navController.popBackStack() }, + onFullTermsClick = { navController.navigate(Screen.TermsConditions.route) }, + ) + } + composable(Screen.NewsDetail.route) { + val article = newsNavViewModel.selectedArticle.collectAsState().value + if (article != null) { + NewsDetailScreen( + article = article, + onBack = { navController.popBackStack() }, + ) + } + } + composable(Screen.NewsList.route) { + NewsListScreen( + onBack = { navController.popBackStack() }, + onArticleClick = { article -> + newsNavViewModel.select(article) + navController.navigate(Screen.NewsDetail.createRoute(article.id)) + }, + ) + } + composable(Screen.ExploreDetail.route) { + val location = exploreNavViewModel.selectedLocation.collectAsState().value + if (location != null) { + ExploreDetailScreen( + location = location, + onBack = { navController.popBackStack() }, + ) + } else { + PlaceholderDetailFallback( + title = stringResource(R.string.explore_error_title), + body = stringResource(R.string.explore_detail_missing_body), + onBack = { navController.popBackStack() }, + ) + } + } + composable(Screen.ProductDetail.route) { + ProductDetailScreen( + onBack = { navController.popBackStack() }, + cartItemCount = cartUiState.itemCount, + onCartClick = { navController.navigate(Screen.Cart.route) }, + onLoginRequired = { navController.navigate(Screen.Login.route) }, + onCartAdded = { cartViewModel.onItemAdded() }, + onSessionExpired = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.ProductDetail.route) { inclusive = false } + launchSingleTop = true + } + }, + ) + } + composable(Screen.Cart.route) { + CartScreen( + onBack = { navController.popBackStack() }, + onLoginRequired = { navController.navigate(Screen.Login.route) }, + viewModel = cartViewModel, + ) + } + composable(Screen.Favorites.route) { + FavoritesScreen( + onBack = { navController.popBackStack() }, + onBrowseProducts = { + navController.navigate(Screen.Products.route) { + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } + launchSingleTop = true + restoreState = true + } + }, + onGroupClick = { group -> + navController.navigate( + Screen.FavoriteGroupDetail.createRoute(group.id, group.name) + ) + }, + onSessionExpired = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.Favorites.route) { inclusive = true } + launchSingleTop = true + } + }, + ) + } + composable(Screen.FavoriteGroupDetail.route) { + FavoriteGroupDetailScreen( + onBack = { navController.popBackStack() }, + onProductClick = { productId -> + navController.navigate(Screen.ProductDetail.createRoute(productId)) + }, + onSessionExpired = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.FavoriteGroupDetail.route) { inclusive = true } + launchSingleTop = true + } + }, + ) + } + composable(Screen.EditProfile.route) { + EditProfileScreen(onBack = { navController.popBackStack() }) + } + composable(Screen.ChangePassword.route) { + ChangePasswordScreen( + onBack = { navController.popBackStack() }, + onLoggedOut = { + navController.navigate(Screen.Login.route) { + popUpTo(Screen.Profile.route) { inclusive = false } + launchSingleTop = true + } + }, + ) + } + composable(Screen.ShippingAddresses.route) { backStackEntry -> + val refreshAddresses by backStackEntry.savedStateHandle + .getStateFlow("refresh_addresses", false) + .collectAsState() + val viewModel: ShippingAddressesViewModel = hiltViewModel() + + LaunchedEffect(refreshAddresses) { + if (refreshAddresses) { + viewModel.loadAddresses() + backStackEntry.savedStateHandle["refresh_addresses"] = false + } + } + + ShippingAddressesScreen( + onBack = { navController.popBackStack() }, + onAddAddressClick = { navController.navigate(Screen.AddShippingAddress.route) }, + onEditAddressClick = { address -> + address.id?.let { + navController.navigate(Screen.EditShippingAddress.createRoute(it)) + } + }, + viewModel = viewModel, + ) + } + composable(Screen.AddShippingAddress.route) { + AddShippingAddressScreen( + onBack = { navController.popBackStack() }, + onSaveSuccess = { + navController.previousBackStackEntry + ?.savedStateHandle + ?.set("refresh_addresses", true) + navController.popBackStack() + }, + ) + } + composable(Screen.EditShippingAddress.route) { + EditShippingAddressScreen( + onBack = { navController.popBackStack() }, + onFinished = { + navController.previousBackStackEntry + ?.savedStateHandle + ?.set("refresh_addresses", true) + navController.popBackStack() + }, + ) + } + composable(Screen.PaymentMethods.route) { /* TODO */ } + } + } + + var snackbarMessage by remember { mutableStateOf(null) } + + LaunchedEffect(snackbarMessage) { + snackbarMessage?.let { + snackbarHostState.showSnackbar(it) + snackbarMessage = null + } + } + + LaunchedEffect(isRfidDialogVisible, activity) { + if (!isRfidDialogVisible) return@LaunchedEffect + val scanActivity = activity ?: run { + snackbarMessage = context.getString(R.string.rfid_not_supported) + isRfidDialogVisible = false + return@LaunchedEffect + } + + val started = scanActivity.startRfidScan( + onValueDetected = { value -> + isRfidDialogVisible = false + navController.navigate(Screen.ProductDetail.createRoute(value)) + }, + onError = { message -> + snackbarMessage = message + }, + ) + + if (!started) { + snackbarMessage = context.getString(R.string.rfid_not_supported) + isRfidDialogVisible = false + } + } + + if (isRfidDialogVisible) { + RfidScanDialog( + onDismiss = { + isRfidDialogVisible = false + activity?.stopRfidScan() + }, + ) + } +} + +@Composable +private fun PlaceholderDetailFallback( + title: String, + body: String, + onBack: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Background) + .padding(24.dp), + contentAlignment = Alignment.Center, + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = title, + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = OnSurface, + textAlign = TextAlign.Center, + ) + Text( + text = body, + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + ) + Row( + modifier = Modifier + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onBack, + ) + .padding(horizontal = 18.dp, vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + Icon( + imageVector = Icons.Outlined.Cancel, + contentDescription = null, + tint = BrandRed, + modifier = Modifier.size(18.dp), + ) + Text( + text = stringResource(R.string.favorite_back), + color = BrandRed, + fontWeight = FontWeight.Bold, + ) + } + } + } +} + +@Composable +private fun RfidScanDialog( + onDismiss: () -> Unit, +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Color.Black.copy(alpha = 0.56f)) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = {}, + ), + contentAlignment = Alignment.Center, + ) { + Column( + modifier = Modifier + .padding(horizontal = 32.dp) + .fillMaxWidth() + .background(Background, RoundedCornerShape(28.dp)) + .padding(horizontal = 28.dp, vertical = 36.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(18.dp), + ) { + Box( + modifier = Modifier + .size(100.dp) + .background(BrandRed.copy(alpha = 0.10f), RoundedCornerShape(50.dp)), + contentAlignment = Alignment.Center, + ) { + Box( + modifier = Modifier + .size(48.dp) + .background(BrandRed, RoundedCornerShape(24.dp)), + contentAlignment = Alignment.Center, + ) { + Icon( + imageVector = Icons.Outlined.WifiTethering, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size(24.dp), + ) + } + } + + Text( + text = stringResource(R.string.rfid_waiting_title), + fontFamily = ManropeFontFamily, + fontWeight = FontWeight.ExtraBold, + fontSize = 22.sp, + color = OnSurface, + textAlign = TextAlign.Center, + ) + + Text( + text = stringResource(R.string.rfid_waiting_body), + color = OnSurfaceVariant, + textAlign = TextAlign.Center, + lineHeight = 24.sp, + ) + + Row( + modifier = Modifier + .padding(top = 8.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = ripple(), + onClick = onDismiss, + ) + .padding(horizontal = 18.dp, vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + Icon( + imageVector = Icons.Outlined.Cancel, + contentDescription = null, + tint = OnSurfaceVariant, + modifier = Modifier.size(18.dp), + ) + Text( + text = stringResource(R.string.rfid_cancel), + color = OnSurfaceVariant, + fontWeight = FontWeight.Bold, + ) + } + } + } +} diff --git a/app/src/main/java/id/iiyh/inatrading/navigation/Screen.kt b/app/src/main/java/id/iiyh/inatrading/navigation/Screen.kt new file mode 100644 index 0000000..f360d92 --- /dev/null +++ b/app/src/main/java/id/iiyh/inatrading/navigation/Screen.kt @@ -0,0 +1,100 @@ +package id.iiyh.inatrading.navigation + +import android.net.Uri +import androidx.annotation.StringRes +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Person +import androidx.compose.material.icons.outlined.Explore +import androidx.compose.material.icons.outlined.Home +import androidx.compose.material.icons.outlined.Inventory2 +import androidx.compose.material.icons.outlined.Person +import androidx.compose.ui.graphics.vector.ImageVector +import id.iiyh.inatrading.R + +sealed class Screen(val route: String) { + // ── Main tabs (dengan BottomNav) ───────────────────────────────────────── + data object Home : Screen("home") + data object Explore : Screen("explore") + data object Products: Screen("products") + data object Profile : Screen("profile") + + // ── Inner screens (tanpa BottomNav) ───────────────────────────────────── + data object Login : Screen("login") + data object Register : Screen("register") + data object RegisterSuccess : Screen("register_success") + data object ForgotPassword : Screen("forgot_password") + data object NewsList : Screen("news_list") + data object About : Screen("about") + data object HelpCenter : Screen("help_center") + data object TermsConditions : Screen("terms_conditions") + data object PrivacyPolicy : Screen("privacy_policy") + data object Favorites : Screen("favorites") + data object FavoriteGroupDetail: Screen("favorite_group_detail/{groupId}?name={groupName}") { + fun createRoute(groupId: String, groupName: String) = + "favorite_group_detail/$groupId?name=${Uri.encode(groupName)}" + } + data object NewsDetail : Screen("news_detail/{newsId}") { + fun createRoute(newsId: String) = "news_detail/$newsId" + } + data object ExploreDetail : Screen("explore_detail/{locationId}") { + fun createRoute(locationId: String) = "explore_detail/$locationId" + } + data object ProductDetail : Screen("product_detail/{productId}") { + fun createRoute(productId: String) = "product_detail/$productId" + } + data object Cart : Screen("cart") + data object EditProfile : Screen("edit_profile") + data object ChangePassword : Screen("change_password") + data object ShippingAddresses : Screen("shipping_addresses") + data object AddShippingAddress : Screen("shipping_addresses/add") + data object EditShippingAddress : Screen("shipping_addresses/edit/{addressId}") { + fun createRoute(addressId: String) = "shipping_addresses/edit/$addressId" + } + data object PaymentMethods : Screen("payment_methods") + data object OrderDetail : Screen("order_detail/{orderId}") { + fun createRoute(orderId: String) = "order_detail/$orderId" + } +} + +/** Tab-tab yang tampil di BottomNav */ +val bottomNavItems = listOf( + BottomNavItem( + screen = Screen.Home, + labelRes = R.string.nav_home, + icon = Icons.Outlined.Home, + iconSelected = Icons.Outlined.Home, + ), + BottomNavItem( + screen = Screen.Explore, + labelRes = R.string.nav_explore, + icon = Icons.Outlined.Explore, + iconSelected = Icons.Outlined.Explore, + ), + BottomNavItem( + screen = Screen.Products, + labelRes = R.string.nav_products, + icon = Icons.Outlined.Inventory2, + iconSelected = Icons.Outlined.Inventory2, + ), + BottomNavItem( + screen = Screen.Profile, + labelRes = R.string.nav_profile, + icon = Icons.Outlined.Person, + iconSelected = Icons.Filled.Person, + ), +) + +data class BottomNavItem( + val screen: Screen, + @StringRes val labelRes: Int, + val icon: ImageVector, + val iconSelected: ImageVector, +) + +/** Route yang termasuk main screen (tampilkan BottomNav) */ +val mainRoutes = setOf( + Screen.Home.route, + Screen.Explore.route, + Screen.Products.route, + Screen.Profile.route, +) diff --git a/app/src/main/res/drawable/coffee.jpeg b/app/src/main/res/drawable/coffee.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4a717421b8b546583b785e37b0257614e17b00c8 GIT binary patch literal 358603 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 z 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 z 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 %T8npb4v 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 >x#e7SLU~Mi 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/header_new.png b/app/src/main/res/drawable/header_new.png new file mode 100644 index 0000000000000000000000000000000000000000..688de2faf8aae6d048a8c869756ae0865c3943b4 GIT binary patch literal 62180 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ina_logo.png b/app/src/main/res/drawable/ina_logo.png new file mode 100755 index 0000000000000000000000000000000000000000..688de2faf8aae6d048a8c869756ae0865c3943b4 GIT binary patch literal 62180 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%0Dhe^Fhm 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%0AxXd)}6l`Pba?=&GQnI*YXvX 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 z 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

    s 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
    oO?rEk!ks7t90d2OFb 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 jV5%q;K5W7Hnouf0DS$gwWvKtz02w_; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/logistic.jpeg b/app/src/main/res/drawable/logistic.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6df48f3227aba1a10be5ca64fa349f749f6798da GIT binary patch literal 284996 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

    ~YYk_fW4!K|dm5 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∈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

      b?>g2vJ;&t^j(kSyFvyc<89(NNj!Y|+?6(w z`ROhr)r)XbLgWpbhC#1kCtAuW6Tou&Be{)${9e^LQ^74 zlUBB)t1A30rFxE(l09|Ue3$w$u;~vs-R6A7XxsQMQCmxCmk<<-j6q^h z2s;pj!H)A>+c{*c-_hvm5-cG${O z3&wHmPUYRW=y>vO)B7wR!@}B5lrL4j-mRQCyd^a9(C3d)WJBIm-w}CsJp+Ra&)CT%w z9_gy?p8TKlA58fE2aDMBg@)kvI0ci8F^ApRI_UG46bqLckO-2H5;=iA^~SN!B3_l0 zEioLw(iTr%FNIyRe}`PC+}o*_+i)llRE?wpIPW!@Dh@imP12oJJtLq|<;T%go*|Ln z>4ONf>ak2Q#9QVCwvY|oqRy7zSR7n!Pztz|%-1CHUbVHq>3gG$8xzCq?`-ZZu7$<5 z-MU_Bz?&726orD53g2pAx)W7#_tZ3pg)1%ATh11am4%o0CLNHyVKB#yN7 z-O;;OGuJU?h$Ye7v{@}HAJPV_gqx(-fu6NAtHw){*ZI52{{W%<gfLf0>SUD z&;wYe6=I8Pn`LU9NG-sak+>szpM>-;(9T}NQ-tCD80D9m2ncb^M-OWC=eB}Yw?c_0 zpDHW6zp=usFL8`f{-VbZwRZC9(YZq{r&5ovknuI)jOXQ@`vtnpeGcG^U^vB-YJGSe zq^83VX(CpZn>#Y}Ng5$4+z~t1ow^pvR$VT1h>nlm#oxjMwh!I;+AYJ%X>EhqQ)G$U z5Nq6B5cG%r(|Rw;eJ8PpqYir>!_j>0t7`2BQTt285pWAQDx@Er1c4Jt5PI_WiunbgM6jB6zLzO49S_gbfl!9<}!NrU0NbiRo?TghECWs98Gkq#&3R#=MgyOd%!YPWg2gtmtYbe(ZY^-5%aq;e8-^s&L zEUnh_fjfyQKqL=bS9s~k`(By+rfo1@jB)HQ9&Z`IaI02tuN)(Z5D{W1_qvtOq7oB{v1Io4iM>2I}?Sq@^#21k5Bv3ezh2Vy?9?LkrqXrLsH^ zjb+T;fZLnweF14@!)5#9)|rR`#=y}7u; z?Jk){{TVQPEfZUD`YG%Sm5rymND!xk@Hq>xPETw zq4Zi=l&L%ts5})!E9QA*g02zMj%d4{TC$b&kg*&rSK~#bgrEiPVxQ;}Dc~9Z0Lo(t z${Crfhj7dL7n1O|e6;4sBxzh2-n}QD{E#p)mTqqPFUE0nPDiP4?~ z(e^QQiDOv)Cy(LSTlb>7_@+J8V=65$KjIuL&fa9t9$lK5 zr+tRey+gq_z;LoT*t5Ur)WNIO!;Jt6tswM~hMqx(jK}#iMS^)40)*Wlbd_MOK*hV~ zZ_G4UH{NE112><+ojgcEk97}pZf7n&M2W;-KT>Fd?0xL^{{TT>3Lfa*4qSNmVh{50 zO&owxBaqvj2=s@fj3#&c@v;4JMZ#tW3K8iD?}U&fdE0-kD0={A=+yG(W2n+j$x)c> zn2vO(01mH+?HHu1&|L7+eU$D1pGPP6KNeJzIEtnZ_tIMcCDLE<1-`;O_S)wKMepVgxQx`cD_p$vf<@%cP)07vv_0I=>48RbGb@=eYIsQ&=g4e$Cw zi-gAJgtOrZxxjleMj+Y#u%UonsBiNUX680r;MTrl&1@7gs787Jgx(+BuE zsexOO5AQPx1b-&K*EN14ZZXb>@);v1VN>{y10SAh{{Vg<8b|?58&bMM$4=xML`nTI zMMI1c!|S13AO8SYc;|PTBlU$92t24j3uoyHz>lT-qS^ksXvD#JW_T!xpxple!vpZd zTm5v=lFCxz;2%n8o?zU9;t{xFId1#U@MNc>Uo6;+xDIdc)-eqe%X(ZWlTnE^m=`XZ{cPT6x20uRh8 zfE&t6{p(=!{wOES=OnFD;d z=N+$~9?h#OG5|kwj)SyczsH{n$``n3oIxj-?WFLNB4(6!pV>)Ko*d{RM8qIjJT-2V zkBF+QyaKZ>GaS4s+Yuwoo`JLv))iBh;O0zgVG}b$7)`Jml6|036p=cP@k=9O3FXR> zuuk*G{9^=Je?m89j%D1iu94(hX!9+vf2l}Y=YvJvzS{?S&4j@+mNN-{X`@Tho! z`Ih(oU7{nF^)W;q*VR!m3F;c!e)w;HZ2*ewj6ZU2w-RpG?4lX&8_#_YfunaVg?-f2YnOk?Fs;al!+{2oAAUO z8~V*%Zb^bS9o0*efehkfk-u}}S7b*1$`CVA8v-geCPHxcjL!kLBO;`#B!G716%!JZ zhrc8f1L7%yD>9DmV*)qx!^hTWgmIo-(L?z>p0^m-$DV%LAv#Xn5{R$Y7BP^5mIftL}Tq?;&Va$&jt;-+Y-GssU zs;u0ZWf3~!1^Jirt)gCq>%*^V|U_3@%+k8g3$zJ@ShSDVtFV#QwF z=>iJ30y$Pd^$Nuq08Ds_N!UznK#2IJ_5@Gzjh(+ZRc=I7;BW2x{pk1AmL^nf2m|S( z^@UdCKofyG&Tn5oT^x^s{c$@1O?FRs{j{YW`{^Kq$~;W~3+JGosgMAY^Bew|qc@|i zDgZzO+pwVA?;TqS=3Zy@%^1BUUHcD!p)Es!wLu#YKDuV{rq^WZNFAv7)5ONcn!AB! z?$NN}>!1o8fY4^k7D{>IB~mu}F+{F_wCUt{nW4;(N1I}RZ8yjDXo#8Oebg<1kl(^^ z+qF&BA8PmN)XyYQjyiCfE!UqW+zV?8pLPr&k0n5 zP0G&?@?w)6%luyrvc;`lu)nrT%sdKIk~w{c#*Ml^@`&m4qI(7~3@0*S*}nm`0T$S1 zYh}mRYJhzPZrf5{NGXzjKg-Obw}c93Xcs{>nWeI)edZHD4~AYzuSVa>(Wt_6iKZSdwC1nF@} zQk1ux9F*df9DtxK=76jfakLc}_Em;lMvT3N4ZnjV&wl2k8c~b6IpQZ#S+V?D*;lx2 z)thh@^9yYz_>>q->t4J`#{zx(i*r+ zj5ZMFq@ij|NZJnLx}WIRFyNVIraq6e4rRpc@T?;Z$D4Zg`sYw;-MBra6oNqZS2)Y# ztIrsUgi7qS81Yb|cNJ+pE9fGvX4eQ%jg^NmR;|RxawjE;SJzd3~A#8^lc^%3^!AgfPckngy z6BNVjaYkOUzqM`lTqG$A5)Sl9lDb#v$D@lD@O+ok4mQRXzzAaw#E^_a-IV?+66}byrpNCxJ5toC2{FY9 z{ZUp@jH0Z}_2(JN@H9kjcc$=s_ltBxp7QTY_${igoXfAMU)hBb=eTpDMZ+G{5<%pk z3~f$NcGKTf`LYIIz2_||BfctfS(TYwB;zE}^ydM`uuRK>;kmafVu`=Oahq1}@VnOb z>seOdpT$~CrAgux2<2R>rSB#zwbE8D{&359+H$UBx`kdJHS4haL2>v;TS*FS!_8oYq_!~ZTP9Pvb}ZgK90Iu=*y+6 z1mYbXXN)%%?2fj{*G0AcvHVwU+#yLmt*Z-Cr0$NiXHO9eNb_R6jCxqRE3>=Jxi-ex zV4+t`y>oD|leDFx+INlMs=XP|-$Yq!p-hs_PRozKdbKD!dx%^lCEKSv%0|gZZsptCYg^0g(|XmO7RACs&ADw!b^FG_^c30?q$o!2fi+3wLycSA z^ci`V+8SQVIj0h`a1*|VSJ$?EL^)n+=@X<($rAkrrBYyHN$ZBm8q;c(quG~ z^psC&YUZy1D3{5Dq}v{fx?sA?xtjc1<(`pQV$;r+VXG`znG7v|ikA{}6W#?~Do!;0 z=4e+_uYNW=?@wM(*}I`^>4M;PT^iuog9gWNlX-7*af#enzHVD{OYF)}v=~Z|pdxoY z)EbX396rglyO_EI%q%w2Np!gm1vcE~WeR)4SSihx*yyDj8 z-C8beE&w1p%Dh2>I4BzAxo61JCgFJ9z9pM;wj-J>tsG0u;mfj3vrjE1Q`adwr~(IP zfr_dJxCsY=DrMqe&m9%Se3(;i z=aiOJdeE#e=iME{K}phjr6JWKMO`wlu`ZpmE+V8T3yc#Pxa|lqt6ijWFhx!l$tw`4pS6mS z>%N_?)oai%NS6p!lky9VgUkgufNSU8HjNlV%_Sry43GzaPQtzOva|2Y{alI%bp*CSHi8s_gPLizPyihc_$z>Jp%G{p1BC5&R_giYf9LbT6YU<`X2N zJ30yV*)jVlf6IB5Co}YWb@Ug6Vl09`7(P@-x`=65Dt~Og1rL!n32OfUOIf2E3^Lil zuoSk+Qh<;Y>wzSIIl_&1Pbq=Y_9M~D8B?Lmw~JyIxb5L%7`(%7T4DP+__-s*)&dY!Gv(g>t-H*;%U8I7WyV$(+K@_$N>nx?4;uD=O&HDAU+70Z zV^$8So0f9(%&_826fN~PZ>V<=9#u-Gtunkdp-I0BoWni&VDwk#82&@S@O;sW+T2-P z;b$;d+cIo=^&qBDg}9d%&`^Tl5zGQB#N8IQZSZVL-PqLK>RUdrf+&#|%-Y(emXH#L zTL?%TfE7W};rq`SF~<@9$*oYPsqAy=)|G8!6~G68svPuVEnNb5q@Sv3P1kVvduTv4bP}s)c0PgI*+cyt_HyII8JtD` z0D@}%?2j~f6Fq|zKhepYwCNju=srmHCXPTTNHfRRG$GO?B{)+1?%MrvMbjjc!e~dN zQ7FQQ*m>he*9#Od4IDD-f;QGoHl+X+1o|eF*8L9in2OV_(Gg z-}ZHI-lsdKtXJnBT|maj`5yT9u%Q$IUy(M+xKZORtdSp20ubW#i}ZX$)Sl2y_sH3kQnBYy7P6oPeaLI6{w4@U$b z$@xXI{dCcqkIpM^q^NHIQc zcJ-=>PTcp9b~H1Vi2JO~1}FG9KJ`)nl~Vu%G%bvn&$(yR_v$K&N$i=Sd}>yIgfs#)S6oqWBg#<{rh>JIXDNkoxzN6360_R`F>cU(oUfh z>zWa~k&R&q2l;2Xet4wDgC&j5^pa$Q-^ZOP$kagZ+LB-o5ljTAcY_o=o7EPV5;rU- z{bFc{g92m^g$`!#;MYD3BX9e}(qIr_^YV43-_6nRr%cAiX{4T~D&jq~ zz|?F$6;qE%w*f06ZE6?2R zijQ%cvOArI=emRp!l)bY2BP8y8f=g!&Ku+FsU+_sh^Uy6Jxg=2^M?F+(gFrYSME*3 zNAR_pzflv%ekN*zBmyvtjkw(|4At=@9uP-57Q<$Y3WbV;@^!>-D34a+rk_xbH47Cn zhum)+fy;*Cfe>Z32gFbXZcp^_cpuLuXV(_Yqd$U6qP zxM{2(rhH+QIH(?fgfQryKOttc;YE(Nv<~^0Gc9*|H=^m812lvm(jB6}bKu@ZsZD z7@zP$ME(&UtyS3*Yyn5U?c?>+7X|Z@Ob=BgNHAl1#qOduF}&7*-;kgIoa{mKaWnJG zZ~8`z9RpWqeT47fLOIKgx=zHr#^0o9wbR=oBnbFW0(kEf-SE|9w9Vdr<4Q3!tW5J3402?2wDKJ4(n>fA46Y-?%Vh1|KkXE=6+CLi5 z1HX@b01b425^!!2^NHW|g%pwiKs%nTAF3!0gh4;R+vQrs^2Py-x{Hha zDTUlNWfuqqx6>WYAccK(ys-l;VI02nK&vSOc|NKwaJx?EtHe>5EilL1vFQ&yFxnbA zSw?2O>c-qO>)}Q7j%WO^2*56#I!*O)7R`cDjrnO3swAJn`uiVR$e-U2;RhbJ& z$`%1ff}Gp*sVJoMB%eyTvN%+l(2CPjsPr}ESJMwiIZFw_vmOg;(mr2q)dJJbuZ^BBW{>b`xhYZ}K!X9q z$l^@mlfyRGZD9y)!MzZ?%l0BrB`plLg4NjNC}=ZQGA-S z)==o%qEn za|)0L-fi;msrG9wR9D+eI-At?XH4BObT^&)2G3YdNa=4WW0%)>Vi3ipt|A4?$E{Au zWnnH80(MP!!!eB*MdON6W2#?|Dw-|rlD@DqfUZgi6Yr|*)TI1@b~h5r$JInB_G-he zRn~WB&<`ezHuD|{47>e^hm5PY+gv?1ODJaA6v=E^NdZpJK z$hd}Qz;ezL_dA|5UJiWG5R5+^y0>gj`ymSn1AaoSag19W%ovNfzGKI69AgrFC_~rS zh033}bRa@PmZ>HN!fLv7oMoAo*2G4oH3YV?-n@h}O`|x6NnIN{y*JCcv&~j$o!+-C z`MtqN{DpNy_$+r~9Ke}$=8g8KU{HDzmq zWB2#Xp{1tB5p6&`q@%JD%e`9tNj2+!n0hI}dRoc1c?U3Es>SwhQ+tNuEhk#6uTUWl z$I?QQVL)+A5x`f5dSuQvy)tx*kLPDH+&a~;*}H4D_^l`#C1Y@q0h%g8R#RJwjYvGy zp4=OM$ls?tP3Lm{B<@>g$@O(^V$I^|b)K$wSY&|g#^EJ1J9yVk&R#-28De>Q%HN}V zhVYDY2(b-LCWJp@ik8tTTe^hXsF0;=1f+8u>!#UxLwP=8Ha{p?^yiZex=a%7n2lP%x$f6&dv&Eq(-4W=uZ7Sfn#Tc1svM60x-v9g>ou^lOTxpimhq{#OaVSjafF(o<_Lr1nFApc2^zlMUK2Ehxq_~BGeE!?< zNvA((z5=8DyuLr7;TOmaIml_Du8;M3o-Pmm@t^9NB)AIdof{LRiW}(oA2h|x@A8lK zO>BFd(5&ubh%`T+0sEY|h}kB6)qVsC=TsT!gO_e&@k~<@Yk~pt78;>Hz?tRwBByhb zAakf#Ec}Uv$^K@{e?(NU03^_W7k~c%Sr~X6t>67aMF4w0WeYkF_einjHqROT14SM@ zKH3n(T><8=5TUb5-`PX`9D*{_pZ4d+9zKl_U6JOG?ZLHtD1W1{KIa_nH}9+UX>uT% zbiznJ6eH3Q1-vXCK6u#U`C^N>Z?^O$(g-BsAi(?auh$gY0LkydxghMbzkMLV3g2=K zDbPCAjyzps8L$Z z(KAAM;QamuNSMDz>k1ekx!LO$KPdYuzZoT1J@%3Og8mg?_RCT4QHrm{{{V^aL=Bl& z!hj%TN&Ak%r~DfK09@7lC*Q`XG9HtYFs=|AT>k(})%M0WkLxCk)MeGi(xb+N0v-Glf_Kob)ig2D*wdB5N=%FEkWcARGXDSu;OC)V3K;12 ze&xZR=hrj+Dmeg^CU|eW3L48J_uHBeg9q2TsFW%;JjkJ(vQOQ9XdUUd_^N;jh(GbY z3*#yM{pGIIh<1OXswgLyhbkAwls@kA(qPFC59%t00WwU86f4qJueo&r{xILhiZ@I_ z-Z)UVNjqg#kRXTA1KUUfwf0vWdn1AH6;+wz?t2haAHXZ0g<7gL?0F~PDyuUl(Cj3vNgN6d#3FWm)@|!T$j4iT!0&n}ifB55!jU;Yb0T zfIn~^PYAz%;43S60W*NyME?K}ekAbNR#QMuCyA5BlB1}O(c6SlyQI?=)JZQn=JJ2wg@7=$`l6aD0l_`ka zMI@Q#C=idOJI{Ry-G3b6ApZb{d-cT@Yz)cc>Y+=aIMx)I{#ozV6qv&YIG%gP#*hH# z?lh$y(H=Z$C%EuD>4BnqGC5H0Z9jV4&mN&4>k~vO1OQTFp42&;0P|aoQbAz@hxtU% z0S+ENbL`J^2>4URPuomk{{Y4Iq?!4Iaqodo83&I1C=NuKAddR0#{dkZll+s@{Tj6R zRaQS9Zjed*6W-p<3<()tQCQU-cL}AwhkU)>=3Yd2r8i$H)hrb-qJ|dVE*+fEda|V7;TyNrP z^v4pR6-SiMV;3NQKVP?vUK1yb@3!=!H=(HzV{^iy;!tcI-*czpDoCBVRBS{j*uMve zNuOw@Bv)k;La})qZ#fTLUy??~hw_w_V(~x1_)i`+eo5dr<-(HKW{-DuROUcMg2IRL zPe=4cT12Wn+f`O%AGzel-Amu9C}Je#gZtgE9EuOdtd87-Rc>05m#id5&6pnAv7XEV zHZ%;*u%%j(2qU_l!Mc6&faty39GQ^%RldWr`d=uuuyV4QGq6lv9!+EEiRsr4Q_>yNaVDUdfaU8nw! zCx@gCw{DYZ#GR${bBQ`S1F$-eT=y`%mH+JehhngpSCN~Fgb~Gi?^A{I6dfL*~ z)$5Cko7Y-lhFdFf)u~%0DI1b&N@?nhEi~-Qm?lVy&;)I~_}5#)ypy_o#q34-%Q!w2 z)&Nm&iQ@@r@;p$4EGOD%A3bz$(icWojM{XAl4m`Iw%*DR&S!f`GpY6fAEao#?@a#y$10K_ zUi5R87|*>U<*tuzF*k73<~z4-Jn^3(+O5!gZZ-%hSxDTbW;jq6Kx7Xnu8fHw1B~4N0Q46>vc7|%-lam| zBq}5nks(Pk3P|oEMP{v1P@bC`u+$+|n{wRwLy+8U+dNUmR2*%0p=nZg3Q0*I`l#P6 zWvqWXW(!=cl`yw4EMoO5RlS>QN>=DVl}4fl!*5$RtW%J^#vMqSJYVYXha7uL$lLC2HIKC5{u%e?QuXptYd#lS2ZiTSqjg$9P zhL|7dp05hu5_66bGG+H*{)nQS+~al?>8ex8f`u87IZ_Orqla}q;s^u*B<)P;R{frP z)ujb4ZUA7;l6VDscB%LfCj!H}{MkHt@v8jV6s#G*l$9w*LQ*-X><6^%MhBywkn*-) zwpL^4`!Zpz+1aJbho8fj)ij9JsY_0zguw=8B9+p5l2L7FRgwVQ9|*0a_O%hmfv9+v zAkH6#+~N;OZrPPOpbq6DeXG-sc_3x$?2T=lFpiV4+jm~e-z}=v?+v$ktzAKPKvHz5 z4Wf56rBX1p$y22|w{Tk?NWj4RvcEjVl0iSDD3p=EIuy$H0`oIn-300DaORyUo*IZT z_0dwc*a`b8NP&V0B8IaH=Q3dl2aVYMQAC4K-1pGlKLax0`*FG)cltB{P_y%j+vy*T zBoJar5m@faG9(gtc+z$!ZXC9n1P*k9X9z%&4zzx-qLUJme-R^p%@ir0&+ak^+vijI z!irp2N|F>n8dJIT3QKTe<^c8gRZeRpU>9Hs>>1m_t#?Qfw2u0z&3k40xtS;+dyPH; z59N{j*}_Qx{pgCZK0g|+%S!$2VInx%BYLnT@!{b}2)MrZZOD*5Z2S#Zqmh^XzCRkM&8PRjct|o^JSyDp$ewjin|I6i zf(GrLbl8a*XcLz(x&HtaPsG)M+(;g(ftM%la|=lud8z>Snw~_&iHZQF&ExmKbT`}@ znU_-;dkF`Xn`df;n^ias&ue0n$JJACBc}nvpl&SM8~$wrCV~kAZ(UPn#Sf7#gzce2 zZ_PDvzjpJ=sqJh7t zd{gDEKqr?j;S~Dht$&<&4;oB%f$^tggK#OFHqP^;HygTdS_O*Frcyy3AcIA=SZ%d} zTo#Ysr7j>LO)CBMwy_}Yg(#%%0pZGrY-9VPtbwtyaM57{hkZpP$95sn4LDSG(q@Nx zKND+<#>3?w?3y9CI#_dvItZcOkEGdRzBrEO^i4iUgWcw(GfY|Y& z-1raN-N5{l&X^YXI3onZ2E*?rc%D6xQv#!C-^QX~vM@|GV{0}~^+ikAiIcSe3p_#T zBF1NHXTMYZ^iWl>2h~E$C;Ow>z>(&!NAxJ9CU_0S2xE6@`_=FOCqde%dOO=LEOQsn zf&E&&xiM<-BmfYpJ=I0g@j%OKBc1d9-$syvNC7d%g!B24g+cy!*SEGPu6EqVs)aM~ zAGtw1?^%uZJ+V!IWa$chf1GItV6aB|PR5ktzIAiSM1e`vk`LyeeFFvhIwaxvsfqp3 zP}_&1D6fYv_t2L|Bz&8SD3d1OP+=4w~eRL&|h>Upe{9+E@n?J&bz7!}zNMohxTc#(6$aq=@S_Tf4o!6^2HO4Tn^jNfEMWo@OUvK z58Vd;09iC*cX7aZDDa^Ekc6{?p8NLy09iC(phJq0^oCjs9&z#O*^J9)EiP z4nBKvAJU?Q?AwGvAqw}wp>B@|8DD-P`s4MeL#9=<)HPUXnXmU2)0e8W;sj^uZ^RegdlVI!E00AreSoT%7(^(6P2g#UkC8BNCWhhR!(f%paa=6KB}zB(f2QdlfT}H z_v%$yDgsv%=##&yfCn-OoC)|GF$c%gD=S$CPsn!!?oJ^80JmXTLSdsPagipqyzu>% zvI=+Jl1C|^M0@@0-H7BT^o3MqxjBm(Jf^L&2sUqV;65U%a@;2|V^BZhX$&LdvEv-; zPypa&DMQ1*dO?FAo<20hB!WyHakUEFe;#2*Bz4bzu%e<2j$87fOP}MsDn$JA-NJi9 zlNt;bH$J(fnL9@={xqeMR%DI2({nMo+m$gGphpeQ8Xe7QK5YD-hjDR5V6HZbRV*;N!Y;k zQ{WAr1nK8dF(1ITW=EVg@u^%lApMma5kE5A0sJAo{j>oCB!3hxyKa}FbLFPZonDLao#{yV5&F+#DdID`E4fgZz2>@;^@B&bi7 z22;{t95);j{{X|c`zz3XS>P+6>ll+6uMLXx-;#o~`A_8dJ1WZ@PyYZciu50rf|LEj ztc36PSB7s{XYH53-%I;xd`}p&2Tt6@c8?$x1oWw&5;mNxYs;5jy5h|c6qq6=yC0Am zlzLXrFbsXl+ixG`)mK;UGd>sEqqzB2bkmypCCiz61IQN*S>{~U^~%wRxX5?REUm(N z*ASDjaZ7Quq@Dn%&_|Mglov{Q-=qt^i+WMV5tzm14{?iOIJ1`NYU!s~S_7;&Q?k;e zxCri#8m;o`QoiguH(I7XLdC$_{NmbzJdgh|F3vYu7cJyhvz9M~X!%{$Vo9{Nv~@yygsNr70Q9*7 zwHEYU(ziywQ~e&}Hf~^-P1+&Rhh{9hh?K4SB`g&o#3*cJB&oL(z^0RkSa~AmEO!)V z8@K3+;~q`xsKn8KcFm>Xx&|B$ha5tR=ZWXvMEL`weur|c?jeixPnNR9h2AX67`<}` z#uE5_v@23lQP->pJIDaleyUn-UX=5C%~<)v(}qmMdN|Lw*$)wTzUB*wp@yysVB9cH zrd|Ce)RXHqV*Z}9h$o$N&-y{|XRwZ$GUeOs7MF?OSZm6W=@#5uGvl%aa~Fu#t*do8 zW{Pa&Rf2@vP-W08fA~c7VZO&3xc7XYb6(Two1~k5h`K&=q)bBF&a5!(V-2;xX+D>l zTs|9hY5b&vsCui#T>?-40E9_G$Z(A{}s z$yxMV`AFnzhRM>VF(R4cy9wC%@vgPx9n&K7jzhcXyBNJ!-7iNXLdaZ=?SJEj*c;aBEbxmos?8?wLXaBGUf=sRi~2a4MCgcPI{37|SeW z21;$@9;x=%+QyS0Ne+t1cyR1U`>GzVwt+QorI7k3M zA0AchZ!G!#<2XSZlbdkQt+%ST$fqIMT4l^frFX4T?kkL6KZW6LKqZS-m8E3|ky_+P zwwd{{Yct z<-MkOz(uQ9x|3&rZ0LT@J zzjX~cas;iW8fc|Zo(07io&vguMVbEqC3#kKJ#=wQ6&7}vw@%=A<`}1i!fY`FB`R(9 z9RO+rS{*{*A4vvxBvoe{N=ra^dNaIW^+$tq9$C#;)>n4_00GLF#wBXa%35;b%FS-J z+lf+1N|ceY0=|iKzjbh~fiu$l;q5PUe{yt^W=&~vX48%t?fF^9YcjlD_}`Z!a?q?-Iwee#kwoNu!o&n zZQ^-C-pR)s^w5WGbQLCckQE|n)Sh&hs8V#Cp?mCnwaD%;F}D-eq#u$kdpd;fl+mJw znUT4#dF78LZiMot0>%Mh(Ix?Un|n6Vadn6xR~UuD5|BFASF9~F0LnsAIai&$q&f=1 zIxuR_Jmh~kMp?eQ7B`j;x?WZpa<9RZIIYym&cG^4PSQnR3el6XlCBnTS+_Wz`~W+6 zP}V&MGhoOkjohd8wc_j z%hwND;+-J$k%}Buh4qQHz-`$U?5-e!P8!t)1x}Q)OoqlE-OjkPsWk3 zfxg`9wsf=Py_kAF!R~W*QO8x8@H+$-uh??bGl*HVH!o>PD0#8PMKGWQ!2s7K%NPar zbIlk=QNZpk6Mc@{d99M}94Tc^6e(gaE79nYtv%q+g+fz{PS1kKQks&?xkpp-rRa~M+>z0ebAC(6_Bb{woWW;gr)<=q zm9XrEB%qk(v9BiPxHuizo+woR07Tcfe6rQ2px{o$S+5NTzly8FxxV7s-!EP}bo*?l zK^m5zktde*8V$Hzlf}hGri9G5BQ0ShZTF%oz>-Gu>Z)wHi(!k)xI-w!t;>edq=c6M zQ8B}KtDV4|C)-za@K^Pty1pfd6XKwz@O=`-Tu`hW93Z>1WFe|Pk zXjJ=+ToOss9y3(gxA=7e8o=@^rM9ml38-$bo$+d@B*M0==Tq#{lPK|5<78YgUx4ISsJN5Yca1#$pT zu4gftupPggk91K~h~olz3KY!$0N+jmIL*R-9O5^hHYq@~Buuj28|%ck?!P{Si|318QIkuWpg7z~knx zNAxJFWC)1w@1a+A=^oBF`K$YWg%qTal4c0yNdV2@K522{gYBvwk4gKQT$B7c{lBAE z*JKMvlvDHx6-AJb?`cPV)%C>pA4Y%)2?JrcP&5p5Zf6U` zl>$a0so(NN6^_vcHseBF90BrfDYX9SD|q~oMTtB>6d(mUOa3EeB*)(g_=+xY0Im@L zPr8HpN|S-JxF387_oj>-*~lHkiSVHa&;&w(k>f%c1CBa5`TBN0n?>pp3<2w*9EN*% z@ZfGe^jt0v*1W3uFbOx5@x@f;0MWI#USu*p17 zzt=T;5M&W2ku)uU7{a6bqT>61GEYCs6i}W6ZXaC>;b%`sxW3#hM0j?E6p0{ju%Q4e z(iYbEK}i1qtXlna(SnE$FG-nE_1jzl-Ylr71jENm$#BLNp_0WJq^z}|B zW7t>fnilBve)bOE&#n*ksG)Jyu4B+w6X8QW9&MHreq01Qh!CMGa-c8N)Nq z{gyr|qG1P!2Yt;9<;3aE8Jy42w>}(IKm^;J$%y4b_|XGBWsrIGzU>By)Km103uB5u zcR6S%@#_!uO(p?1(Hk8IGlNfGxhp&J{9|j)JBP2pvnH{{TjSTaRUL?{>%o zzLigh3bIth@dB#yxli2niG%2$h^sB43EG4V&U3c)8xRAiYk2wg{xv3jWK>K_dWOLr zuQ+URpa@wkACg`?e)(TIydV%s=TuoP4ix;K=PTt`vL|XwU=pFR*h%l>QE^2S;qOFF zk?|ENMs|TwF+&zFkSDM>4-r5RGO+oaNJhr_$OG1D>Q5Qr&Z#oAXvE}jzjNYh>Oniq z9`1B4ftx>yPdNlsTtpu-aLJvAt8r3E<@QuuLPe9O)$yPaUzC6&7lE<7KW$$u#GkgP za*#i|;E5i2`)cs&?mq4!gf=F3+6`3ZRej*0$h7zBinbu~<~ypZGJhAYC-6?sf1^VZ zBxTY*=j=I-ub-~03EPI;YPT*A+#3=%`Mrp%C3o?ks+bxi$Js*}fd1{_z<-Xh@H9;$ za%b5?IQg7!4%`X7XW(fuqo(vdpRf*!`e(}>AZFWqQOp|+ZxdqZ;kMpz`U~s?Aco{f zk-c@VC~qk)hx%aXy4Nf8e~jZd7^67-mGbRz3?X)fEVr_isHlS#=jV4(o?KwXAdbv} zqu@`yMxzq-zjld+5!72PXJ zfSZeM;(L#}f&7oqrFlnS8c<4=fa4$l2`6SNkXza&)s&&PZX5{*Np<%fBf?gqK=2gx zjqWpp;Te&*@xo12Tq z-nh7ZWp2LemP(vjj^#=ul6+{v^9~a`O>2s>vCW&z?t>nI)|7ce^k8Ifj=l%~0GQlY zseG`4m*o43O#c8MVF&*Jm=)wcjPoW3llo%l{{S{-d`+A)2g32iJ9~QgS5tzJM< z;1UL<0X{Y9FDX8jx+>2-24a{#N$E!^|osk~@@;c~{g63(UKk zu-q3l;Eu6~;dhNUi{RIKW)SKGEhmz+m_DelmzhEo#x*IBtV?+t5uoi}pYkE;EZRMN z^IIWF5XCv zxPR?2B05~8A$#K?+| zt8K~NX}?t99$5HwwYN>V;l@i3H+PCz-zCPDml8{%3NWO|;%nR8G&b7$3(rk00clo5 zxe!L*z*8S(eAvzyejkD1Sf(9?Uon4WhhhqCo7O^tE}LoK1E~rmfS@M6oaXEu?DNr{ zF_!Sfpgox~d9$=DSV~Ke*d#Uy-~m>VJU6Q=EUqOOX62ou<}N3MVYqHv#O^Gx_83=~ zxDQmFApF_lJ-ln_&IO7yfb?O4r}mcZPm87!X%+8;GzcdHm`f*Yd`)E_=!n^dN_0m{{Z%3saLbLh~X}j zuetMGIm#F{>NiYXj)pVhNgv*Q$NvCMnky`_ zi$cRm$`exXI8TutU$nbkaOo-LLhe~rz6oNYH)t&#bLA(IBdbrUobs8^-cs!6c5+uj z_!f1-GUgb|M)MlL?2@Ok3zer*w75)$ks&%q5(%kZLKveDbZMOMV4!Yr%*kzX>SKPX z`xNzR^%By@tW@5R{IW3)iF#MZdNRyC4r14>;ZG%YIEERIHjg~AaB5-j(}_qLl0<-` z21M0za&;b;ErN__E4u|AOnoKvv74}LX9Ve+F5*n%`EkY6Qd8qvvGS5AB$%Fi;uFA;FP)(`Zd-O{{ToAMGrb! z%-Jub+$jyfFF9n*<0x6+l3RH0cm0*kTJF`BJ6@zA;{!DVt|uUV>!n&!u< zyt5Vm0HHSc_OpH*C;C(|m9yb5j3}UiscjvDikS*f z*l;vQ<)BJ>8MFk5ImW;Z{{T9;hm-#RlfG=}0{ZKutUIJ^ccc6rVaz#q7&?!gV<$;U z(i=c~g?`I>YDQN3PS?=&a~&h}9nvm6dC_Y*yC!CAU6A81;EQQ47XmhM zEs~IxX@lq)5w&?g$`_(5E{OAWiOb4#<&4JLj^W64Woxp1zrxy;9n_Exq?5b?E4$@C zA?}LuZZnrNHXD1M6N+U=+quKta^;jKT0}z75js>Rdt1*Msq)-J`f%=TabY zU6aI*RMMp@O(?w?EJQO>a+0$^zd?RaT^97g(4D4i%x&Y=nBD96#h|&c#MawNQ!cFx z64~tXNIPyOt~xpLA<1|?M#F5g-et^qhA`7-&R2$9i)&kDsFR@^cF5axaid=%#(e9^ z=P9t2fG#m?T`E`NgM6@6>=J#I~T9xUCe7M;_sVVTj!eyxV5>` zR4wiTdorY@MJo}jN{10#s`~=RGeAaH%NSd@mNAO_&6T5DsnwJ9Byl9{E8ZSbwzj#8 z$>TcRi(rJegV|;)R1NxTBjSjT0lozsx!0;js2=u$c6T-VUNxoKn9du>VBl!<8;hC=a{5=-#;`p8&YKNG^L(S`M zQ>-}P2q8)+Nzx1nJ5}LB5URHUNp{&)GupDOt%(#9voUZ!2tTy)tP;@5op<; zWmuToZKHacDh2vO1mFcT#be?qogaZ{%n;HK)F@x1HAVt>?BE^z#S@|fO%4A51doLa zaNu6ixQU@m&mVOd92xuNCx?X;z?v4!Y6CT3N{~;SC)L7+8wM*Rtw4{YYe^zNgFZE> zm8yHr{@Tzn6aX(^2lqmAyjZwR79U4wiWI}P&+cy{%$L0tM%yN6K*sKt1+$}nMu&Pn z{soGO+vNlLrigC{7VeQAi5zHiqxthZRXk@9pX$;8t8=mS(C&F7?s@qpN=(rNa@_Od zL;2)^m!ILdF-?JUgipxWe<9|K?cLZFCU}#usMtvT$HV4i+A=??Dp-l*$G(IBvVs2S z)|!tSSGf1++KNFj8^lElxJUO$w1fQB{{YmYj(f)r`VhviXUuK@*!5D+wIU>oFhc6GH?SuVt!uYCLO4vW1l-Mw9TZx|7x~dF`G3w3Qt#DoGua%YGEb z4Rmrq!!a{I^@_cNNTRgvPW#Z8M+AJCiI4vPD6fCf6j+cs{dAClPLf36Ob|f(;Cw|F z6%Aqx><nglPV;WRg#cD$LO$cLu_AOi`sS~JpG5HY z(Edf+Ct<1t!Ai#8o@)3WF~Imyzyml*Dd`s&2~>ULKUh&pPSG3q(6$w~NVvJv!o&gn zAw?-9nUN&W0Jlhc+TlC@0M-o;>n4mGjwGDGMf>CW)PN}vAZ$BasAn!1 z&KaJ66_1LjkuX3>RGxd#&R^R(=6*6;W_J9gQvjJ!5#QZH_}qQm<(=f}bM;k3>QI9R zVM7?v13YDu;_vFJlK_`~G%3(Q{HvOp8DG%M0XD=Vyt{4zK8(_j_4esGfp z0N>eFIhY^0>_d1xN#DY)R~oqe5%3jJnPcvI5C{AT_E5lYDt~(zM1P9&{N+`Wlw|&C z_*HIJ1Z8|CM*e7+kIq$Ct8l0hvG`HI1DO^^3w5;q=sPE$0a;1NpTxI*IE$z16_g>C z8*U6%j>nu<&jNeRByA>wBz!|_S4r@Q{NYtOaDMo4lQF*!ZCc-d1#^!2ej=*!+zfvj zAC*5{0|?B6BgWtqZ z#n#x?6+8p)aQxv&Xf0eBkWS`lI*1&12C;HfU~{bzw;Ey+y~dJigEjvE2e_TSWxhY@ z1z)N-aOb@b=B@4S2FK=`pAVcAa5P_85#~0r!>C8<)2fZ+d#SrX4V9>mXw{#7OgG2_To-+uCYZqqOby)NDdJhT>1pH@CKc zAmp${4Cdd?7gu~_3EHUgaQ(+wJH^8OHF+j=6SqGKNEn|HymuOliJ#o}r}0NVQYukU zAu}qmbaaEvHug%GgLr+Go7h z)f2{_Q&L`TRG-j zQouTw#ik>STwOGm5(o)Omz~@61r}DY^EU2xY^CLG9N* zMwt=`AjNYsm8a<4>rJ^5;2 zxE4sj@<&bhRxxbm6=>a_ADM8=Upr>v)jKqsmO%1X|Fxz1s{@MJBUKQ z6`66g{m$XB1MhM1qIA_w#Y(fH?vFy4`qdfh2# z+k_3=5J^<*DAMQ3v!IM?qC7(>TV|YU(-~e%dkICY<^c0ySAJqz4Tl1XV6Ft173Ccy za6571SvtwoqXcigN3e~O@GSdW?%lTmoeNGInHf>-w{L2tM{+_W`ykiTPLgwGQO3F% z&P&2Grdq_h?4NQFn_Onu#}rMvMv#ELQ#_(;=KcT@yv>WWQVLC@V1gtb8&$J79uH{$ z0GwLkc8t2MwYJbn^=(dcv$XC;m2Sy3ZNr{{dSSQdFQglM$Bzqxlye>$#uJ!&lohVe zNJ_2mLIK3RW0bXttNzkfzBq z)vR_&I|E(=Ev3PsND4_BNFro+MO0upk2-X9nJq0kI?q`CS7P;(m@X47ZGVQ)KLGCSZ!fGX3syb<85ed1BM3cs3xCQz-#jd1{VSCz&z4<(#e? zxX*dx9n6KI3K59iYiS3(HkeHKkZL0i;<$DvhvS)l8N0$UY$E7hSYO%@9bwRtok@`# z6i2p*Qfe;mRuwD8a*dUeJyHJvNGj5L62kycKfen}1M^i}2csxGHgs-D{{Y&{K0lhe z8|jCo?wB*KOtH&Z{{W;LjKPOBiL-c=T-mmVI^bX^ts9;^BAsIv#q#cC!Lw#x7KanS zF($DqWL>sa!q$LBm4UoMj|w48#ttH@S~IGr!RzlWjep!Rr8m09aIn%jk`l8;{ROT3 zOUe5sFDhIyZ*_T=t~|l@!EL-imy(jNQ^6$nSCjfk@{G^@F6A~dj&I6YUk_!BQJhsb zSX$l=DaO+QB?=l~&im6n2YF56UQhT%)=SQLcK0x3MO`_6WcD7ki|iTKNb6FRsDSG# zFs(BwAjcZ1(vpJr8Y75=s<(X_B6&V^8`4fM({@zFvu0Jz7FU^m_vI|ZiQ?*dI@Z#l zq1G)#I;E`b5+lOB2j#zT7t!`hR7YE#RIWefHwK2fMDp#zSAt>oy%}Y!(Q)V3mWsQ@ zF*|UC+E{goFLew~r(Gxn4WLa?`APKk(Qix{Q!ZhhA70~6Twytra(#D0eVDKC8=<{hImwu$Qtkt|;z9 ziub!-sq%C3o9JhwzJTzojhk`&QpYgiOk=G*WH4Ko0@nN2D`P{cK|+D+QM~OYcvq9G zokF@g3UrhwLX@(34zf*3lCzU#Rpg|gk@TCVB2(n&oRVMi#kWd@@8(tQDK$y^Q|q5*N&EKF?1v$CByVk>OxbifFM;$Ez@@K zH94r(SMUNe-L>t9NO{{2#E`V!+vY3s`cykZQuQF8S`?Bi+8#z$BEz7bkC@W|*KRHV z{FUA~XWP9_=^M%Kqdt@K0x^u|maoP%v>}_9@cXqetLDIj2XulLvDrg-qpXnbT4BpP z7b>pEVcB-@V1nM!K}}jYZj|a`N76>16gbHFlfZoqbiapmDbqeD zne#7NGNxy8=LW}LZL+o5MZ%QD-jV4g3IkB$Q#I`z$llazGOeXj0~PvDfm)gg7}rIZ=`-TfSKMYDxR@hk_w61wW#Xc z2pp+^Glrkv`^oriJ~j5tzD7yD0d(M=2)k3#E-AhqmT+ooxqr(?DRm(uaJ2i&#H(gV+44Zq3rZQ z%eMeTX*4h{aFTvT!<8fW8zgPNqAEx`o#X4M_(}c7!_M1Tv-*Oh4(|G33>9kWD%hlO zw0reU6@kNZ6eLLENZn?+!NH#_j8hDXGQ-WM`IlRmnp$SOZ_?UBFVcN-sA zt9(giRu=%Peyv+ag;n%+tpIU z(TnDW~^s!Uxb-!kb1VhP>+1F(#WKM8lw?>pN1E^|IS3 zP1^*x2u7Cy)?I*nVhEGB8WHH;Mh|>M znZ#E+_a!u3BuOO1Y6kMfG9&kwZP>)HI@*5s6k8cR00!E?B zvOW|c7y^g~R>zF+iV(;U4mlJ2IBnymi^j>=c<(}44KU_93E$7t`m_L4RoRK*#)UJ$ z`RosY{m^gqg%q8)ji^&Qn0p2i2jA!e-Y8&#)reZp9nTtri~j%>UJBZH1E`!`s;Ya%j2F!!L0D%;sY-5#0CZV8{i?me4|CRru7 z2Ct&6&#H!cJ^uF=1c|@6_UAc5_noNIjRmWcdkKUC2$)JfZaT@7P%_i>hpN!`akQB*Jp$dNmDP`60Z zGRmSq41+}gsyNWMNZ;PV$N6+`?VtjMk*vVt6Yv#Rn1C1^_dl6cS*XH?3DTc{s_ezu zz;O;x!R1T{`B0C!Tp|g9Ya5@-RavMW*4&L%WnJ>N5CzS`c8&$prmW06CG4 zoFeX0L}D)U@D-GtjAshI1RvuUOh<)f3t_EG4fp-EshB&Ntl=aY)W*XpI=>k6sMpU3#g1cDYepBhhb@DZLHj~Z=ccX&k7 z$?U?Gxx*atePZH8yMfdhOXe_IAova4^Q-yNsR?- z8=d2GNGG4VDN6K-;lH|&qsk8%_0uA3j$84n4AAxvoZwj!mBdaoC3;upz`OnSg7+? z)!jfCNC$!OsF;a{TO<5BHlJNdCI>o=e?D&B-^(|=dguZcPW~u!X#3%OPmNuZw&eF! zHctcOhe;DR3MQ@$n3RD@Yz)%29+tztqT*ev7mpL9OnSvgP?M%MsMwqf2cZ2C@e~0E zD-W2&puzL!C*Er4$R~5_1BFuMar0P-o&5RFiL0(;7#-q;urpi9fySfX?_%teFg_xm zC%kjsqv9J`ItOs}Z$KiyDn_hU0FOHTwRo>@!l?48Q5dR${&&BR8oN<50ym)znllpu zsq-%Qdi)x8Wd2C2gC;=dRN0s%;fE9t zdE47fos5CEjVVNxD8%ncfyZhDZ2+jFVKco8;gB(@kDA-5q-`7~9+T&V0e`hLS z4d>!c6>bUPa@_v_NKsRy>pShR`h^N-@(vQhPZMyD))Z3U8usoV3P=QaKt8Ib&It!C zU!6OKRlImr$siFVctuj@BB7SAV`*(b`n##I6EH^5yax&@K>h~NnEa7e2? zP_RR%1j7M{(h^dm8C%o~bJCX4uYQx@wV?v;K!K%!f+8oMOh;<2ZD-Hq_0go5?)M6^uSk6`;W;|T0mC|K&lZ?j zv_cbPoK{lOIB0EZNp%U0fJ(%2saX>|^q$tMSZHz4?M3tdQ^i+jO3PA-V5(tX)j#={K&ko?0j%MzLa4cI8afCRl+$$Y-4{6m9 z4yD_zrveW9geVT+I9Ho zGH;r&Ku+CycJ@&=t@MsQx)#hTQO#H;{{YSt@T4HXLR6qP+}8M*@7j<_Qq`-BpN(uz zpfz~!OaYuQpS$ajcKgXfia4u*J^RqE7ruPCiT(tyjTG(<)R5V$qxZA0MCm(F?m<$# z#}u8vbWH6(Mu;x-`K!cn(rAC9@Q*#!JZ;F;oU>o=#RPQhk@lpGKBG0 z)l_-L#{T;Sa^DZb?k=2EfQFDsq}l|VEpWch5n;4_=+Ej3eon?YR5NvFg5h>)#_+i)7X>1Y>NwZE>Cu&wMEr}_P3VOoK=hEz znfuY`i2Pb7apK!+P#~0`sBa@-T+yuYdv%N)V=Z)fa{bXkZ7*U^ohb)n2uupFwZG|N z`SdRNcy1YGsCDgH+NCO5If>)FWUGy*1ob)?ewSXOPT!D7i@a{-#4FD9AxSFI*h_r3 z8i13xd8+Ie6~XZkyE|M`&i?6?t!}g&D_8*TO!4KoCZgx-l{1uaR9X_!eAPiQ$4rS6 z>aJh)Z48fbr4d}(=tgQ0pnD-$`p(-XlX?CWhyKDVOGK9oyY`>cVHy?aM>Vw_N>v> zB#qBWGA*_@gu95ngf)!WuKk|M?F*w)Rm~!Jp8+)Bwkf-9GAt=BeL8r0byiBOoIT-LhOzRuH3!Gy$pu}L*+ z4&>a2p0dsxe`%O9UN>mqzjfjFqMS)V00XHKBWkcq?V--8)pcu_DRdUq?o=A2!80as z!kcK>XH0E^$Pg27RlIRCS4rs;q(|11cbXf-ks(2>M-654dW?yR>cgr-X(NX|fmwGS z=nQm}HQ-H_&=xx2cJ+!ZB|-v(c1IB$soSi~&Npanvj;`_0~l>8^pRT#W2*W0CNb;9ePt7v^mPJk5Quev6g)o7Z1B~FQS5=PlX8NPB`|UKa2yupG51} zn!Y%iQ+hKUOdWb%=(9yCf(H@bLfOFY^znO;UY%z1zM(_%%RhicR?cdaay2ujYP$Nitiwi^D5e; zIJVHWYf(&@8pKq5Nb19Gz=QKD=QS=`>6C}`t!CsK( z%<#n$e}}WnVcHa6p)NT;jlzSvL@{ZHq)+hXz50b1tPt|dbEJSn+PbF|v}rNpv7v5{ zff;Gin4dqm_=+oBb!+BIPr`*dJ%g5>97x1&KFT=&nL2;~kWCF`(thl7Am4VGpB~Yo zRH$rs?xC!{w4CRd$N46ISkcG?t`Q~=9fb_zU*DculflK0>Y6551aOHoFO5jfd2R#^ zYw(WBsenpJQb94e*wD905OT`@0MnysqHuX_5yFN#MH7~kH~{)Nc+kKmT8Ua?j+F8B z3ard?@)h|103t-qSvmn<4gotKP^#R(qw*E;O1LtrKsA+P?pq4u9&7IHs;u1LqB*3; zx~lT5jIo7q{tw^zYO6KC)K3UM3IH0&rZBtENBv;$4^?GmM~{;)(vcs!E_^E~$6@GL z1LHo;t3>T1)(v6UavZBt2NOXOJ^Y(jIi0^)RZd(dn@4sAbn*3y zsmr8{e;SjyR|)Z?Fp^|$X$t2ueRYKPW5>FXvSLrFmssKh~&NGEvZ$Jtq^l1y(+nVsf5DTq{_@i9~xr}#6| zzs3 zQ73KvR0zpD{qA3I-*SQ9x+j`$?94p?w8y9XaYV^ z-w9dM{JNw~To3^;3Gu32p+6)p2_HVKs@$maWELCvzb1+NpBHsfA<$mGW@ZGtq60Y;N9q2%4ksLXCsCOG6<2ZO9*Ylle~Os>4U&Td#XMlsIqj=2>8$iMoS-g--AEHm%#W@1i^zo>Y&NH zTHmK=H>x}Os`tW83t%^@Iq;#|rGERc!@?eTZ~20VK^!87uFPiKGDs({cl8Af5KGVB zNmm0q_f26W1LH|i0BuY~USrkrQ=B*}hpL~;#&8Tch?2nL>oprPPsvUvho$hT7!Hwv zVd)$Ez~k#POOPzM#^b+pSd#`w`spP{k&4(>;O#!D035*7e(JFzM&4-N{@Np$1d-2a zp}Y){n(-a?^F(|_5suL?CWJOFdC=xCPu*@4w+D~6vqTa>+9Qdf+*E%1u#r0#lz*#3 z1QZzFWbSxYNGI1?)wwep`}eHXxB?(@rYi$^{{U<;gv3ke{b5BbQPg4}qz|Z2u6=`r zut)f0ez2mIk*jWL9Q*|&0#6glsWY7Y&fUO|n^gT(a!d`0s!Zlb-0jzXg+(?9u)#;} zE*2oinKXF*O-NJ`1^kMEm>dn>Ug&{n?lrD%|lK^Qvs$ zwqCs7i*zv-7&-mMu+z%f1J|`pncuseK*9((HXfbe+aPi9sd~1LbpTRl6F3dYJi!Cq zRv1JK8x92j05oQH{DDR335bs!ZIae1&v2^bf*@2(`e|7#dxhT7q>f9n4Q?Q9DR={;4c7>#8lM zWFV`TfT-*=uc4tcu%8IwLiqmx_tS%I!Qme2F>?>RWuoQaX2}4`mvs6Xf$CA34a^wE zM`IPS#ILjF92~M)T9~tGcPnpMY-m)I(FN)~q7Ml_8rT4>F|-}%GUKJJ zyQrrG%K3*DDmyKDZPI;^PuENw;nFTBBMHd3Wr|c}D(J1{f%--&nd2$Lc50{7Yt-(q z)Sra9+0XZF>q?d8Y8p~x@$REHEUubo&Mq2NyCZVr>J1VB-=5N+bgF&+y2n1JPCFeMUXRzFveWYVm)NFt z$k=l#YX1N_;i_>-AR^2z?Q{PCb_z$eLWMBCknmg@+V0ORf!=)uh21f#(&DeO6M^ zDC$%6auC*R1hK^WZOmF*%lUf^!rS6CBhDU=9zUunc&A65DBTv*n{%cn(0L`q+ps*` z6!(OPF(Nhg)N{{T2EY&sdhn|ID}7T&vkd#P`_RHA$LqKr2t zU^rp}c9?Cmam*r5zNg#X7g80d8A$ikv;>s}1@IHSWSwf0?=!1Q3r3p$oKV|#EH^1_ z2mnFbX#W6>>5Ig;iyNbFARYbCAt6p3fDyeDrm0#j-Hx4UVsAL6 zkwIsW^7}Z-F(&QZZ>T+L8B2h+m7V$SJyc?amy%Mal9ILdk96~)%vUfugS@7#@Zoq; zkfjAb)syvaNyD>Bu_o42m+lxX=`KyeRFDbbxTh*rDx~)-h9?h)laAj2UdN_J@T-?? zu{^bP*_PB$=$QwM5fnp)bit7y2u;n#C1j#IU45pck7@}&RX>X5oUxCu&Rj+7B}+fa zrCr>_NU9ZdZ?z4>8+=U59a0a~sG9en*2g>KY)OAHoUp(E zgr&z6$^QV%NbsxscF}&)e8T$D@g(|8+_b;dGe9^eM_Em)^{V3f#`%RZP#bl`t`{;D zxrNEtn zi$r~KOx!lw$wl3>YCA}GyVPrpV_hHghk;`^Ny{zc&Ect1OAgzBEJ?dG)=hSK8z1tb8{%+Cls=vC{{X*pW@E^bp( z3xch#Ri^u*s><)9`)f9=tuiiT!dYf}7=ATvc!ZK0S6w2=_|az3$EuB|n?DVL*^ z+x2Jp8|ee1zK~6=nMOs&T}xMODMgDy@<7xjT9K$g@2gBrFJYGpPA6}1WUWWDb#CJ( zKTHa#wspHVBE-DG*iEzRXY~lH>kQ|cu*O3+dD9tLhdt(2hEb{~mgb|K4lx;x6+98#21VR3h53p`HFC{MDlk5i*3u7*i;99r32Nh*N{ zoekyG&U4J*4f=);^{CZ%xjEZ(t$AZJ*}Qm*OkJ1T@s6>%`s%+A!txD{H-Cw@nllRr z6J@sCP5ugnp@Nemw$g<0Guh==ENuyGBP_aJE*rs{Q9g-|{uC>Zt}~`vi2yjWKEquN z8Gj1BPwrnx8D8mN>FVBn%V!DoEigUxM~ie-(lyRv!SP!h63+V8#lojtwZ*O7gpha* zK$^W)r!AS9SZc8EMU921k`FN=hPp&EmRGm($cg2>8Q$g0&4-m6+^dW-k+!v3l_%I! zAkZgBcP%F`Ee-{<^Xv8f=KhQXu7wEb#l@IB@MMtk=a`PREypRpl~~mGHqb zQpfhyR%+cUAc@jX)j|MsBbmalAt(67&u?T_QgTV0Hva%^h9Km4c55l1ED1V|YGiQ& zd#iG1fP>CyB1!t_B1gX@S~z4MM~CMMs>{+b>}^E-J-zj7f2++`D&wd1g;ZtrMmvp6 zdSjQ3A(q&VF3uRcUb&^XE?(+@K@vM9MDO4#dRc1WDpNN}ZAeil=k91->c)umHDFBn5(E2J{TqO}LmKyO!|Pb2?siGw&v*+jQg*L31mt z8RFIX2iYm7+C*KHkzMKY1Saay2`A3k^%n(JV-K+HuUOr~ zO9^e!*;p~PCBB%lW5gBW*NBbf+ZiKoS*P3SGa%d&h2xlNlCcFhICjU^C?br>i?eQryzQ7yApM{sDi#Iop2LPAoOfb|GS6(`R!#oBZw{2|FBc5woO z{Z|LqQn+O{rIHAkii>(rQl0k>p!{lJ!f_I`P@#2d}XD6%8Ptk7OU2vk+kaUfxnFcu?s9m z?wYt0cgx#XB%MSFAPvapRGD3El;Rk+>pXo%h6p8D z)g%p%4XFxOK2?iUEmAg<$Au+pk;8M!fg4J<8%+-3=l9mnYjJ45jbCdzxlDIe1(E&q zu%dX{s2_a;K`Kcgd&Op>JSj4Cfw0@UvsThLngm6}=c_>mK6L_WHc#6xF{E*I!}ZjR zNnM815_;5{iIh|ZUAIW#);J(~>2f{`oka4asEFfQktTReB&&IerXq(PRN_`WpXW_- zMnG;$hne9*_ zvoVwMTi=?mX4NABSMC-b0RBNc`{|6tO0c((N%U3Y%AUaq7#gs{N#uSs#86aPr%e%mY2FqE*-Q76|!X>JKOu_p;5 zt1Ko)3x`S5_oF1wKFFbLQ$6MUYSh```5Q4}jjL(6xlN)E^Z{4(spc~uNOw)5-v!E9 zdjq#+32mh~((c_r8*z0?6XO-0c-n9_Qt5b#x+VLC?OVNctroV=KBK@kg0F=^%@`fg z!X9T4xU$01ut8oScHOdI^X-s*)j@HW`a{ORIfJA;OtyCFtrRWM>eAkk6{`-3a_Wh_ylS+fn+c>nvpciy5$0(lZ6RI;95G)xH*@u(>js zQ3Kmm?&f?2d4=p30mDzp?2QSyc^y;EEO8|gKu>o%$v&w!q*2nP==~LEId9?r0AP^K z9U@|A2*Wx$%hm}SrQ5_Ru}(gW7bD1ce9Y%&1wfC%@|$axC@ zlmJK*;A>%EEFEBbD=hKVW_0Ovd^IiAz&1J^z#UjP-X(j8ET2y9=#-BVN!U@=5z${p z7*l9f&SAkCdVd7NE?lSxoz#@+nB_F3ywXSnB!wsiNafCgtTU!i%J%oRSe`niU3{@} z8fnH9R^7PtRHzXIaH>?Q*1oO#i{(!bhHBACc(9WD7s`ViP6?J-b=yWzu&bx7!$rpc z`YGZEuZ>M%DNsv+Bm>`E>c=(U8G|2X>>E;oB~B$x1QM;p$GW;Df*y6SP}-I>g9!x1 zS5giR%+ZIes;1Mr_Y%TVcmuJDQA#w(5gx%!TwGgWsr}Kpx3mDy&)gxhJ%rEIR5#rr zWV1JN3XHT|zLNwnfveN}jW67wUirAnrS=zZY*2ULN_vgF^GEDrGMX zNK%IYW4?rMx^2olzln>H6^h02W{vV;~)irN`CokSj$zEoSbK zg1=J2#W=bAiacATT>EabWpG%tcm(N6E%cNm2m%krr)3<)n)4O)vadi5+owlc)SXHM z?n$Am{P&o#hf9jKU`T|9?NE?`#sNG1bzZyd!178|`-wuhr>r1*hSkz^6OFQ@&pxrP z6*Fg)qu_ciIJOCe+o4#NF=J|^q;_3>I{1Dl-lJUfqmZ!n%Dz;&y-?+AYOmH@3iF|A z>>r%O8fU>fd?|&uYpPzndDGmK$TduQd>-u8KD|*dQYjtE{{W}_9^EAvUI3>E-fpf^ zkEt4{ZxiX`9=L7RZLP4|K1&Q3R7qAyiBqPpHrFBDc0pT3$vu1o{oD%`O##M)2 zsjF}l90<}SUW!hw;LjT3*(TYPXKV#U8+r440mM%V?Oh;Sj8`OIHq&J-IUOlRF)LM!b+oUSL8vPx5BEDJ2aK z9Gsm^PP1{4x+W`lIni3um8j2CjW~i2gpH^>q+GqxCP~Y#=6|?+)VA8VX5CG!E?s zE6pgRJoFL1@Ftjdqg-X8OE)iw+yPScO76q!Os9=qIF)6LxdO?pyP;C z_(e{+%iT2L=<8g{*`aKIgli8sjYsDoEJwDv70yM+p!I>byZY9G{xu%k0?jx>{&9w~ zEu02I?NqiDJV9)xqhuM5n{l4;yeWM~D`#hJ@=puwJlm{zZ>FEL=_NM@LzqS%aG$2T zYn34TIM8jMN?kZ$gH5)7&B$pYI+fz?zTAFe#bfHFInz#gaFt{DUR=f%9+oSWaOc!d z=cSace05TE<1P!Kh@3mEuZVu;d&6C}>R-X{l7yc~Ee=P7Dn2#Px=GG`17{A8>?|^l zBaK>PjNVv2?S>XI%pPIAJy>Q)<>*tkITChFNo`u^IYrV5=&DYdFJL#Wq^am}OgFP_U8 z2NO|paF+?5%FE1grr1#WjaSn z6w54Jq<0Ro-r)z_ikEGL<-3Q6$vrD%yM>YfP367z9<%EzX~d7|RQnruWYIN`ZCY@Q zz83usO?iN3j0)%>yZlzrl%-&o9ByO+c=sB=%h!D*UcS|(rg6RjYJ`Q9xIVh;Ho1GG zFocW>{=*Yb5S%MC+CC4dw-$weR+7K&p@l=&`4bsPM+cXHrSLp@#t@_Jnv}COZ9YUP z*MwzxCcKz0Y_68=*$%mRgWn}YkG`!+RDG$ctW%{N-+*4L55;n(8nrfrto08l0uPKD zFFhfy-AQW{w!@iPW)kZzTB>>MxTx2UJ)U*${IdCM0GUjEpt8!nczwezWEtQ#H_C*ZQDaVQr~q34#(pji`d1?FsAWVbpZ8=c`HE z$v@ESmzk#!y=*k@36?1Uvr#By@dRmE1C#iryOo7 z9q-K*%cOMry~pxmGTsG$hgsgCZrVB=yi=|9R|!_6kT>H#$gHWMcTNQ@cF1ufaN}x9 zz#aP&Syry8Q<$SXy&j=`Cdd=GJjH0JA5hrEWPo-fyS}tkM}${+@xvF<=Bpji@v4lx ze|NE>ph(sT+s3W04BI&;cu&MtMqmCu#<$?1!`Db<hOp-X71L<+Trvt-6RkxnGx9BFi5Zn?Zdgv3S*80p33z7Ww z$dB}Cs8n97CrSF~HiBbC77L;%P#?;HwJ4BN_*4_$H1e%e_@nmHRcL`aQX+w9Hju6X#K7mP zg=@C13I;r8mTb~a!nAD%B+xws1iCo4Bc8&rCr|Pzk5zBYR1AWyHL}aVei28)XbYMT zDL#gzkgSSphGu+CW}pQ1YagXgJ3??zgQ&C9mBf*Al~~{W721c? zYHM9OSfx5#z%S4weh%p;<6MPGObylzYEk&h1M`31PqdJBaqv4^T{mU5t5dcZ(^16s z6+Y^mo|!UJsrlR7O`*&=XjBh|)xr*$^#1^>TGWsrItQv~?O3}go$lYHK8zd${Gn!* zEXume6(&!9)hUe0(S6toMlXV;f0XK)KV5n2RB&_LYkH7&D+=|AqqJh|(dkz2GNb5= zOj8Y5SNJ>eH0{O}h2jjUp1Ji00o|*VtB8v89+r$9ET39Ht)UI2TH8uN8-kTV`l
      J^zD`jYh!H9qf5UjY!Ee&Pp+I*f>2JYyM&HfnF@;YOL&ef&+vRo`LW!Krv!gm zr8AlHTN^W&v4kG)J6Rs$O-r?20_?r#q6LG3LB)`x`F4@&;Z-=MUc_#0tu9!-v0qhk zhgO9swyhu$wDaD$(_JBFhD0}+@3#DKg?v*|*y&q8+nH84hk)emlS=pjPqj>4i}5>Z zn7oZ*(5fbMIF);;w6S`$l?*=S2Oh@rT#+3!=Jf9Ewh-{)3bj&a+^Uq0lG3%r6&ZCvqCQLWjgr+DF7)l)M8Gacrcd^~jPZj8;$1 z&jqfYWEmL$01?7Bl9MD8dT6bE_bP2A;MTgMuE&T)RRrG&k~XK6h2r7T zqjn6cesc_1`qJeIiJ_$v9vmt*AfL#iv&1^@){#U8+W3yegX-=nb(MShY%u+6VYQ(J@3VHYcKlp%x&;1o$eRYk`wUA)7eMa8wFjH$SBy-REq_sFVD^NQTyxqA`$ zJ#JdvE2(V{5gJ0w5)XWHsM&WHH~DK6wtn*M_bl0Mha7ojTAbLG3Emm^PG(w((;kpibToH98|oPR&zMMx4tSam1Z z2;PFP&WlHz)gYllK#k7AreM7tV6ED;yR>U_LRP&%Kt2Yw!>CG}eP&^O8WpGNBG(e> zBcr7T$v-67l9VT|E_h{^P029RWs@xjp$YS?P!|s`W-Fkvl z(!!Im-+}KYs+_7y`I|J;jTj}8EB6anwzq8~t7QpDJ8i<9N>D_pFnQBxUde@fg-L40 z@k#5`ZsBi^wI&nmleJTGVp<8Efd)s7D^d~*ir6-ivSYYO_*5Ibe=gxfj6*WvZKw}H zFZIelqTZuJc&AFaM+}i}_2u%orWxvxeXAh-RVdP&o`|ZZB8@fcNg-Ex?<3{JU9jdf zw_Q^D=G$SivZWOFjiXUJ)hk)I1I9BNZ*W`1JPRpG(6-7{6}GQmu7R^YYRdTC*|={m zG|@;PLyA#8#K5ZjKQ!H8Zk6CxNVQsq%R@k`-nok3_C(`!o&Dzx^(PvMHk?<2cRe9w zm+m_WX=G^%8%M^Py2Y@ZG!kEM`mP z;tgQSwzwltSf|9TBV_6WoKT>&b?81~`uF1Nk@Zxju#4h8Zr0te6(@(jwbR1Fo~i0{ zEA={+)>&HKMBEoOoWAEdeE{)oKIGML!vkV2 zF*!eo)Cxjb!?y`YQil~f^;)SxyV%I_wG?uu()keIyv1%*RHdg;;z=Z*Sv1m_xIL?j z@;^3BTTPl{Rog9&=9|?`8>~6C7%#efAtJ0w#(7n8cV&7l?Atn))6YlaYz;|mPo1rB z=G#v)Q#B-A6@CK`-@RMYZoht^3%YHDowh$^}0dxTsnM6qQG8c z`_`44uthg)ps{$_Le^jiHQMoK!?|&blLxFy*Auk$PQ`il&hHdw5w*XzNVjo^nl4-$Ay8M(1mG6sM`r-i14nzhtt8wrzLbIDC( z?iTuZr!h6d#iA>0dxt8gv^_$gQu5MMJ)^x)=UhFz>ultCO|)$@R*=QSO| z&o2{I`H9UqYhpbslmoR)t(^Sj8#0ijH3ahSre4Xm#7>RI!)_F8(>jyro;3HGr*Nc+ zo)bt`Iji{{wTSA$KB}&NAls;&R^a#T&bsPs&0i(WJT|3kfy8fmIJZ!r zH{-|(qrd3F*+S@5+=HRm9 znq(tT?2{a(k&N_7V`E_T`-ejQV%AxCbS8r_7&LC@PwZcM{ zI1OJ$d+D2uqh$SnWLT}FxQ!vV78a(`WayFjvS_;!iaefrEH2u$cVTwvY2*hGOoIo! zcho1kHpZGCHFmx{#>Tx{W00*Zu-Yqfgn)OTh3AGKG_lm2!=;f6HMY3e^ zkw$08t!<78ZPQ0emPzWK%{ZIr8x-E97YQ-ou~H9B7ne#WAIRA&6-vD&J%c5e59zjM zYpz{%Wo)F9yJQg@G}R^VL{<)y_o5X$!A%$U4_^=wu9CVmd`2bFeeH^sw_Af|2U|$> zHty8w^Djf!Kq-vFnsBEAK#WHXX6+&;g4r`xc$Y(#qf*)f|dN0O0L9%}u$ylx#ird@1S`9ejtX_Hql_3ts-SJj9uSLBl<@Sr$ z8E-OMr2#=M+JkVD9mNwzoe1Do&tz1waLCr)BwZfUbdjzzi*D6Qph7Rrb&k5(d?3tt)P2o(__o>@{hWa7(NymYuL<=~B}r1BBN) z=@+A`YkRvVFndI|)->U8BtRr6#dZuT4U1v{?WoVTqT=i#;np>z7($2FN*IaLmD43x z1xmF$HL2%8fMyF47Sq=)0UnEleN~m*F`O-g*_8%UI?@GYY>qL{R*qEqVy5jD$)pZj z`l&NJK`~oV-1baXpnEvXcU8+^W#=b`OXm zx1oc-UeWN>DcCMk8$&W{X4H~k8oEupN*aQZ>`<+XLBn%2tQRParpL2M^F;#$3cogR zNP`i~QdMT3#oYIbEEg#J(gXlzDJIm+k>OW{(IA5pHKA$_`x;gYlwNDT==V}hs1pg_ z#;<(H@YBb-v}}JQZBD^*kIf=v3PH5q3IO(1;j-Q|)|F(bf{-VjD-Pu!ngV?fu9N0z zBZl>OY)Cu~+nPzS-_|B*uqhOV%{&TeCd@|;ReEfXF}Er~vV@6Gs+EVBqg9}Z-g(k| z(8ui+d**OB8cDMpxAswB%uyRsJF5#0r*Nb1tG_cO9!8LCchw*7qQlHnX}AVTkH)nQ z$8hIX{$S*VSQYRuYgG3%uHoR07*Sa&PJ zH_V3M4|t8~K4%<3r(s%0sBmoU<4f~t;F2pw*-7A4?xMrZ?=dbu2-2rh z>RA;jjB6UU+S?SqYCjg`Vm`WvT3yNy<5QXG zLq9SCPG!1u5AdNY_=*?mlpqaW%F#;u&fWB8VPyCW+v$5fpozpS9Ov7zX#JHbJu_zE z33ZGu$nUfR;XouQB0`N}Qj%b}4DV9UFA-#qfzgxGPAoy|^4=8W>{Jxu55}gk(_utw z%Nl$7o5c@}a?M1I*Gdb4x`)@b8Q8K%!0V{#zYTIy{s)U7cei$v_Ee_2W6Fw-zS|c> zj%Z5axVE&D_(bpPtSS*DL*Gxdkh>`O9myRoWQ&BB-n+R< zFemi&SdFWkiACyU`|HgBv}BZf(^ol52DQcU+dDVeNkgkLnBo8@?53(V?P4yHTC=|~ zhG7icIe5srQ?8^TMK>v0NCtRQmuthU8SB*h=!gV3fz0xX=ZMKRNf60>t-gcGNcxRi z;8}dyT|3ua-aLSmlp)v3k__>KR;K(48eSoKyCyXQ6gh~;-EI-6mkO|%(n!radZAd`wd4XeZ++T0i#)=l9))|e6 zBgbkM&g2^#a7;t!-`hmak{locLEB;BNFKocWwNryaI2g;`RCN#z)Haj-3v*Op;7Rx z7TUuBcGAE);C5VfY6nw`fHfZo5kmRr7|s|PT5`_%%~tOyq!e4i!n|fj3JFd-o$vm6 zSjFiEV?y+gaN4}gF!P)=mX|%e@sz1lyMuDIgKSl9AU@NI(m*6gB9Ab27jXM!6X`Ub zb30cOOW4EuQ+MAuQGxvLGx4_!NPf#V8cE-zVc&5BYd@nr2$@GRYeWfq)k4YLzUiMcK9Y+kk!YSm z*_5I`NXemmLo;Ley86r8r|uMX)cdMjZQ^2?^I+I3(t#fuX*ZT3QsWOSfg7#|x}^#* zk98H*##O1`lV+83bg`k^<)nTpHuzTBvrEKvc5gg;*UpyKEWlX}TDHiEDpGYCljq^y z7>GdbNzy9ISj_6S#~Z?L(t#~o+b8ml^|e{qpndU*&Yg%y`>HycOMpelSUbsF&0%4d z<6Gz??-NCl7beLK{DjFW4LI_<$d9bki^bb*AuL!jo%ScRY8I`gt$l2?mjk9HEYwkLuS6vDja$y3)0-1qUV6y7h6ln(%DwKSxH7k9sMO$x#nrKE{3 z379+6Yh94pPc28eF9YY4kc=xnYNhNNTi%f?8s){O&~rlh}&Tl1;r-e2{PS~n2t2(p4=4}w*q^qgK(7Y2W!K6S6u3o*+fp#X?cMq zm0i1YZWMr&m)bKwlqAN}J zWK4>jcMY?%xOifAtb|@O*0l;$86K{5e{@NCT88?J#R2rkgfoxiq+zclDJsNm+*YBt zWXPsL`;JG4`BC4r0lnz|059Ba1l!!c!To5OCbIIS$}WWbqtX63Y(#Hoi8k_m%S`=r z4F3Q{xNC!ZWXFJtt+?o((37DqC%P13qjEPpJ&%-MM3+kf=KlaNVUx$su)eV))}$y= z6^Baw6k=yhpGg=XQoe=CT(>`1HRdX@%MC z3k&Qg5Fp|_giEiQe8gHqRFd#6{)*9s9Jpap_IMr*=L$(ZX7Yfc+(4Ektn zr2EnYREvA8_k$=K3`ZKZDTwoIMbyFdYKksA$FZ^8PvoZU7jtEBhF-s7+Tmv1M7G+@ z6>$3a3bSg~-sbh(F4pC?UvM?lE#!ibRJ|nlzy#Nj?7C*@j|Uo2o^uA2^0{pn36D~e zYU0<*W2BayZOgm7zlgYr0autplD}$_q4f$b38U0P)E4zA1Q{Te4r6N4t&pMs95|S- zKUsNIV?#C0ZRH8YIfCs z`G^DSqUnKi@>5Q1P!F=BuLNaNC=<_Wva!Z6JV`*|xsL+A)e+{nt-G4NKrU*y>Cf$i0$`#&k3vBijbe`oT zrakq`dPC}!jbVsN(4sBhSpi>`D6pCc`Xje(tf;VrjcsBNNsjP1QGO&8i&xfw0qPz4 z&}eI-a6ad6Av=so&Hn&Ia-#d@n^mRCoL6NmIjHvy3jLK9Ssg5Sm3^EoP<M1|NRHwJ zk9`peo0oV|SIO;mf=;CmuD5!XdCO3LlRQ0jtSKLOwgDt+R}LV}F6TI*rvC5h+}cTeP}8H;Cb+^l1CWzR+2$6 z_SdyOPDj4}4B(y-@fBB>=jFU$5x7v_+g6u^8)rA;8+&T2FaH1@V*`|rjUktcjrQ2> zOj;cw^Aq>WzpYQLP_7=jV$cmQlm0O7{{W>-L&V90@S&Xg-&tjc1nxZP$o`0;jfVVr z(B5||O_hN|3wCZ-vUzq!^%-nR8=yfJzz8(rSmCtIEG^xF?5ync_O~4=M zjaFT8q}zfH+jFH0RFTDY0a@m0os+#x z7d9%8FBzUgP!zCj)wq4V#QH*u1;_@?FnEpj6op~PJW@STR_SFbB}r0Gd?;4@*+fpA zjTQ@(rwV0z^$7lmr2LM=Kw&fawRmlhG#?GCes9ZhO2Kl6DVq%3^8-Fu8#iM`)hwEJPZqmec=6-d*;CM;aV2(Crv93qQwya-~*r^mpT0Ri5z`Y;7-MN*deOS}fh9?{3-kDA8cKPHc>mrg=?k%^*a0Rlb+T z#?YTqg(QWYm1gQlJ8TZrST0l>MNefra5RHxcMwb(xgiPkn09yR9JT@O`!sG{Zy4&$vuA)0-H9w!5e&Nux2S$Z{U0cR*Mm|cnY^wuYvKV*KHgV&$^X|n5KEK5PUo-rqQr5 z<5pLU>19ffSg6gTU^w?uu_Y}HHh`iwqYjQ*3C);lh?A{ce>Bj`Edw3mj5Ed0m^^7GiHYO1R{oa4fdjeR zpE0*H{IWLo(G|jFTY!7!hcm(Z#@y}rbbB|VN1&}+jk(Z)>;ZI)%v#wn+f9|F#jPpT zIz(|$+j<0E9!475?mDuyAgMqYNHf4!L+K9!RxO945ozLu+4Z1_f~i^iC|>HpEnpTU z-CEqUE_&f)SDw6S`jLA!des?MwOOlPDS%J1XJNVD#+p-FMEF&c%&S)Q9pn_G?Y}L! zR>;W1I9pO(#fs3$B_M2qJGY9G<$`4P5)AQ*u*F&G?NCVDt8473uUe`}DNRNax+<%r zfhF7%NdfzQO%P11BJ1PBqmTNYCHC8-1gsoPG~D-LWe z3zUK+ail3DPw0*6W)O`?b_XyiH=r#UtCk_P0k>voe`3AH#)@uQmQ+lF5@LB!(M0bP zL;^!ry{BS6jYwNyjvIGVHh>4XeI8XH@FI5MH6|kEoF>U^q0Xc!MF7a#l~n+gDCi_X zBfL=)2}xnOSdOemE>u0ncH2?k+fj)oHtq9`Y^We^3|4vd#*wA)kVL`+RBO<5i8H+^ zpi60yA}Ur^B1i$((Wt3zM{=pMl8!AX4nWk*IRmR)6UTbp`UzrBc#Y~e)OOH=1AstI z+{D(ys!yQc6ZtVsDIJmlBil{0t!N~yo#0JM!XGPf#X-0*dyQ|ZZCjJS4e1S_6{Hjb zNsj84<{sP~Aou!oJ0M78Hqv)Gc=4?$qySQ&Ow&qhN{V30X$w+E6q7tpbru2sxJPNu zQ54#rM-T}kxKebGozoFp0deRU^;6Ic^M&zCJ8%=ux7J)JK`9;elHlyXN$xb#fg7le zyl4=jOv>Le&w9Wa+77Q>BT(W8)k*{?NCWMr1A)ZI2@&Bng^9(fQs|$P7?D%58+Yz!o2~~^!>r(B$z#A zq>el470Ji{0C7X{eGfs={{Xebc>|f^Rf{Qo_+nMz#Me>sQInDJ9}LHCsGssmu3w$e z`?S5}{E~z1lU+Z_M{JRaz@Og(5PQC9RkEM6IaPh5Jxy{6TBmcU?Nr%^4Mrzoi$%;A zlD)gf3b}Z~&*vGYN)or(O16~~^;D4t2YtkaBtwe;b0V2@B|HX{s3?v^ajurlsuYlP zgWXRHBq&CXJMf~{3mlEyop>f1LdUA1JCv?B)nlk~fH$traK_1vfHali4e<$zEEYIR z`DlqtmQEy|GMEui9m`BCt5aZU8MWRTS)X2fg6!aC~A4i@1o2p(W}gm z2;l-Mvge|E5Rj(Ow$J3K*QFlFY=Nbsq{%$ytKP`YjgYZEDVi+MSo1sm7F{BGo2!KL z26J;+4pn6utA8QZ4xWKVBtZ6E}!0puHQcmYmQjyo<=L3-sM*9^Vnr9=t#6d*ljaSd&5)F{R+J0&PMa4_Dh(9#YsGf0%OB^GQ`Lj zW!WZ3VcnzrlFbTqHrQ(<7QldiHn}G^$Tx*zS)stp4Wud|8;P z76$TDz;WkSs*jTb&-e%fl+_yq!bvf-{Z++ByO#kz3P7>|?<-c-m&A4U^CDERKcZ4F-T2E)Tz4>}3lPp^zJ|M5W-96}lV}(&9f;%IQ#FNgh@f9C3aOoQj z{q;!5nTQ6IMN@Ex3n~@}JD5_dR~tB$ECN)5KDx{%4U=IeH&joqwRQ(sHElB_a^8kc zI}mYUHY5a-^NBn9>nnJW0??2Q>qy_%Sxy@j)n2xwDBp)O@vRa}$1WgN1dY|O?yYU> zuWEdhV)8uEK<&agbE?b$&O3~E>K_`iz5Wd39zuQMtFRdu<}vx><49%F;7BH;+7Pce z-}%eGtxu8KB$*?G)N4OQ@(=TeIet|!5~ssxjp~ax!L+hY{{X@l`l7Ev@f&b8L7W|J zt6K%Sy$SP`!6WiTDQrqRlxbuXzye2wIF`XZorKn!xwTjGmgM)CsR&yzVfMKGII8q4 zxuhVD1wi`EIFzXUB~N~%PPT-q2q`i@7;R1^qD&wSw&P4!8|sR;R2k-A(hZvnI*SdG zLEN^V*;6``!$I!hN)3?%Nsj0=SPJon+LW2IxBmdaPwcIHmu5tpCR6GJd!W^jZh1(W z-jH~12YnU`mBS2S9*b@##V;%$bk=#4dN((TkMf}WQfkLXbU_jAtSFc%6j&}-`Ln?G zZ*C*S4WI0a!*6sB*P#A&u=^A$#Vv!&f#X`=6OA zPbD}$!&V`Nj9^{aH)pM z=ouI8kv~bKAF`4yuam!?Hm)(M*nN~(2!_mZOj1>A+Tk(ZQ$si4`gV%jniMMwH`~KD zisKOR9~vwdAe%}0A72VVw3DzW#;i2nfF{MW`L_f1R)VfX&KT!EMdX?+7c13bIO*fx zO{&Lv3Fq&tJ!|?{ec;>i0-};PTB+Mqol08K z%XW8e7igii(@{T;D+_HXLS1a{$wG?- z!SjSNc(jk`ib28IBW6-PTYM;l+k+=!e>iViHiv$}Zq$>8M268^#@-^ERiO4#uqgwIu($#|;YZd1`ze*%UGNJ*^`rgtM!Rvy3SoBR zkcw6wU~z5Tj@E{b{L)9;O|38L-IPayi2EpoY$swsnuPtjXHZVmSZRZJnpB%rlH7QO zO-F5>5itTP*BWa@gQN~$Z9`!*9-&dSiC;r(HQ&C|MR^Zw(T5)8tMv^IwvEJ5Hb(_H zqYi<=#qZtNH8}29C!x|3b_cj}tU*3Z%+-gPX9erc|ig@@n*MJNVTV`2F_bd(UW*{TfUVMYQ|**5r-3o?K}FZxOLPYh_1= z4~+m0=VE-$*n`3JNFKT+c#yN+e`O5kbtqcfjYbQ|KV1^M0C7SO0ms!s+-w}pxZV|q zVAnR6mwj9J2TB`LY9=)qGaC;Y8N|?sFbpNcC@nuHETn_97gfL2Qo2b%ULx>N)%%di zlgqYhGFwWrmI{cE+|mT|msMVBtQ2JCw{P}6t{QG|RNB!+FOve@V1=3WR7cwE9YbV^ zHF0prN{onteU$>~A2z-oiLDTo%yl7amssO^Y+G7Mj;WLSwQq33bt}9WpBjOVBz%^M z5Dl{@^=iOkRu0`Zz;z*SDi9}gQl$M;4k21##$rHC{{a2kXTx(;7pa9HM#LH^%*~HK z0t9tP_sOBWKz5NG#O+!lW_mJyp2B2pq-=dvD+56&cy|%)rt|`oEAj`zreH|TwQ4 zf?#eA)U<0_K?z9qO(iMVNcu7Bsg@}0C=xIdL6zzC$OHYG&wQ*Rpp2uyFr zp)b%I{VEU-TanhY0R9mh&*cjAFHB-`7B(mOTS7fr>(4geb&c=A#Qw0aLG;8_GBz!# zCJOCld-bNdJwyA7AB*UE4v_x<(&B##2eYhvw7BA&A-+B4Yo~cA=@~B+PQd-pTmJy6 zHOsS#lyRj69Vs|dLI*vKbpHS)FiuOvl^^>v53IKs!-TtO;G9iDrMryEcJg%P>hi?TO6{jP4xw|m>; zwn`_2xd-d3ChqJm6D;4`xPKw!pKluTaVX#tIP7U{xB!GGfoyZ)Hz1; zTP>t2Af|amdDWas{@p;ch}}2fmyKE5=M2qkxMv-@8g_*%SH_EyQai$u-tiJmB}^cV z`H1yb7h|NnnKISBGlxHBucU;IKCBb9NQ^@L2j~S%K|8pejb$Sc{s>I&7L)bXRG{68>MODuxShz~-AO&I#}0LhGJCvhK$+vu z#=WWXQH#MA>l4C0BCD`3sRc-)h8pb*H$Fq7vE|et1)N4Xv z`TqbJcb3DoQdPeSjcFZQ)5P36`o@@v0a7=RM-x=Jv3hN+k_;01`F=>Nu`vhgs!Y(C zx3bui*RSdvYk?R!_ z%ZWC&s#F_0ejGGMz|xapVt<)6;!>rLf~n+fxg2T02HT1(D~t;pPE5Etc5YlBZ7f+c z^j*A1cAKxTgHiwx0GJ%pSII6X@=q`P#12)TYo z`9nYzqWcUzlwwxAW;*19^_p=G+AcI*TdbY{I+OO)#Vz#+anj`eI12dFYGI`ba@yHL zm{qf8eyRfE5ZXzAq@PlOrHgk63D9T3CYv~R9Tl%iI4iSaloS39=Tq=iE6lBCblm_rMeDKp)B(K-9OIQ} zB@#RMO>A1WCrj7K@fT`8tu=|ZQP^S_fFqKW+P)~D4Rt^b{nV1#A~+5-qi+26aZ7>u z*3B#61!yyOKgNu0zi!9-9Y1 zejv~YZ>!tmwQH-AQveY`?!F!#s&pIZpD?#k9Fcdw)|$kN=`)2W$lFEA74`}MZ>osl z>xw~O6FNtQJFegW7lhspM^9FNwOZ>}w!A+O@1CF^f~WzbZ>BpD%*AI^Vg!PFiKl$& zq?l6|Y2mu9mG)9i^^6jy92})gI0x#{pj<&pgaD;T6;kY}}&GsM1&sz|A zr9zG%GXpe!YuBPkK(!rhhtbLVm z<6D6Sqdd=ennSoTj&-LGcrB!I-7A>ix+*J8!~}`hRi0sPFz2Iz1LIKJNz#)$X-^+j zN0L|2#3$7>N0KCFY(59mS0BtZLWK8G4on}uY&(YTDnFoVNP{{O3?y;k!@9Ar!>)h9 zr;o0&Bp!bQ z8VFQVs&#XvPQaCL=SU<@>aFg14+=IAJ)Md3TXVe`Lfmg)2c#kuiM_^Pevw3B~v1BMpQx3;QC z1m(;O5IZSFWq>5Hv11f-2VSs8NA62I;v$1QRJH zoE?Z&h(nCqm02(XMD;e{kLcC?#vN*hjl!*2){;P0fv9a&_@g7u5w!f%0P{aah;Ngm ztZx909;&vByiQgnT4y`V=ue-d#>J!#9wvq{L=^QxJNSC&%QZ3+h$%6*R-O~%LYT8* zDqtQEPuE(YWRYdnjS1W61NBtA0RyVJKbAOB3s8j5G^V8G_R^%>5+D}@N2-(9Y3fP2 zZdq`VwuA7X#DGu;JAt(yT`~(U&m9Mks)3T2Nj=^h(||I*#U$Mc8)!8-X@r=9BBNpH zo1OU})YlX9N)gIrcT|}Y^3fpKvNVX$BB&HQMtGGfh;0)#Y?Cq)B-IL%0V9Uz<4{DI zTYtC!>}lb$6TcLJO=18*-@cy`TS<^acW+Z7OT$mity}L)y^f^q18!7|G6Gf)GfTu{ z&9oABB0Oq5l3NwafG6Eit-k`l&ZpKONgedXv~^3L#uYWO5!4TyKt1BFU>(4i;Z*Gb z*C26{2K8|qc#myDM3GSV`S%RZXw*xQ1P(h?*Mz*`1_@a{s)uqVKupC+2#`l-oDud^ z>vW!_5<98{Z4(<+jl2d^KZ{9%A>M6rciIO!hj0dhXKz(Zygxprctt~g17ckJEcd7TNASO&ns44syB>gi& z*avOM3PC0z#D1`^LG-}1uOZ_q5x<%!dbOu|^Xn&Met7tb@4YS}dOyUK1Q3f|f#KRk za{7n2p#K2!`W^0){{YhBSNfh`d_s2p@mu(RCTo{xSyn8i z^EgvvZ{lmHc`ZV+J^XAw=$Rk+MzzP;oVu6o8S0nBIHZxbrEE8i=xaOS&*IoKR#wiX z3iFgK75Gsb)7LrL`fB6rs_a~9ZH>O4*Ha+QY@C&kplNJcJSY4q2kR7va;9Qs8oo*{ zM*jdb>Q(mFNntRMI2jcsNtu!Cl0K?nwDUiNwRIcst)&h9 z)z|_AM=ymbAnPVc@jR#ury1*+NtHMN@!FJ^Q?5ez@~*_YYiCS5Zpy*rropIgLl*9D^j`gWR>I{S30Jtgc9YS*2R7#PnwjGwz1(^S%?q4%77B34`pRI z>{U_fK|V7{gAfSr2H&N{b2kUZhuADn6R$dxOdGiV5H;T!qGr~1a2hs3}E zP$!jA=C)dOixBEcfO%v>ig(f~>go^likp z+NbNR1A!?cZyIqEAPNA)+q|Dc6m;*tyF{7yDz+H9A_gSX9{V+Yl;9j>ovCR^36J;` z0NPr-0BOF%)xXne#Giqsr5B)xa|~4f0G3jIB9s$6YkGU*Zwdn9Qk&ps&8-w?eK)B4 zO(-J~K8_frer3x_{?#Y}GXe!DHXuL(JSeaU3BCh-6A(S+2}=G3v{v##>oCko0CP60 zKLJY(qJIXM^>0f+D3F4r{%VN$Py+()+hSBVNumZsJbeyJnT~O#n89GQHCCY6tOF55klXwMa;wd}fkuEY>A>UL2#& zY?>bgiq9~^0zp;_haV24r}b1Q0b!*GnI5{u2$Dn@nrK*IvVU?|Njv=8uOr~PSD9h{ zift|t9NWYn6Yo)=1?-t3BaLW)NYe%@Lekr9E@DWI>_Dsal51wv019vMLF;*?kFB}@ z%`!Kv(g55VPn)cfqZYmq-*0ZO?26c8<9#@}Kj|>^e`R8Tv9%;e3QnH!%D2>BYz8Z5 zC-LlDAFAajHGMzA@U=&JA58pc6^8TzNFpPhVN7iYen8T?yhcxJ2~-IYaPauIS}o!{ zMXiGS^j{JB$P^6GLEZ`dwVGj7vM~|=095Kc^jQRxbU3(V!dZke&&HS|}jMQj@nO z5nB01#VRFEx}VRsbwAmpe5Hk-`pVfShiH_?yifzBPNax=!9C6%6|S-1uFb=-$Z9l! zh+%}s%9daF=^qnH7gmbd7q+S#q4a**08w%C={ln$ma(>zwi8XN#=%3ih1!yPlA-WbO)R>fXrG^BHaB9L5yZJ*#VCnNH$Qb*LPVQgLQ zMeVwQ=BsrNg;=Qoh$4I`hZ7uknk)rk+PjcLmWn($Ek9*OcwC@Pn_dyKsvi+njwEo8 zZ-qpCxd&+!Sa${UCtdPm!AziV1f^i}sDUx07}yVP)oGd0`;z?a!{b%3Ku*RqkASH1 zO8OXpV}|^y{{SXW-9{d+TGluG!&GQIlzeLUDIGbEz=-@Jp!4)iG)0{N9?D5E9~wdr z-zxxbp(1^>w31RIx|?jx%aV7{J~d%lWQl+e1LIUzMst1~BY;;A&8xWpLF3A)E=c>Y z!@%XJ{{U8#8ZXZs#^#mBn2OQ#wx4BYlRfmr4d+v-i+LZ*B0cm};?>rYfjf>=Eu6>R z*27?Wi>8OF(yi5mgbP`+8 zp0ENZX_{5~eqv*otzm#mo~`M4f=ITL#E@z{l3NvS`Xo#mjcxcf?ewZ!sD!CX?(V3T z-h$u)HG6ne_#%l6Zt4d;LMq}CM%$iZshQpM0y&ReU4-!lIMgIb6z``^!qfRiq1+SJ z2;s`6ye0L5H`INV3hVHLVHG4qd`6zvby(YvnMT~W)qgF-Z8c!X9a3j)sWGA*;G35x zyi`kp*fI4~yRdroco-E9d^m~e^m@#BX1H@M^sC#-Ji0^cbaM+K+4d)U@B&diOOFPdVHPgJ7xAB`cG>0lhwg3VBiiLriWxTUO#^K;g=^owf?$w+h8=xZZj9 zP%{7=QX&Tm(9^W0kfIa_194jf_nzu#TNxhUYY5zMrJj3_bzpcw+BcEOf0`;@ZFZKWkJ5+HCD)vpr?DesfN8s>S5Mq;@DA@;_z^6P{;sS z+!_A>x>YG`N;{*=?HREk$Kbb-RE?dJ8|*mM*d*a#g)3%Ao-tIdn1d1^bFM1X_mk4W z76;m}3LsBdqfTCv*W2&(mHMWd!4KX>clpIrx5wvL1P@7L+oqEywj$y?*t$1}5$~#Y zV0M9%JCjz|{{X>VjiDotE$W@1o(ddx9u%XnP3jV1J6NNTl^Gto%d@HECvr-Ds!kQX zgJmK+N-;Cem31NEq>Yk9A6+I*Y**p{3ssc!Qg*DZVgw6fcJ$JA9BV32E1u*{h$CsF z@aMQ4)sZKc9{SPWkE(0hpCuW+{tlr$2tQb=%mmIajB@Rdbk&vI`MSu6l=JZwS%F8& z_`cig9Z>sB#h?Zu<$kRvu;aN>n=29{%p3M8LZ3yQj=>hL zHy?>`p*5z*BLI!5@en}dYBncxXtlP14qkvi&P_a6b!^S zi6~FVmrDHC5USX35C>7f@gNU#L0<~Qu+07q5#6L#!!3>oOw9tgkn@QIIfr6NBayXM z)Y`ENCdbYf&`;wqp;CZSHVRr}xkP*oI-9%HCJ}pd2ZPEVZ3EDPF*jf{!m~~_t3r8;=2~AB|$}u3V0_?Qyqlq$}c@1Vl~En&+#%w^0IibW+l$ zPT}Ur{{ToSYK3g&wW7y*tl2-=q!w*dH^VUHN#1Oc_E0lu1Cr8bgeX$_wG`|p#&}a+ zXNQ?8!LZ*Lw<-82RtqdQ>0tIV#6q4(`j!;oX#^b($Poqt<$|M zdGOrec$kg0ZMA$CNm}jzAy_^tp6|U0_!B^CG^;#4U6o-NdWqxrxE~5^;n-q{KP20O zA3;h-!k$y*A{AkYpng^!_t=_kc!i=2t;bQf2Q6Js#WZL=L>mk}JEqOV{%zZWlx;0j z=%)P}Z=(HwZ6M z&DhvtjsBI9`zmix>6mS2)D1RSa$vNvKaywy5oYvkFYFcTVZ_rbMeu-EhO7SZNvVrM zl3`khu9{en3ERNX7a%%|;5TN?aXyXMsE(V+AlRh-ZNe(a;2^={#y6->vYV#^c%vK8I6s}*AX`(DVm;iSH?WUT6a^!L9#Cz%3gn+J8 z(`0$ulgB{i<5M6$Nh6GHR97nf_*f8mE8$m!j{VPtQd|&oeUAJBw*4ARVF6a=40~&P zgSQ_VME0Y3rAV2k0Pb>;Z*D;TRUaBCab2?mgma;s;sLg1NAig~`sjt+Lk!mf@s*PT z5TLFccudl|Ta7D$dFTaV7hr-3!kUQx07$Bc$p-<#5)}Yp={!Fzb#>6PTvBKYZI<*rTl7cuM`m(U-kEN$@JT->8EzM=t?2^*ZaK)sB1t`aABVs-E z=W$Lkp0A&Gf$VSz%9`^1zy%$o9{H%3JF>Lw4wGF<+sVVHtVAQK=)VzYENpIW?OFPi z?2mO{Vctc4P`I)}e&=wTAgzgi6ARPh4JCC)ZB1__^EAp6Ye=vI5CJx*KvZ@Z5PU%W zv|o6cad7~Mo%}1ItH}31p}#lBbH-G|3rK7zsZXqenEYg-u3hqXz%9#)#=3gT_TUcC zZKgt|JJ)lyN|ri=7P9?LZF~kIq^}tMhne$QLa~QIJN0dd_8Jby+g`hPPSCH2uU-ED z_&;n|}R5NY;s(IYypWjLl9K#wyNmM7!RzdI@(^Y?*xa|+jzxOZ4&hCi^%{eSc`@{q#;&UKFFttzd!V0TuK4yw z$!{;NR#>ua!SvfJX-C#jp;~JtWyF)F-tE0yn#C^1vv&p(Rqt3Glv!%!tu<> zXtS-&NX3hSIS5)52;ZGjsl4H2=zhmPUvP~VcykXV$BH_$S3|1Q`_}x?OuAJ+y4}79 znC_Wd2yqXv^F|KNHl+M&w$!CaPzy|jPZ+OIT;kdBWTN$~r;DO{LFS*gT8HTe6I550 z%-tzS#kwHD?qx)mY;hI`9^g{h{{WS1hf+_4@R!viEV^a3llZTrI4cQ0a?~CQ6hKl^ zH%Al1*Fn0-ul1o zwB@>gm(-=;YDZ?D&**aZ#N4)$N(a`UeyXmz z=+hE?TI@0G67YYMxZL}uu8uB^``@q7rQqu=ZTbR=n3?6utXSQo0C`l)tc9BG%o_&W z1DkG-wkffM;?NKg=VE9KGu@xAYDNLWEQtW{39{PxoN>Wd7jp}WX?3nNM(8jkDdLan}nVxlD zzfwE(8nV6zN(qiUD!C~=NE5+Iq9DaIB`M@&PrkeV081)S=NwPgl4`W4FR9^QxIJN+a3Y)9b+^Mw4PAW8WpqCxeV>YhshKXAC1 zkNu%w1OEVaYm{d76Nn*7AN50LZ&|Ldf#b@RxZ-&5 z6om5v44us`IqZFu0i_a=AP=^%EFLw6HrVgZDI^I4ZRVH@CVAGAw8siag#!jb`m1Db z>Yzr}nQWaTn1~!rZ6{!jAB0RR>1;Mp=>-CiU`1e+s?ENH{(qon#SZa8Ldc zz5f93r1m8Z(dH@r%+x=?`>KVr07UQ=f3U+${{VsS+NfELrZ{lrTts`>t*jDY!fd;t zYWULcAiHh|j@qZc(KOx&ue^yO4z)znm&ROYxD_AjnrxhQL_6{Ko3f)M0Y2KOWWq=h zzs9Za)uzqh0p2`$il}ZTJ3nZs$6-%!j|hWgi2_MK8eQP|JMYwKMS|vochCsLY)PIb*=hdO zI1_)$?+Q`wA;ibmTS?jhF-sgd&?8ze#`>_ePU0>WJ|ec1;zVt0V6V-+kBVz);~;UZ z=|=#R@83?qDJ|lVCkjbFlX`>pQnX@l56G7Uk;N~zs!vvrORGlQHr}_@pl_gisRhgm zy&aX{xPbK`C+)4JcS0uz#D{z^4&K9CN&xR3Aep6rQb|hO9;K1?&@q#El%Cz4@<#zS zs;pKaYLf(9B>3B`eU&8++#*Q0d)L;h_S2qsdY?x2=bU`$GeEQ;{HKPI8GdVLj-&kS~eJA*x=T4$Ff`>+Mr|Mw<0tsk5yuj=OioLQT)dY zgE&e@=G{6y+nUcY!wCKbbdLQO>-$qc4<#;11S)+-lx8D(WZ2jQ_EU+Z^C`dmsI8kz zU`CsqVLN|}Hm{0B8;Ev!5(IIY!yJ|EriH2jgyQ(H@GY{T@vVjwNl?cz4{e)7e!Vaq z0C-j^0Q7lNLf!4a$DSXZhJ)~3Z_Vz9Xk)hK40iD62f&&^VR}yLh@HhJOzk}BJx%Zv z@~#%I1zSFm`lhs|@4%6Ff-nB{|$-t*A!eVEbag??&V3)o@tUe?OO@N;6@Bp`Ipw``*odGE&l-G{pp@M9c6Lu zT^9=p4J2=*N${-F5+x&X-QP+m#D@O>bGXLa_HFfi38bl4h}l>kFhBmD;rI$J78R*+ zA;pg9QKhEl?E|xP{1dPa9yJwLNo;)OmLT8fSiC>8O`KN`NbS7h2Qa1_5&c>&8kPe7 z`~nkt_w>o6D(3CaP4c2U(hXPqwS)ouX2MMGs#Eb4q~jPmi7Cab=ZE3aKH30%XiC+s z%X@bZdaav35lpJm&0d}thcEN2+xrD5Usx=S7>%O51;RM{>jR9eh`49i>QCE1YDZof zg}Es>Er9RPf}epD*U8vwc19YMf1|i{Kia9#PU#@}h@^x#H_(05Sq0l5s?yae?6Gu+ z98rAl+Ny7;NZk(NDIfO2el<01sBBP2e$>j6r0x)|9n@Gaas#XclNY#(WBj5NKD5*~ z*l^5WU3Yen+5XL0I0z7-!*ewi^Rx~VJZP|ie9Y5>3wm!Bur$amBu@R{R0TkgHu3gV zu4Vw?kB;)6jaDq~Wc^%rsPans7?HFc>hCH40DM+5Ij%?O8l+5(r-#*7c~JiNu>JN9 z9sdAC(_4v$eZ+fdw#f69__jVYpiBT@QV@RmSRdfQpKVNl{?QS%RTJ~~Wnv)dC{&LA z&0UpnleJO4qH}$T)4r8>@}$OJ#PBq<5)6UB@uv4XfxRg(M1!&4jW8**O4wzKH?G)A z?Tf}r**kTq)+ICJ!o8%7(b7%jt+{6|WZb_CZi^Qm6Jt60JlA;QdF{cx1*+^ZI{wN9P`ZRux~t#Rd#fIDl^?ncANa@QzfC21t; zafG;_VkfmVYj1;LmW`BJ;g)PCh)YbRFnjhDDJnt~PmIYlpt3;r%|*A%C6ys4nWq(;>l+m$NiMNY0144&Z|(~?%>X(%REAt^NxX;L#Atb{EMw1NU$196~nrEDM36|HHK26LQZ^<%UNy0% z2WkneY2c~fzIHUgt;|PW4{{ceq@kq{2GC7%i%YA^CKA&tOK1mzP(HfqnUP9H2Y5!( z+4a{g?Dc6%j>?W4X*SUowHB;f5KNUkmk2x*fxRJk#w1lKcs2mpAt1=6R|N9aJILkV zOu4{8jsS?^LX#t8F^OK>-8hkQ`kWyfN=DoAs`rARqhrP@YoHYnqEGCo&!m)ryn#|o zRz-5b3NU5{!t zVbVNBO?@EDKqHRT4Pf?!nUHvKt76Kfaj!ak<@Il^w^CAeQ)xW7(DpHe;o|Bpu$xB~ zP?bq(Gq^FruF}eva2p94lnjs}pkrXC5O;5&*!L#3Q9?0M5ikW4) zRo-Y~Mq&VHLEcQ&XbS2RztUA%VgQ!Vd`wkv2hG#J(p5N!+9yg#+i~%({nEOWu8*-4 zl>_&^m$ddPfg*aab{q%SUFW3at;~anl(+y*rJ*7?{tumU`iHim_`ZjKqyGSJi2NY- zZiL-3v$WvN53JWz@>wVDD;3|f_dv(Lt1(=wH-eX#i6`V%cRaT>)%=z~86y;OC-=v0 zBmV7Gt{%_%;&STyO%GDt0v~h`B`Z+ct1)q@h71Gq!*69++^CnG-)%;#aZkarkU{yw zKI)MH3~|&oNs5v{QQSuL8Im-_>?4Ip3OwNWcNzpPViY#sDb%SzNr~{LyOK#0N(mbS z%h^E1poOUS4~;lUI}x=sltD4EG^yaAOm_+Z*-;_^AXcE0s2DYb9y^-W=ZWNEn2bmx zzqQ7;PWnj(D@T!&yh*xF}>*sOmt9)qb!Ld#K96siJ329YP(cuFsvLk;w ze4g{Tt6XeCQl2rrBoo{u!U_33sOF_k{xs#+@PvSV zgcIFNVCtI&^&Pb;Ao7}e?EK&*TZEYr<3lADK*WIab$~vSdB-}+P9jg6DMN9sJp5}Z zz=ci793;mY)}hQntki1>*r>&OQ{V}$iq+`e^QuS8ON4kdGT?2sbn{XQY^ekrHX zYTVDt7vp|qqy3sgaj}>Kx}+op7>+d(VuJ~Rrxd+O@waJTV5Oy{@B6Ul9kpTTpQ%-e zFgR0y03>=`sIabJZRD8wVZQ#>AIIFfa3buH7`7fyEq0D4Z(@yTOo7BwfR9UR0_M`2 z;2>Y&N{%v@g(xEs5<}Qhr~Ip_{>@+k0tlXT!scnjNZmMDJO~$y-`J`006*{kp<$M$5r*Fe8&lSHX3Gv?flN?xg?#0#qlsngCB* zayK|WCI^3-&%oA&;6UEb5Cm}h#n0Gj(5Dh~hgJ;m3qQ7&E^Y)x%fbianl&DTZh(9UX4_nEpX720hT&Y9yl9TpUD(U00lEQ)F3kg4EAR`OgBf|FB?X*0f z+e;5Js3PH#4+wE2d}-dWENNA(k=uc`O*W?NmLXVH8llXaVf$ze1%R~)LXvx+gGvZ^ z@1=Wj8hFzlYla@l!E6*q4#6L7XPIF{&&ZbP+vvLDW8FreNC|hFOA+}dwWU!dC)7k# zVP%EPj5%o>^xiltV$#4W65b$>6kjO(MH+zdkU$`NsZs$v>4Rx)1fuU2N#z$QRD0_} z-5`(Mj9^E1R(>=OLGVNZ54N^U5CMu~sM~CJ5>JAy+E?3K^L6Sva|Oo3>EX#c`wcK1 zQnunxuCrFH$vbz`Jx#$oW61H>hMm3Dy%%yL7sF5I*}OgQDF|~yPUQ*TeiWXmr4V|A zc!(5`-QbVi93+5ulsu4rs@9xCP(E{ls(1bn;(j8473S=o(pqe9$N^ZCgbvC`j^h=h z=loKf9Z|wBBMfwsrCNa zj$6h7+Xq6swBIy-+QQx}kbiJ)R1e}j+KW_DlVg(y#51NpZWj&*j>zeUt%;vBR7YtRD>zYCA0opUM>x zHA=nneUSs`E`8L7Ux6_(>aC}8ObSGW4jgN0j$X;jHcn!x8(z!`eh@NAI?X7E`5d(Dgm$ua<+Z;eKDlf@^xV``Ej$Zi5v6U0WC`sx+HQ9+VNd70X#xS3HTfFr)5Jp>-m z+;giD7FRoR@=^zzpo#qcJmiRk_?c?20RdAD!(x-JBh8-&Xu&$0bF)XY^SlBrsXr^i4zCw zs`nr)0kuzkG9yugy+M2^K#uMEt5g}9NCLmoFRn!KeSaFSyxF*(bw2WZ^5hZxy7%_f z3&SnXb$6k%I5O`sKte|Qz!fseG?HhJ3WktjGG+iL-BT=q(5;W9#)c$o5RC}jk`=lsZ#!|W-Jfy12J<4~RyLT;wZ+P; ztzifYGE<{dMSUd9=HepKn88oH-E*0tZqJa{7ykohd#a(C&0~ zDO0T&^AImKs#k8H2>r!x(&fE%uO+h?D;NL*24c59KY~?qZ0KV71LzDTw2x(Ve zlJS6{{{XaB@_ag_R;X)E>-nkAtgTg})OQeGR3D^bDWu@ohBoI@hK7rb9TFy+&s2#jHCr04w2L zF$gjWNgHw$pxT7?%zElp9gbM6KK%!`hg_%D(Wd&RfjXLXJ=&Wi?5?r`_w66I)mY*Q z^pX#(3VB6il7|uiCR6JXTkBIKYX-Wi?AvgVyLOfi&|4K5SUwoCdfYPKj}VGh3mnD8 z5@EFnjlu4%fhV#-9E8!PW9a)W<_s$D3c9iC1cxalfgiaVybX%iSP^~FWcY_ z+}__V-rTe=9&q)pFOITDJ|60WQ@)6HRw)1~0%Qq1YXV^Kl>CBU6L^X)qB$2kH15Ou`yH*ocdIB&G+sBEmaqPj{of3V--Hp?T zFr(b0kx`w=n92z)s@Z<0BBfv`lm`0)?WUK&j()nkUQx^oeZOBT1C|;etR0of>812|` z3PP5!un#e$Z&3ymba;XHCd7$RxVY!yD%TrSU^uxcB>9EF_59kRt2#XZ(GTZ=al{!fskRxrX>CLd=#tUBRrPP$B zQ^XGH<3#sz;3B~Q7BCC~>Z6r8b`)G^Ob*hfO!73|2epyd{t;fva^w!Rk~tN84Ge2y zCG?vol0hOkA6-+V?l`~#D&qAdTE3mkfj#_cp#%kzPQY;#kWTjquz%n!zz4Lb5#vj{ zM7o{0COFerPSz2s}aPk66te3WYAW|hl_#8qYmzAKAw^vA}mu0H^> z2QVkvDz^b4Se`El;<53hGT@LnZyc&Mk@=Sa-1W{x^X(daWRPc%Axv5VT3mmIbC=~B z1V|eKNR9rwtj9y87QwZ$lh&$Bq=D#;5Gu^b2fB6@TaJDX*zh6M52#S~8r+83ZwP|! z8@KsK2gNk}&^{uR6Mjb4EN{No z&Hc5cfJV^=!k46Q;q0IVhH)SL)V;f|STp^4SVj2U;TM~pN@)BSNz#RF0Mde607?h8 zfoLmD@bs`;PmlNntKh0oHv@IySeWqhMIVJ|B?HkOJZWj#N>reH4FRBn@dveGhz&eu z$=|S6jpJ$A#_p0v{i`Q{{aSc9@Qa=yxaGMc;wpci;u}UGaU8yIn%KlK0l2<TsH@2z=x%3~loJ!kL zdoDI)@D3;T*3{ru>$bB|@wG?nq^Y}g305125_f}WiTF{dXeQxIreXzA8jo~p&|&GO1W|(vI0bRZbdQX_;@mwZ_qdNF$X_w zZ7f;@>Fcp^9oMt*qTylD0ymE8+^2v(>TNCCaP!<~5A@Bb{bI92aVf>IP<9=rnOE6P z;5uM%=UUoFhaKsl&gb`T?|vGrT0a3>>f8tT^KHg=CUQgZ5HOc$p(kA7-J#Q;4VS6`fWsFfb)355>G}(QvV` zsH=(h*5y&Lnn6Y@2lu;q-Pv)oTZ`}xyaN;-rjlptr*N>XM8J|~#*#qT823#jO1cDo z;$owin`!%Lvv5*jc36vIdD*M>(o8J)94)oLw1P?Q6q3!j{%+R&=oHVN+XLE7(s!QK zvc)ImJUB@=1wI9(kFtOs>RCzt4v8OK{@O~kD}#tv>55=tuI`j& z$HI^0GTHvkFtwHLTem0jt(rgCr&N_r&`91v2AWV%K7sYcAR{`9bLm*vsGsvj!T3}c zt*p$CFtv$|nva327aLd+rCzWqBdH^ZAo{2PZ!=q4qYZSmZiF330H;?8?j|a|$kajg z8nn#iV-9ctKr2Vas~iBWKn`Z3$oLQm0tC}-kZ#=qe+HR6xYEZBhbn2ZQ*_{w_$2&lWJk%`CvjA-D4gA92FFUi z6>?7)6C7%h=^3`mkttWgkirR`Tueky8VLbs*Gbd>B&JHK0u`(zkRoC@@bLzlQq?j}q@F$$l@gV60G;EO^|dG{ zMy@B70BGF1ZnV2>zOB@mLX#2<9pwK2#`P7quI_Km&C9Mj>xu0+z9-#JhLDgJ#$+vh3=v^+6Ov9i6VBC zhyrPFk|aRdVt^oKlmVA6j!v5=r%n5SbCq%qenb*-ScjFd)>2 zlC1!zkB@amaB)!*4-KPgk|OjWydcW^J4b~>e8NxB5zD@&x&%x~CMpxe7zs1Vrid~N zrbjaz#`Oir+>^LGVyCQ~I+4$ma5V+efI^REcJ|e=Dwc!T6^O)fwk*qtKyWP29s;QI zHMz9MZf#VcvdV%a2--H|R~S9>7vCwL>3RA#G-OU!=e=D|fxI8sE7 z!3hFBs@qQ4J?1)>%u&7pJ*AV!fT#~AeYf5!!RQ2unBmHxzK!Fqp-n|SqN1m1QGZH%q*m@$S*zT2rdHt0P zdMO?PrrGdN5_j+Lp@|y35ZVn_00q3C#!&j|%Krd#2qppAtACpSKN(*dYhf|cC5Z5z z72WeDHqDk*eNN#wt+d6BuyuWFW+kMiLS|sdt_}(6Bb--x&&&bQ{wJ%R8E&s=>c3@j z`jwpNDRR#DM$Dsmb${CS}D~M4JGnJi||nbpkkVpY|=RV?EO_Tu)f!%R}2N%?GXV}Rt)rmWTEqx zZUgKwT=Art9HO3WCJwLpQ@abZqbEG!E)WzQNdWOq)hWE=f;qx;rgSLXTCPP=KxCcvZ#Wn@5DqjnB5J+Z~V+nT{vIlGszd!aN|U zRwyJ8N|ZQw(yoLo6%)81N3NN{i55rz8I>6EntJPZl9RA0KN?J&cpzV>d77a+>rD7> zSy_CtEf$fs=^tHXIBY_uR7Z>Y&hvJC_`xmJ0pG~tjqvU{0gndq%my+i^~04 z7}n$jF5nK{A9y`h>Q};P-#JL*YkDAVJkib{(WEf7C(%(J*r`pr=-n?m41a__wxUl% z1=|C4rr{z!m9vBUHJ>S14@&D!)7oug;wk3tu2N)NJUl~+6(Kl|B9%fh3z7c-e6QO^ zph6h776f_w2|Re3SjBLzA1T@oTc8iFr;JMx5C!}3;<9OfDPjsRtJf9l1AnTW*oaNy zSYr5MHiY*F)4$hFi`zvFuPx81C?GZoW6Z>hzouDZs_$V4dESW3AaOHB|#jo~j3pOeea7-l67_e-71saOOgMi!W zr3Rdz!K;Ses$g1SpvTBqQ9c%+d<|i-!U^9mVO|iyPr%SU2`OpM@Jk?V!m~ohq}rx7 z8fk%LgFu`H%WeB5)Sszzp=X3a(}N)(@Y8v4pY748XgU(9g{1AnYTAU72&N6D8VLgr zc{@ZW5qy7Yl$%^UZ`9%_<=MpDKNG%um}%HkQ)~#j%m=>J|Np!)tC7LUGJkPYJfSSN3UKEQQ4O zX0$|dKFUe9PWm$q_vu(NeifZVl1eiQ;(neQo&CzEaImq&!Qom71WHxInWUC32$7Ck z9|d8m`y8zXZeS6OVdrjkE)VU}xa=(>NRSO?`h>uw25+ZqR|hfp%siihs}#;BFfVX5 zew*nh-VGNOg@UAsP~VkrQ5$YJO(6{8lREHaM|I7C%$6;WZ zoy72@sOp}4jccmKfRB@HPv+t%`%zdJ#-auaSKp@jlSRd2N=V{TH}DmmTRR@9Bo1LB zwi?DH&I52qc)4W%0BW_P6b1$Xe*^NGKLygb>~E@TX=n}mt7(BSm>-;LUw(o$;JA`~ zOr-o3NY`)%_)aJXf13WqQE^$0fw&j&L4W`)VSt^pmQ`5kz;{ zFYKC0#28A5>TeStjb`ZkC=E&C{_J`;_aJwNm-}mG{{H}B@`cxr&J$Iq6S7Gpy6QhV z-O>G;(Zz82m0uuj^qW}z%>&f2H`mG{Zk-@Y1Et)9_t>Unl<+#eaJ?lEj6B;5`iE=l;Nr!5W-ps#VLj-^vNRpGS)2eT_p zrw&?>x5)}err;xws8xH0R;lAwd71_k;UM~G8}i<(9N9!{H>5EjiS_+;Z3rgVP$Y{)YRQQ_fN8i)cU&ecrvfz6hnq-=#AJ`{#uCL?q194lahyz}8m z)BuU)u%#w+%+LiEbp9-F#^Jx#746^~TTLTZ23q6K=F>Ie4CVmBkYo9F&-I0SX)2I~ z5J3&M{;f6UJtO}BZ{zzOqtVazJ|DR6SV0LUV`;2X(oh0>Lyc=%WSC6%#~MOiNC!|z z1aPk~dXdd~Tjn(#{Asea32dFYK;c_bwh}jv1G<{jkggk#AB`X#Qcu!J@0c)lq$DFw zlA@ksIaY#!OeCFA0u1d)4y{S;L;<$Zw{-&)R0>oH*ogJ|sjG6Ka+OFOlN{obUWAz` z)BzwGMWdllCB+RVtKWV*?MMp(r4mX~NaMGCHnoXVj&mBM{{YI89MA;#pZFA&DJoKU zfDZoZ0MT(Hv$>uzShT35C(%;5O<___r9=V8zO+=?*$XNsmk6c?(v-+ZP$2j3G~h`3 zMEF1y%5@V5N=FksX<(A$@!q1i5NB?DIBiK0 zWJgp2q!152RTaXZRH6pM-BO;NIhW;jne(*rd^1Exs?#C=r>&gBEb zBB#6r8Q^&L%|dYMQb02VZ(3kcBcI-gzPj2+UbykztM6pAQfkKk07$>O0VikI>pRtT z;e;N@0Gjkr*&cdb=4~4#B6$j(WdJOJw;vjUk*Fk*^hVV_#zI#jWYENoUO;ROi6*N6 z`_z7Ns?PY5gijfYt`KdLu$^maO{o%7;f7ij^e%muvNgtCQ6AsYmgB4);cX(ZqfbKQezYjvpeR4Y=1`@?F~_V+)BV zFtN1%0FqU5Jjjp}hZvGDL{8i*t@$nhtci;x4$;hZ=l=jHTx)DQpU)GQQ@{N1N2uL` z>i64K33Q8!USSvwwbhH79##8IPMI1=GevhjmzN-VR1?z3aan574W(*7DKxIiW&j7e znOo2lXQV8|lnriyg(gY z^}=--fZ+qV1SEsTC%Uf|N0>;M>bvTZDv{Yc zisK{P&wzsjpET|zYS`^g+^hwmJY=2yl-3Igvpy;_JWVd-g5n_pWm|rUpqki?e5tj1 zIE3-`)kAV%0|s~sw!a^GJV7QC2gh+$4X?5k6TKy{r?^FfEct>&gW6W{<4#>ka3BRp zN%m7XKK3YsBT~5f>D#aigJ^*Oa+*(Kao~e|N13^~Bq=`K>nS(m?=_RL)}CH9l_(IX z^&mh4Wgc~{j86U0O4l4u9qBy$X1$^EVYmMP1g%lDd_`7ZyJA?r+lK+GD}p+O9$k|j z(N&ls0~E!CeK8*TT#U9NHzVt&Y?Gy>@`s%t)->{yyae$y)tqQ>M+cl6@bt|w5(f_s zby<#wi#FOV-gxz@5ZYvohV^7Qk|Vs;ZaQVVRPI1=a~`2cYjP7J;W7J}eg6P}O*}gO zSasXckcBEltzXhL6inE4Nr0;x@yN}p{{Uq#&QM2c+VB!$eA$1p zmWQ59X?@}9abLEdP0i39o5#of^8WyB0?=d6t<&iTaHtk_qJcziljE;t3n#H=Z9puiHQnepAEK>D}lZZJ zj%CtmUn*i}{;_=e$S2`UWq-<;VIUkz+!!BDDPt1DHvQ4J8*nZS>S)9<7>_=5{)!L8 zR?~fWL@MfkIhKt709KG_L>Ja3BL3DneCmH~Efy*Dv-pyt{or4Ga6vd$5TFUr3(Gm1q2Anap6nhjaL#QB?VYpeI{5hZYX&p_0 zB&!0#RX^rwAF4$yP-r`$M4h)4u!WPdPTmtudA1kNF5w6N0EbW~+`7=R!Y6zR#7_{F zKA(f4jYC2G3*b_A@T?%rgenCy=6FclVCVz#FD_I60NgaMG{U)IwDjus3>l`CA7*wk}gY8qjL_JTVLupIyp-u|>kh)Y>962_iUn)+G@dV12cq z-X%M|gBj)LFOUA!U~dwb{m4+|7=p*esxB561t;)|1M|=AtkmQ{b;u|DBEM}QH;NIn z7+D+e#Qy+mVzwE@I1E0?QM98JZ-02A;bFwTa5hcD{ojOF?WG%=(YK#mcYYMqa^5f% z0|#ka?o*0epSHGJ#t$3`<3EdgZm;dpaI+ut%g#P|aULt0!+U!hT{uVR{>o>n#N+se z`e*37Zm<63X-U5XP6LY1^#Kz<4|lJn_+tREN?zV-{--85(|NeXnYQ7u|3KN{5(iD;jku(43?HmT$9rj>S) zvh49B9~?FP{{X8=IEAWrD7#N6Rg2@|iZmXg%N9qD6NZz&8-MrHM%xb~_?r$Vgoac< zwMjUp9zhDYT3~Og-O(QO(`v=Ajz1_g2M8%x_@;o=QM1Dg&Ix1>dCuY~WX6SX8y701~$mEw3}hyxR}kMyE|8C9kq5G+c6HsN&@R<^KyZRDBd za(`t>RrP}BP5q%A-Ex0zFy+Om^lq3?;j@W9Z35Jx%8nw%R z$2P>B`+urwp#~(5J`~Gw=MKQ!p&JpO&TAEYbV>Qn@c$V+XGKjg)Ek4V4U z`2NSJ^mF~shweNQCt8&%Ba!1taWH|SZA$08G+mGhBpz|VQVYAm18x0WYs_wXggm8! zHR~pRG}@1%q5&ND<5*S|5K2r=%7`?`P|`q5&hUHb40#GjNK!<>JUnY`*=009xhYQ(w}G{E7p=RgW^Nld69b0clynzJKWPQ_X$x}6G0Gu8NTnqt#yr5*!G z0!f-fCk058$|r6$pr8obdD>4O8b+uCwHv_O>!fM}f~USu0pUyqsYOOpu;CSep(KF0 z=e;E=)wxQ7N%z*#E0mF^R`d2yA>g1v1t3qpl>s0F%=6(*pqP$3aGnOX7La#5_W*r# z0S_@Ke2I2aN>URLE1M`KDBVFq02@toT*joF3g<~DZTSl4ASh`Cey&nzVtb4`0QdpM zqPfIDJA+cxR!qzj#KlEWM`#9jsm_DBlReyb@TiMSED}$s)~FfebKF3Kh~1C!%j4^++tDqP z9O}yuB;q%QHxI6VrB(N&lo{`@Lk*GVrQT*EWTqrSM%6mQ(NvwJR20sXlfVH}tU=JO z`KH8$UqYKlDXOIHY@g0o#;osDG>x{N>a0)T06&bbel*s=#Su394prZC=pWqU5R*T- zHosR>Tnm1n&vkd~?u~sMVk;m(!fmJA&2oC5w4?aGhkK)Y8vg)<56p6wu(XZO$jRLM zE3SDhf%gxKsE#>~-`aY$S0BtSB}l@;M3mrzSBQaKgUM-nauzNJAG$U_)hf2fxc>m0 zoVuO=0Ox_~3!x7#6g?xyx~nlng)-1o5!Q1a6=`+>eZo>_QTWtjhrfs|46*?!mF`ap zk|N5~*|6dORl7cQ5wS{{SIkiQHPLKyiW% z1Z)jEm9qQe=di0-{Mh(Y3&^=$(MIydC9qY4yK{=eVR(_N&0hYEFt8Zs zN11Iv=(TmZ{8wrk`Zd7TMw^SI`iMKx%Gq@Qg)ri0y#|_66EISsKQ!zp6@Ww0mL8;# z-X!>r^nz+Ly%-rCRxC*y%A1<#Whp0RapEZ{0yw6XhoQ}!=+6BFb$Ej+8}UgM9eo<( z$s?)or6xprtCr@ACYa54Aqf&v z+(7(+K&@k;baI_JF47OBadEeIXjO(}Ol9m^KqJg9BiGfMujuTNldO_vORpXulq$nC zk}~EjBeX0ZkNh)Gmc`KTFM;NlPMkUk8#fW`ssRxs#?l2|+$u2Rq-+}8dn$!H3GM@) z!npB0%-*OZ!DQLVBpqtw#+7&y6xrYDd<{2(s4B-)>{e;(u?uTRlPcleq|nK&kq-Sy zRg=Id_EQn<6;RmQelhh`z4vC(^$=jE?Hg4~U~&RtW0<726#Kyj4FbVC9n`9N@al0O zqyYzdV+Z~M+P^7N@1@-jodqTcN#0_HN<0xSjM^-1u}`yl%0=#@X5yq2>Idtrq8kyO z`jAf&H?4RXtn5q1+&&I5-2(0{0RU-F1gS0jW8tkquW)O z>3lbB)!Vr7E+|8BBVoN+5(i`wMONcxTeaFgby4B4q`_`QX*YU7`6~3uJzkmiIb>s8OKWzb_6Xh!nJHD^{C4S1-#PIRyU4iRLzhzArh9G$27ch3+ z(@GeQAtVd?jr-R$0SIE4SU<)Mjrq^)rKc0a03W(G0!89gp<94 zbZR{e3vOgQ)Oa{6X&=yEhjA{=H~hVPO9N6C-}>`=9ox)Or$hsVdc_Uh3IOjFhEb>WnRL z!`b;Y z+TCokWihWA9npv+{92?0gzv-?>lJ{Fh$cC0QM!vrpE$~^+WStNYC*yY;7SN1zVtT;CYQ|+t)Aoh|6e$?4%@&5o`T9Nr!Yop+^Sf-!l zjbVg$8#{o0+II^JIyVI%$8fAEN|Gf5*AYn#T#5bI!QgT>_aplzuqNbf@|FmE51gms z-4_|Kgb$-Ml>sMcjxbL3if;C0H+UL{ATA#f{{WRq2)>nk_6x9`@76vo(h#J;PZdw+ z7^Nj^1eChC;pv)2o8%{S;Y$E-rxPD)D_U_4J6l*D{Wz;%XcSyy!S|9OH!mmD;oh)a zT!8}Z{kxnr)L(@e!`LAHE+uY%v?~g4xBbg1kHo#USHW~#H6Ay&!~y5G1w3O}t$d}3 z0|NE&w;fc*j6wkzE#jw$LyVL9^`hP*#Nc?C1G%It;JN^DSdJq)jq`+ffPTtl+uOwx zsrf!ANu(C9PiSD+uo1cQH6MXA+S7D4I8H1h{{YGEpMan>8+PUOB|&{r2fdWk7nBqs zR`%Wh0Dw;P`>ro?<(>LZa;#qe0A``Pa?l&1-~qYSZ0dd~pfxEoLR%PNP`6xd-&k_9(~um1oC@_#}r6+!*=^Ff$ilz@2{j|$CTD3t&VNUAFg>60;1 z8^ZI(0d}qXD8$(++rX->P&KxdqVCaPk4Rm!AFWkN5`(mri(@#;XL3>&3QSB9NNGVY z>J#XmCyhrhFoH|irWT1C>cs7n^%aUjF)SUYrFnw|X*zf>6}BJSrDxzvGVv^?RT|=W z#`Kc3BqR_{!2bZcs+XCvyJ|gtam#3ccR1Cy-`A*4bb-kM4A8kN!As{J7gzgPZ5oA}?gRt(HnuO+{so;JU zHP8;1Z`FCp31i;#yC{><9#L%I59rDfcC;P?0Aa0 zB~l=~o%beYcc>45QzkdqROge~A||1_5@jdo$Fx=PGsuAE$6*}mGK8#bH&7eYw`OF= zh&3FJ&^iX08&;SUNgUr20Ad%KhT-+hbKa|O2q-mYh;NAAc-%QY`mMg*qX)*l6gEel zmwB5^X-GZQI>K}>Zhh4SI|Rr+h@Gl_9!W`=;wiE#b9cZN(qbcts-ywbB%QlUt6SL6 zh&<}5L11t6mGP#w1}FpOq{-NEuKS%rk4Jcpqa);dZHIg{Tns3Ap&RZEcg*Y~qs&K~ z;TEHR&1$(lPufxZUqjGzUuB5=AU-k-VX9HtSTKn0fnATubpG)1l!+wfD{}*n;FVl& z6e?A&6tlo!sp0As**uqk`-a9$pX2sOBZ>K?R@K~p&Q47G-_HZocVsE$0#4-d6>F4` zm$71#5E)Ubr~7X#rcY?V@1`5YZ!lYwU0M`{xh)++L>iGDj-uUzK|639H>c5L*b@Q| z8t1I%+*trkwYs$N<1te{@9)qO4U;B!^p4dlq1-k$UFqUr5l9xM69Dbbg{r5`Z=_o#C$(zq1Gy1J(5@2sp;T%>BvO3I3mc&)){#_*&)8zzjSeD4^Swz%cEOaA z4cS3FH6|jR(8=n;?Ua6U(V|b}15G)CSScnf*)jPMObpY5D1zQ5lB3M0YLMPw!d0a{ zeA2jYBYFUeyt{?3)5Du5ya=Y%mGEU5Hbp+A8nhU`8?hHHsFFy93UxSzne<(3^Yq0U z06eUxg{XE=@FTf&)0slWev7Y(@tC4y+*+N|v`>i?r75zlw2{Y%iYx$QnLP@Uo3{rc zDX5QS3&i$Xx=M$6O&o-yc;X3>&%TmSAP@|9M;c85%kQ%N<0nd%nLNTw3gtQ12fVb$ zjw<*)L(Zj?LQf=s3GSNo)y1PL)_@Wf#%LEfw~q6 z`*;@AKH7}7Cr@;Fnc_Z9)JfgHvZ#}}0X$Cic;HW%C=x#hzbd0aQ~)`TR^8RdOLN>! z>ViBOC(M%y{!s5rx>4&95PM1-ci~CG0Tv+71*?xLRo;-cw5Cp@9_mc7Y>1bq?>9g^ zs;RgnK%V{T+VI7r`+Xi9d5WlLZQZnxXj=+i%yL)p%^*`2qfAI0zPuV{RnMZp1;l0l0QNG1Mw{;6AZc*dhJU z#Yy~h%^ZxjlOTcJ!kDw3r9hwMo!&nz)2EaZ?53>Xw4yip=STI;F%kp;#y6_$bJ4UT zR_?3yMOcV~A^@uFbTGDUL+l4fTCKH|!GXMrOlxu?5@K{Kk9O4fN#YW!h%M|4O^VVy zE?4_0_U*9o6KMYY2c4*G?x>R_!lTeTcp7ylo|1dEsN&xaKh3Uy@V!5>oJF=98(ZH9 z=jXrv?J*A}E91W0qLzW&4}4QX+YQ)+VnhD`jUVjN!#H|CKf1ol#DB9&;bGWR_#RZD z9*8gnHW{%SYsJ&g_)BN(tSs4(N1fwIG5GBoE*2dG{y2)*An_t;31-X*7@jl-=CXd; z*k;VDY+D%{Z#L{7?b8bjnLLLsHGqxg4>(%@!WiCam<~&#UQZMLUH?&dzFR_zpq#tKp)=%!12P#Kdnr57D$*pV{=+NZVdND zYpF;lPGCXb>0xV+)~xe$!|sCLk32Qqz0`$cHv&l;@D;uIND<#z=F3*!FIW>Njf3Oh zD`wfv{{VI{#SzAB?g#cM+;%cV#|Sloct;K%HHDYCVz@l-#V>>Ul$AAbnA3`2YB9~% zll_VU%-n&-JZlLP=wFXo#MBs zYMMbtAV&-lME7EVd_`en6H$WJ5PU`~)fWMB6~oNp)=63MACrk&pY77T-xC0VgDB4ky|+Kx zp)puM8+Sz}LPp6GP76$BMh0KGQQ-pO-CqUP&7L$jIcpQ!jCE(=ss~}9WE0M?OmRC? zo@0$^{`PTyV@W>+R(ZB4ot2j{pI4d_MbNCoaT>Y!*0&zYa9ZMLj$Fq8{{XPAl3Be> z>cH`_>%*P>lw5XVHU@q5o9Qto4$(_eEabe#$bKmUKYFo)9s}01{%lN(T_Gq|S zo8L^GyjQ zmfKS(#H<8`TonFu3m*|kIJOlKaRx;9%6=l4tVkn?P}+N|6cZ9qlT3W6g&+FX*KhKJ zYS6`SsUNy_a(mtamBPcNqyi3v?mMXkrnq%U_g1|B01aRLXJ%$UoFn$qJod|ZzqLR2 z$^EpzQjpl}l=#F`YDfYS4wK?*eSNBdP`bA#!Q}qhNpYy3IBbqzI5<(T30YD{WosU# z8jiPa5A&B}{UPH|EoeK35fK6uDmuV|Qb)W}0+%zs^6;{izT%Uu0t(3-YPHGh6~8ma ztTQu`5uGIyF?vL(D zlW~2R5aBXFwQV4dKuqsV-edSZmLm1Fjvb6Xge5wK(~P#EKboDzb1>=%*7}v9V8PO0 z05{>xRHktgXV)pKn`@m33MX2mfHp|xO;qYn#Jy63TL9;=)Ce5)6`5v%iN5lAO6> zbk~8=zU=iREjSx#8i0d*@%O^2AKiu|=IF!i5|JH}r&aM)3EJbhgP3*ZCu?hJ+jiYp zS`{iMQlLdz`l9(uM3vJCo`)g-<=&(6X&j9=fc=?yj0;i_K4I zc{?F!(ZjpEQ`lwwz_wk1WJ!Hq*DzmONnqOf|UZ2IUf2E7r5K4hBXI}WwKJV#40F>TkbsKC4?z-+ zmx6#DoDu!~h^}@Us8+3qt5#OLcKKZCSHRMxh^I<7w72=#u(tAK&o2}J?otIx2@`g{ zKhdB|OtkgRX}8J@vuNHR{v_rW6s7#a9YWNSqNtLRQewS>X!3>2Necc^Cw}Vk{sgYG zrmQJRFn;Rp&$;JnI4pf^L~1&Zx~{bIC5*vQp(<(#>g>XFc{XPCJezgq46cFJ1QjL6 zRRUsToeSXj)+y0mY{Y)%@6zq|4}EiF{{SAQ`7JD=Xi|BhQ6hH+4SI2>^xWw#gAWp5 z>^ofR$~m-^bcLHgD;v8bZ^l_aZ7!dQsg84}TUBolcw_L?@G3PZ=Z&EeE`%QazP;(~AlSJNtQ85b|lnS9j5htrVjeW-)bckWZqO z{NxX6tFhQ2*&#?-lN>nL4-rXGttx9|&h8$wtx7X{v}+z(Rf60kLdY8#;l_dhNk|jO zM~xce#bX9`S^$HxPch#>^9cX|LPcj~+>ES}2uUDw-lDj4K#{*1e2@~LqGXOh>}iFW zRON-@A-dM@doQ zW@mB0ROgZmnFNmdg7h81BiHS#5e7kZB_<*VuZ=-`&Y}-|`l`Y0inwpRSH7K~4kO)G z#HvIG_T$Dk--SbP0A!ts+A3nolBI1Uc=gmpgRtAY@4(iGndFErO!nZCIMih&Ac;`Y zYFnxs4X4*pRF2ltd?K_(l*t_95Gfdq;RKQA4gvimRkx%Tj`Q7C7t`mrTSUI*-=t~< z=p9+FNez+bCEjKtG>!QQskQ^MxP!RkP?9!DkD@Adh&opThQQNeLa(E%L5_7)fCC_Y zQsS*|iR#e zx>a#JK%X+ggzT&w5O{JG+WeT55s)#HsBM@Tf=Br!R@J0m^OKh@_w&IXpLSBSz#Uaz zimF>=$S~;kRQt7(^MsBn_fVfmn5E7Um(zP@@NMIC%V9)vCx5D>L6*&uPzaEFqm4*f zp(#7h2=1;<-ha%1N1e1si+$Ai=@T+)1#VlAITq+6bEqXtAgGQ5zLE-(l}bqMa;|WW zl5y1Rt9wOvY(+kLO~g8|mEo+If^;Z}pc_X-O3xxhZ^E>#_E3^$fm`W407JM!gmKd4 zNJmN7dbeH~aU=4D0dyG&&}5y3H2E#2BVZ?v{{ZncG>(!mVmo%1Neb=(TT+gG%P%c1 ztrtL~KuJLxANf$i=qEzdQ?}7gCDn+B4z3(c4>g}M!+=fGsnyK3Y15pt(U`=NJG&-; zxpdvr=_Orq!IC{LRJCGP;aXFA=-cs*^-7G%fGkMGt;C*ciKTqCgDpu?F*{=;lY)Vl zgB`{+l>DUm-0W3SQJQhor2YD%1KwzVJkz#V#wJhR4|qpl z(t8u9-bb01V-J(SH@AIJwhD|9#y6{_&zP7@lHA93)k=awWEt+RI^_2f;3L6|*by97 zuZ=F~%Z*6-O4>MfO*Mm%Y!e1j99If*?8D5BQZ*}_M`Y4vi)2Q<+S&cU0V8j1R5W0d zu<#XYe17$KoiWv`!&D)gSTBm$A7kphu}kKE)9 z$<(2-eotaP`96e&IaA@=VQ1SWH z@uV`)nd3gHX3OvjoxXY9zf9A@CJ2H^rff`GtNk;aN97t~B#orZ4(hGPe+6s|Pgt+j z6<`+wcr{&)B@Q)e7N^n!sxs1mC$c!rCN;SYunym4Nr4~(#B!z(#jt_rIH2eFL{rIS zfCOJ+gW7{pBswXA+YBW?qR^n@{Oyka<~k7cv=(}LdG0XVKGJHBPJ_RtnLAQ+H6 zwBlog0XuGKBHe%>;~1Is+c*1Zes0m*<-6hHZ4iFi0>Y9}1jyTCTLeUN9BC%qz8^1L zjXQ5(n%J~X{{X%hr16|Q8V6xxoE`aZN)xf)e;P-dCPZcl<-QziV%YHceW~%om$era zg>isQY!3-OG@mw9N8JUnp8E$YJl)Z_$82YTn})INA)SUDZ#w?z8(phm=`#>Q(BI2|SsRE*2F5M1Xj4HMKz7e_c1`*Rvx300cAsbfH@|_>TbY4zB3G0*ipYCya9A zSg8O4qv5?ETVi8^aK&=l5k)J_aa|+tYZL0kTm7^S#)((sE5?)wAd*Rs8ql=GppTR7 z)g9P_U$(dASjiADkfKM?ylDNj1&jm{xiEI)TGgwL(_8Z_YmdlJNByO*+e%H2I7tI9 zU6a2Dn?G$A3kch~CX)e1N`9!PjfOq|CoNx??otW*jcD0pVK8#eCOt_>`)IlgG%^}M z2eJh0Hmxb9raH9m&rLoo@v{?_v0b~{6|XeLzx-Rpd_H1}ps>MVk~d|u>p-m=b~tqm z!2Ez|{{S?_;19XHV0x{MAh(DnHQ+e7{{Z0?MZ(N%+uMRqP~496iLHiM1boUi5$KBA zk$ME28x;~_Jjs8uwXO7mSA}9?4?89P$}WJw+dqr8@M~IAG9(ke#E-U{Hz^&JS>Gf_ zJ4KJOlB>&P?WOeZB%5W3`l!%WW8j@KR_7n^iv6^(<#Il{SIQWgPiGas1G~>1{{U*M)reuBe+@_U zPwcHL62n2CKWImJGy!CsR~F&&&LU%g^T&VMr3_yfp4Kyn?jjA_hvI6eVpwQ1=l0My z^tP>>M-M;sji~YKC_q}AUl@q_V)hR3UM8A2zAw)dxIVHE*-!={U_n19TOGFf(O55R z$q{>P{{V_80$<7)f}pDBQT(P`RQuCNRrSifC9r?^Mo;!CIk>jqZy5GCDLs9;8{D^WXQ2Ut(%2ty+`(U5B3mW`Xb(B}zhpg(iPEaHbqkCx|@wia~Z!=2mS}hB#ZY zwP{-0g*MPh>zBV8$Gjo8xLLA6Vz?%3O_(GZ^b`y!dQ062mtpTd;l32&_jWdZGq(`10x{Bo$0 zF7VV5l<}ZM5^ange>y0)qGr;Yd}Y(=7g$XALX8R8rD@B!peTS_w_mfa02(gnv=1=F ziI6qq&iIAw)lq24uwQ=PY6fMBDDI|e2KKkpq)hc@gMW_Kv zxV&YggS?WV6${E&1;cXBO_`rBVEAJgeXWYDnDcfMrL?$0>!+^udDDSjl!-s0DUJ$+?oS#7C20j} zjvPeyS6T96P)0GCN_Iabv$y^B^~u*d6ag@IuBqhMq$2wTrZawmKX5F44}Zn>@@&{J{JwZV`AFh_>oB^B5+OQY^HF@T{5 z2ff;Nj;U40dJ!Q#C1MJbwh-cEesHcf34ful{NU~5HOA5Ya(Xh|z;0Sh$<~p_$Ax*D zEv&iI77FPjO0yN>_WuA%^?EkZ(r+0lFapsh+g@wR3M%POFDgi!X6;}3kI~ZAsn+~I zvlmi#ogY7;>04)2*Ph=Mp8h(k%o(joUUf7?`($=n?wOU9ZuZi{7n6nTn z%{cRdbo{Y+53%J6v!Z)R`7hL~t$R3mztHRcO$bAo4;T)BwEVWMl`;4v@3F4FmN4Wr zuf3!Qp4#M*?XErK)Uck9aSjlyY17C2nrp8zwH8520m#$hmkh& z(%5C!8);WfwzD7$g=~3_JUl2+TA3ryu2eMal{k0y(No1|Ehk#G)vJVpC~+Vx5>C;> zy0N#Ztt3}DZ0?eVZ?764Mxf|3-{~aOcdegF%Z*}}MtB7jDn03|2WCtSQ?)R#720o> z^&7CVD_^y`kh6+DRGr4An>%|FDk|E))dLW1T*)@#JSxr5J4pk^LFG}Dl1YvxrliQ_ zD<4Jp)O_WYa~jz{VXF64i9stxl7hB?79e}gT|2QQLd#Rq3sm`*DjP46=<3N08KIVRlCJdK^yU^=XjDh4hAaNvbisLTI;WZqAVQa zz&M(M?ZbmmRfWoT;R!!&S-Pz<0*vvBitK=>R^%CzS|ZnhM3eC=+Hdw6 zWluCzkXv*~{{RP5E;~g)E7IR%P{CMQR92{w8}O|WvnZB_H^er-yyX`TdS9Gs1?e4G zk|c_qh-vvo@;DoZe^}HD&D!C;dPwY#IWF@ygR*zp1y8X|p+p#k4_#NIbf>>as|-AL z7EgGl#Estrr2ue~RVjkd{N;RV+WelWz8;lSq@Jk}_{;dw9e~&$ddQA^tI&DfBm13R zq#6CiwkK|S8m~Ud7OH{YUV+XUzq!r&Oo+iPj}9`1tCQ6`^nVx7@AO|~U+|pj`9#@Z z;YuPfm;`Z%727SoMU9ZV`T5={Xng0OV77zYf zt8(tY=O-pz@8^N(`?7lF1xYjQpl+4YrR95cp(;`NL8Aak`l#9U68gP$Ta7jxw`C*( zI?!S~DUoLk30{Dr(|}BFg;K#A?HlvjyDK)$XaP*NNH9rAr%oMaxYuQFpm`R>1Tvgd zDLgd;J~e|x5EhdjHQE<~VG1Qm!tIoH;DJr6EZ{5cFA26j&LV)Z#^oUTVAkPkNR#ZY zz^tE^oFQK$v){JV(y~5RUgHW#p5>oy0hHwCKoJ0r9yO$b2<(ye*HLpIWwn^|M-o3J z!$?m@nR-YIxd09UbOu&)2-CC?8;GsXAa;?;x;woa;Od^D^63-aW}=>rtx5U3QQ%J* zKr{->0aWb=#*&c-ZT&)z714;(*~U~Sy}D)IjPDW&YZYZfZYUyw*a=cM?1DGtT9txT ztx`G6QG&WS#R1fd+j4lpkw|l+oM;fe2}dz^=lTa9T$EI2=Gwlu4WTUpjpk&X{;CiilcM#j?i$J0 z7b;u#1n;@rRlaF6m9eA&sQjMk;rS@r10|>r`4d; zC9^K4-d_XF3L#c&;k!mT4i!j+X#ns%s^rg^5L7pBX!TVp3;_Vl2(Cm=Z!Q8X8hpq| zRCS9yd}()vUSyS>ijKqbO*e#NDNIn|ZeBGKg&2`L4JyM49UsFYVk#uZL=tzMyXnM$N3*`07Q_e`&;<9`igV4B1pK(vh>yGv?V{mf#E!_`wwd9} zp7eoku#x+@Zb;vI1N&)W*}^2_mZSdwfLHCHEGVSJfIan)J++~3^ly&YaoC#${@PM) z-U;6x!+_)b3D4V3;xGfoV8<~_9K|3q_x}CEO#c9yIs0i{P0Y{A_)gvS?*7^?7BFw$ zz}CQs9}ab{s^Wi+Fn>{L-Tu1YRdNK3QwBex@9m@(zQ*}Th#MKD0kp~Rq=qi{j8glQwC5AwrrLX9U*PF5o^)34nB-7^076WS= zGwQ^V`zr;eFl79e!2^EIAlaW*)Lbk_7R-SKlusW-R>iXbehCNkM+$t};~Ia7)4vbD zTm6-YwZ;J71yMY{{A|&Cg@!tYL>{RyIRQ%Qn>%TbQ6io5TwunW5#7JeTdgM38s&jp z#~q()i-m^t03jt_u(f{LP)mb@j{gATFZR;>+ZP9X2KIY{ji0u&&GAI>z;OZ3V1xG2 zaIl`S@L*nCfDaEia1V`aTwRHa>&YA<>Cg776xJYk;CQGL{slaJ^o=*b?SkT|{{Z2q zZ+!t~JLkB7Cr&4R3GTgj{i?x;;@q*EL`QY&zwJ{6Z-EC2#K->t3V&@RxU}r7I}u6$ z0I{p~(V(o!XA#B0k&EIn-{(#rwzM%^T_#hFVj*4P>3e;34Nri3R+xfknY3MK-mn!N zRnYa?uaCNo2dOyX*vT+)tU#IPaHH|8IJPmlIK|=dQ?v1^^xs;6xVauaYO(fKdF`;+ z7r*@7f3l4QsX17#EOu5T`SB$uZ)mN2qlqi|^3Qysvp?0S3cj!eOOAp$`MUoAWoY79 zd;#Y~dfHg~DA0P7m3@3p@1&0#W>3Wwgu>;OYSyuL*?rwX@KrW@<|Igj=!kCd?E1J9W! z#F6$^m3w2S_;tSgWpoQs#T1#0I}Ftveokj^>eEhjMKEyuGmrR#VzuX%BoHsH&#BF+ zwOraAyzPS@nCAw z*`Lc4Xe~-S#Kp2KCA%wD)z+YELr_4T`KZepmakb6Qu88_@^R9nk{v)Wpn23+3D%+9 zPbx#;K;mX%c-4jjKPs~uc3cPgCZNX{s|*ZAD8U1hll>Dy6Ei$d$p{g}FYo#&u3=yU zhp1DHr7kESsX{>UuA`nw7*b@!CI0||KWz{6M&0Po7<1MZHupH}GswqQZt-ydhnfvr31KwNYP2TVR)@>`m{% zq*au=#Z|kEv(1mOZZJphE|G0+-YUwSaHT{gDNrQoNF>B^6?f%5jPx^^af{sF(S|X9 zisD(17FFIOa{mBamf8tPPKMCqNF!MxMoN!n1aP4~l7U_YYN4@3*dUKpMoF`Kp`2e^ zO|J2bZw?Ktv_iv5MafqDAd;VTXT?P-v8k_z&fENKUxbr%Wlv8Zk#ErELdtoMEaSP0 z9<+A$>dp1C!+mOy+ENbuDnS{&H^V zzud$5!PPTk(UWs1CJ)H>k=pNQ*DdH_MLi{AswQIzU+X5iK5|(ZFEFcUI9fI9DSIztGnHaCNay{be8LCwar%D!;b$Nb8$Bo;{&namh{vbeWb` zWX>UasGa>c&3YRSb-zEfON!V&gRq!|3iGBxUcQrZ%oF@3@qg=$E}FlmTg&!jx`Vw+ zK7YDB4```;5(0r<(l~EkY{u4p=&`lOrHWn{JpOfc=-Wq@UP@9DJ7AA}dAk{Ks~*Ky z1Zu>t=i2h>-iWO^`7hL`th>Ss-v0nYt@%4BH_`pvz?@<2$e*Aqs zl2D_lBq|`s3b{#2^1CXS`NPE3L#bD%8=Au{&C6mdsVSK}q)#(ZRG}JYj{*Mbl=Kh) z01>~}QI{!+i84v=q=1V503DMYB==NTLV`@0+`*cX=mtrdJ?5ggMxq34J^nQ$M2hJX z1n+eRVO#N{0i;)CYl+21n;{sloq)-?w4KQ^LI9(6kM z1?AS{{qW}h0H$gM;32YRYtqMLd8ghpOaKQRBi&Y5f1s_;8LHthkWbMSV_*}ZbH4oe z(DoAC-SlWjubot;eB4JRFXLACz!s1}5j)jNQ}Y1+TB*ljvpCu+Ctz#PIjE^U9p9e( z4%%n)8?FP!%}G8y>%V3~7t!V-WE7kYjvfuST#l*Vqximuf1$tW*Ze0tyHPl121>YL zUt9|9UQ7U-k%^KvIf0p|`M%QXiQZEm*Kgz7zD*bVq`s~6KRIpCrU)vi^wYU>hHPNaSXP&mn{ z34-?a%L7h@aqg$X3)4MW@Gxtqw}RV%Aqn;-m+~71djdUEO(rWGxlO4csDd_=B9e5C zffdxwU9~CnQV)VfC0Sb8NQ0yTKNET^7CD+d5)SjVYfKObo#f4QbCvAUkUFNp8$?rU z%64+3mVw)q77H97Hgu_jbCZ@w0S{ zKdvUx($kuoDH^$fJYuFKq0ZV$NIOj&vytp=(y-D33xpLABT?_9uO*jctt@b+f5J zCvazKOp@6U@03NNVzG+fy2hDuxaz$Qg`{p?^X}UX-A9^@v8g~pFPC(?3Vzbk!T>O0(k9F?7sl0 zAIiB0^o>X-faT#)>^5MI1FduQ%>pC?CMU*f4l^o6vPAB+nU4WecL#00HD8Uk%dOk> z&8c8GsD~7d;CFH1Lj}0QNLL6vVxLGm0u0n-TH(iyrNI2#*9Y5ABG(RrO}*-O<%l^^ zCP@jB2pqeqU~CDRXjh?4_pH4T%imW4rfFU$T!Nu;`Lw;YtU%nnG=? z2;b#X;qr<90A`jLuuPBLalb4_{{Y>fEIB;Ny;X;A3P@tYH(oS7SLr|4r3-rkJ1=8k z_xbWq)KNfCXg-dM*jdP zV`KE#KmEGG)v*!srZkM_JU{l}W|% zlRWyXWBrO@V_jM|1v6M1NdV~{sIB?C2mZUo1OLO*83kfYI zV1Rv0W(^B|BnQyKwvAd;N66ZLSYwV;DF78{pRZtC2c! zTojHxEIP%-sXV%8v4v)C~_W6vD_0AiFF z#18uKlea6?5A0EJvmRC>iK=H3xjwR=*-e~75HUBdpITf00A`!&F&Gk@DEhC@`xUP? z#5pyG7~)1D{{Ze$plU4NUl^OReQdOUvq@de;hj$)jyu~k{>31%hz-2j#QL!T{>5mq ziE#5fIpzDHo*&VpK(jPocyLoZHv83|_9?YoJZ4jDL~k~Yf3r(0VkJ@L7RSI}qxMrO zYY_mClab&&@v}yP5aYVZmMu(g{1Ly|QQQqg`K_@rJKLmFs&5e|__m1E&^{x=+BI51eZ>mMXWTYts6_t(wBYx_|i&>*6`;GWHWt3mM)-!VO!EnW58Eva_ z=2{Kfx`e0a5$DVM2_tds;Y8TNvFjWf(%St^ywjO&pwCwatFUol{+=r26en*}^J07sW;A$d?Fb}W_k$Ph3`6KX(<>OIKqH9r*+D_&S zh_08=GJ;vh*Bl$Q{c7e%f~Re(qx2Z93}b48B^Jrp#P3*om-e#$a&GD0+{Ebl%&6qd zemERC{wKnK`X5f_fowP3H`8WOj}ko+F2D zxj1j^YkxR8xQ%hNznq<}&1y~Uw*m91o?PqCy&kL%lQQDdz&&_Gj!^IIuJvZJySrdX zlHx(}+*bhT^?G_k%kBZn?R#CY-sKPeNi|ULUbw&aT@?CQ_5EY2?M`{MR=(8N(lDPs;!Ash*ts|-+Av93E{CChb{u9 zJQbxt%175woFPZFeyYADG9kJpM|qw?qo5Mvbc4C)v{UYr!bf#SOb0*;NCi+ftuaLs zIhEpK_UH~Bd%vz~737wc%fhGM?|*g&D~D(LW}sd`LE{^8uSp$|=B2r?Bqn=+s|x|C zrAFPZ6$5=B@+sP<;l^4bew8*QxU2Xrpg6uXN^^MwBY8?8N#qMkU>TgQm2a>q8#HXZTZb5<6V$9mg>C)PSp|p=LEs!15Kz5T)#6+e%u=S&~f|g6CjP zDTked?M!ggDM`dE7L=(s2#MpWxcb&Y0;I}F-jb!AM@fS{`%M=Mos3>u9@m^BegZ`) zH&)yb`Uxhu$a&!4hgTCjD2jK^ZUB_Nuy^`KjKFpdv7$Coc<~%76d53>00@peYmfY) za+Pg#@PK2sYhxC~TTBc_=Th@l6q2B+Bf^C~)x2ryE@mK;<0rB3dlLK`q>^K9;tuDzn zZ$RD$x@xr{B_oHfg|Mf%L4v586b;91Ud`#-z^=I}9maRwn!-CaAP_jJe0QfW7u!S* zRGBrw3jPhEqBkIYb(NTb2F*Z-?I(uQy=6ER)LND1WSFG(ND;hp29-N-G=icx?-5?i z`A~=d00MoV8m_?y-;QJ_?&B#C&SI1`&6ONI!&3L8FoGTA0)~_SAa=_rDTl z#|iN58hAh;iQI}~4^i`Z-gT}|=^6w|lgI0-{9r3X1HEQF)jUA@QhqgGjHR_VZX8p| z0mT%SRFs|rj-Y6J0^E+?&_2qNfI!|4s-mTfbHANpgJ{|2{r-hIi)%ya-eU3onXmRL zB*{sgi3E3e(!`D9jWg!*-0Mwu?JPkR%&_CZy zd9|tje~p+N1FR41QpK&L$iK%w@mT)=Vt}yk5fDeSg(*B_QzG8b5Pnd{W0>n${{Ui~ z7WPJd{{Y6*Kjm0I{kkp!)9WL7n%Y6)AouS`7WRM?e4~!R=dRrU0AiGFtvC!z8}=J- z_9(bmPzr(w^>0}_h#WVhi)&sVDr27edHqUCZ0#fX+Z^_$*#7`#fmm1yQlTgIcG-nPH8 zv&?OO_x3aD^E+sy7B+##2_wd~6&nLu^E+|q<2ctIR#vsYGPd1EF=GwSBZu0b?Fuh# z#+A*0U>+maSf1fOwx?TVTxRVdc1z6HE$s_y17$;h`@v0OSSBNZG9SiX%+?JlP#k|R zv=ctZX=X&SNMpbf02P24kgxaD`z)=PaTKM@FlHN+C`wc^>uDbH@D(uhcb^tMZwt&5 z#!eAzKCd{VIu=QI6tZ>^?KPX}l@m2`zK=8GZKqxpm`8lzte=DRiRk|TJZRR8D={nb zen4!W_0+S(eVn`sU=pDNzOW6?4*jahc{ew=v)E2$PTaEG@81F1Xyts&WO0Ng>IaY@l~Nhrkd#dxK+{{Uq#sJtWib%&45KmN@- zioyy)gpD)Z6qrouAbY81+Vn(X7-rlhi=Wv^EMASqBZX`L-J6m9nl3vDDNOn)_X^gL z_=*0At@U@i&LM;QQ*uAENiE$*_>K=hpK<>H=;*juLfcO8gpXjR${XC4(mV*IsW(JN zo#85;F!RIz0Jlx8H(*a)g-3RgW64S~6m1y8{ziO$u*}(1%m_iUz>$-PI)DJE8-mzl)vN{+&;!@(u zd7L`kmN64{gKU!9FccxX^h#f>dO+l)Rm5^!%2B^4*;Z)M}$&t%H*wgW<83m92rf< zlC{~A2RKT%qJEAfU^kK{_d#QS1R{p<;#X&Ir8M(ITw9c(;SMBr_E7JNBIw+okncHZ{Y>D|hog^~I`UsuqJ#1ksF#1uz-xOc82 zhDo(-Kqo;0yIxCMNa#p}s1*wfvS+-wYlz{d7-)k8CMsBd^!&$&?#IZnyd>Sf{*_yM zY9fy#Bvgyi4b{Lromii3Mw9rwt4WyJy&calvbr}y2St`NvOteE6I|S?Qe+4KpKMn| z=w#@_v67)OyK%Rwu=OA9rTpaE)Bgath;N)b z`*c^ET|aS{_L&3BmOrkV6X?1|YsTVsvOwecbF^dmUjYA4;tXE883mnt<%PM ztwyfs>skB?IpT;wCq)fF07Fu6Xf|UfSn<3#&#zwU`Q3?a7|* z)pQ2k1Zi4Gk9~77-`r2k>frr^JcC$>y)C<4Cm^^B2*(UPjpYex3T+|!S z!I9ryk~<^LJ;kH|2LAv=MAZB{X4TJls`P=R56K65v9Q^qV`>;J#bN>*MDPZw(0=wG zo~pRS0WG)tDxDM5Z@+C+KFETdvho2<3m~J8CG4vnZ$*!oPGG)dIF=;q9=^LwLu%5=p&`Fe&sE} zC-}vx5e8N<(t{f%css#UFdQ3Hq;#Ezl2WWL;Lj1LeO1hoq7R4r>GX*koyqQ}p$yFF z?R1rZEOlni?HmURkUBuiTO_*h--?iSu3R9=NisPK!^43Zd->2iv#d9r^0`TzO(`Jr zNvBS5%Ns2?t5M9E6I_N>0VIj%wO}L}Bu60>g6CxWr^~BO*v+_}MO2}VU~c*tt*KOx z`hbwWzWQmk@nQ6r_ff04h%W=D3=kb5HPvi2PNZt4X-il_(9=sqh+2CRny2UlZnz&jJSC z+N?Sy_4jvtE!SDKXETWl9S|x{p!;+@1FB zir2bM)T76Yc+Dr+530S9^0B9h(4)5zRrojX+(aGzaW!D^?2*Wk_EmNae*DDA+vf!? zK(!n}js#R&1p#fak*$BMYCz(h<8i=LYaigllr4LHk){N&WD+(N2N(pR+-?t8u0NV8 za#z_P%yB*SUyQYG;%$?0YL}80q5)cy8x8g%fvv_66hv-zr_vPwl%EQY&Au20*gG(I z{QI-|)bed`!gs;iG0V;#{{U*DOno7I`3?Lj)S+A=J(SOzVSKP=dyn4_f3->$xKxAk zJ6rz%ojv~50y~(zaOnwZ1Ao>Bcefr_uJe509uQN zjFKB!OhMzwR>B-2bSM+Q3XUxBf+{FI+NF7(5fkz_j{g8WfA-KKKxx1=Xja@Q zNkfVNb!rEm)g0R4Fn@8-Byzice_FOJaI~H9pJ$%DKH310)wo3HAo8tfa1+_(Op9D2 zZ`@YQf1bblYZGgP0Rsg`cK2`o+5mq_gpE8YK`w}dlQkdBFmeoFjfva%WB&l{R(YNf zR5akJkNa!nd}tW>4$kRT)Z6ZxRvfr_wG_0Hqa0vXyw3-p;uH}-nS=+5EQ5<*GgBju_z^(T-ByF!rKq^7aA5dBn2T+zl{}TJj|82 z`&PJp+_H^IS60UZ%3`^09gSYOhp;W|9=k|v4zZw+iRLQzFXx-wx|~V7tgm+Qy-R6r zDOQr0|F7xoVy#}gWGhtbctdhv35}B<@Gw}%c^{bJl7J9gn7aM;WGlO@h+Gx zvc1A^r?5Oi?JjA3C2D2Fg(rr~96_M#K9sGH&rx@gag{mDw)7(yVIoXBCud;^+#IRn7qC^eNN|D!}>EE9&VpF_Lo{+-`~O373Dj2 zv`NBoWEdl}=INiRwf_L&FTk${#+0MEKQOPdxRAqfl>Y$LHwpvsKs)>EK264UDZ%eO zU0l~^HABZJP`>EyBg$gmfy1%H5A+P5vZP_YP*#}D@-X&>G}F!n6bCKag(!Uy9M9QY z6yezD-8e1z@fPa)D4U~vJ@)f;rOq*Db85pZJfOFmC;`Hl0#7=oy?M~3DvfN7xEvJ> zZYrG%rJ1F<-cEeSm)YuZV5M#%-LqKMb<9d}DPq?Wab%v!u|kPH!$OZH)U-;RZF}t` zO(xx}I6TN95>yEZbdG)C?Ot{re-q4qCVdL8pq)4Uy1)IG)F@9$S)>lV7&b5)I<&3K zC$MANLRq7xT;+#aqT!55FAJ9oNeqstBy-e0s&gaW;XQM=IE|v;X*YKYDpSq`_E)f( z?yhy6u58}L@nzUqsf$$KDR%8P($w2&AV>;=c+V4ETn|*KimfU#jjiT+UbpDhAEn_b z;-OPEXSSMri?(`f&W*YfoI%9uJe@Uvg7nFppHka*61ocpMu)cBgjX3$sq4|!HnfO> zbdk9uoKbFHxU*^ZTrL0`ZcTULce&y!S!^7qru^{3&$NtF5cJ>`KTIp8T;Ah~TiEt1 zx%xLG3g)L2wkvU7c+yJTQSB~}yZdvnx?mID;1yy>p~;;@^x2t`p&0fmNc?A%X~cBt znUY9eKXtdFqUqYW!`YJvw{^yy#ARqbq@kx3zpN%cx@hM75D*Q^(m8pnpR%2z3CQj! z>H9IIP`q_&f%Jk%`o%1C?~OULxAv|H+%1O4_DHS{tlO8=s8#cbo+R73{>>!j%(@I4 z;%9Pv-Ot%YqPYvt!0xW}#Qov<*07}sh+T^&eyZAfRJGEk7lP&I5Thik4sVTcgPQW{ zj@W}>ep3#Avq}4=%Zn0mOMVdrrw8_E)5I??1G+0aWqYM4+~jTSwJh&n;TYqxL*-IIN09X-?T8>1OsC|@Kc#7}9?P16nHCgm#rId^l9&eZ}V&Q+SNp}F~-QWW_mSwe3<0YqklNHDYJz@arvHLk3 zKKcXVY1CuNJF|~l5O{s^kK0dG$eLWEsT`A&-9c5pe!Oh{EBJa$A6Tf$=;yE756<{A z#Fz+AJN?>skr*PSq{E>w1-ry4f?d#DYCleTVdb zm(k|8E~VzyH1!vW4z_2OmB{vj4)pW2xg3#tBb?*+2wjk9F>nKpBet-Z0(>gQ%LT>p z7m93fo0meM>gx2S4+E)NMH1rKe+RyCSC}Q3O2O8wE!F(XsvqFoCQ<5E-Nu2joL?Np zUR9Pga_}f#g2l_hA)uZKg&lw#Dc<`D#Yb{}Cx%|(*Gjj(X{Ovr)KZrcs2sNyyd5d| zL86!vh5O*u6^hWde7Ws56-@)GA+aHo@@TWkU%M?L1Gh%{F8 zf=I)Vkap@^<@rdVyr+s`7+sz|<|T$bd362|<2ZWT3O;P|w(AUR1Z}+$bcCWHK7FNtyt^tE)J8L@zp0&oX(P4J-l65eGphA*IGIrjw)>myCFwV&~D?YmM#NBP> z6&A4EEs#ny=>pxg0Rz`i@}4u9us8bLr*P|c%K<~HNK%e~qrmb2lUbWCaSQh@Z}AqK zL+WusIK^zQls_p7(SesJ0 zKQZDLSf8HW-Mpt>xqj8>R-qc!P)RgR(ZK@(yYatY`m|8?ZM1t1dg{^O65xyC-j}XTen@mROr`lm*XR2#X{uSHtaMjO}ZXa!N zaN1o(yKgd-E3~aQZV(9P*;1#~SbB`pl_&oIk~Z|{H5!Zm02Wu}qK3K%DpZvWGUZ*{ zYcX6q4@nHP2NIE2U)>)z*=6Nrduy9tl9g%ZWuBlO!8596bsqj66<1`?Lu@7$!8@N5 zT4_PS$-Y@dS*ayq%c=91yE}(hKKhR&syC?@WSf_aZe3aW%|%fuSJze*86bj591hjc zdLSp{%w7Q5)=ZvVn&+T{A}4O@y34t?^DElFZHEhTF4UE{UTmrgctjCd@pPqHi-dP( zoFz!os;4cEpPJk!DC1g{vaHDV>qQLoWU`#ij;>&Nss#R-s$4^)TuT$fZg9JXFwl#p z!)jUy3IkA9!ei))V=LxlW!wAP;cngMp0*n(>ynKyNdy|jPYG5SY0_&}Y^jQ;EJP|N zqC1VF$u})1l#o_8n&Z72%Cn9dsogfOpJs}UKG=fsoWF;iqVm<=FpwG*UsmkSZLXY36+vy zd`J8W;^TF%KQpz2_A&B01+gD;7D-f3T7D)ft>q~s>;W9A*3nwBeSzC$Di7%zs(uQI zgFI`QEzXMAWRRW)XJ9HTx`g#{}}8_4Aq5%rBzzc?NgAS1p;i3iuV#-Q97 zlcWN6JJiPkB}ph7j?Zw~p!_{(ouq-@cbc^oG6SjH z=>t&XzaJWi@>EqIjp}Q=34%zTd}s&%02mpK_xu^HtGfRHoSez`m-BT9u?43H3?SJNeO@f@DvKj0X-k$=pjPt+=1X}wPZYKnDd)cKDy|;C<35F3e5n) zA~|U_cVh zx`^T1;Z3h5<}`&LG-$_jgL>*A35_uWnWTiHM3E+Upe%A*tf`pL(JHZ#JOaU?wlLd^ zTen5yS}qddLXu4BgTlML!(TE|03N#KS%r|+J&2@#j30pBkXY%t3Jy%dH;8Fq$LE?( ze_!t>8c|UMS}e^kA;NNQ5}1S3sL$ydMt)ALkB&~`%+?ROp+4&`rQeU5JmGRC&1>xf z8{t$f0toGCBvtjnP_bU~^F;5LTBP=B~u>8~bXtrAdi9o+7NTlm)A#{w~sd zL{&;mnBse>t%y%>lLuCtHsJ15q3xbEyOS#AurNKe-V|1wCi_V#DpvEnk}1oh3rK-F zb^@aIERMuW`13V#0ZEuV>nS(U=Bw>ND^HDON*fTH)P*oif$Q(BOl)V>SV-eEk;|U^ zE7>0^5b+umPUc45+OEOl&hagW;ZwwMs~1(-AdY*$@v7_;5p#(XG1jJ#%T4EiF;TGp z0N~O#?XUHXJ|a2)0KusCBpYdi1#6wS9Y&amK#eD4_*5KN{N1@yl0I=mbKz4GcRLBF zIKV>MV7qM7!>uqJNh8r7B8D}%%PP_bZ9mc*)P~d#XgHtg3WU;aqDB>DBam%h?NpQ| z(gfjFJ~G<4e@dcEk_t%xIDk0%LX-*>wzPQm#Wa*z2qOuwfIq>j{i;}M$iO&Ngr0p- z{{U)%XgGr;9ckVpv^Z0MfFP+He;iX?O_cU= z0BT0u^^e<1D(uN|vPbzr`)Mg=%0T%a5B~tdSNl}HqQ+0|HXZF{U+q%{X0)BljmP>y zTMiG$Z+<~|*x!%08nmHyQ&LdZZ`d8r5V#@}5jE;Y^8 z{{W^xZEPbCo$y>bf6*)bs>0ouACYj_@9Gt|^{CV|G+ajjw!K|qe{Co@gEH$={*Zp! z&Z@_U$hcwu0JuNxQo5@HBjijlf7~DTs1}C0*3SKFLO;qU_R}!W1~ltyF)tMaQAeZZJE0++yj0$9x$TA-QNYd>vt z0f}NFK)7#xzk{{@&1~XV=lQ}1hnuzj&0pC>&)YBs8EW8mzUlBGALfUDuCZBm;HEz5 z@FFMt0>|4&-hF&e;nGhpm~Z`>P`|$*&BAu$^9}z1vrDp%fOgV3>C2CvIhO!D_ib_U zq^B<2q-q%UUovCxYXJRq(LPbUFp}~K9n3fW&1_#^C>ePXJlJdfnq7oE2lkn*na*9y z*Wsduu}lIFB)al`+Qi{lyGaN|?g6lg^QX7l<~p0{Fna#-B;N6M{T8r zU1i;BQY5O;!>Fu&Lc9D80G69xqS|3ziAfM-a`n|Ra*pNjQJ%&5&lddfCCB<<`zvYA ztU9EiW#XkMfCpd9>^V^3Y41U3?H*hRttEvaNpn|eFrYh#Gf`7yvY_S1@s!JI$QRm@ zVChu-m0yTv6=7>bSe8uH6Z^Y&qFk5Kj?Q`HL$t znVq(|yuNu3TY`YEOHxkpzl~nv?Q~G8M)s2ZK)gFKTjF=EVb(cOPCo2}AUKgQB<@Fr zUwn;0VA=5wgpS1qSaid^q#eg`^LSbWKlA&nia^_NLV9hhpGZm?=;SA6+K` zN~i&B-Yj)11T8@UAmV9 z1))7!f$x!2w-_!nh5~S#k%(HyYR>4&i0(<}{{S0QaJbWo$`-6?PB`XSl4{$ftEofHgQbdJ!$Bj?GT5))y5*l2> zw<$Y7H7zbPc-pM*R-|emp~R{R75Lxr#)k1{F$_NOc51{fg20}!wZdFU;6~gkS?$4B zXMRa}`KR5sN)p4%`Gth&LY2Q*jkX=Y(B=voMTR8J>Twp5yE#KlrD+d5l>&sUL=nz5 zsmaB$MvOO#U4Ty~DZ!3odk>YaPpw1tRZ{hx%@Fk!iag7D{xN%XdexoUL)Rf`OO2?n zN>G%ITXzaZ7_45}SBBeMhg?FKSIjCjD2bi87!*P=oLxkP;%^eIiIMv$M;F8rfJQHL z4*~+C?5O3^#ItL0oc!{yF(%yn^{cabTtal8MI?ZCiQH^WX2#*3 zCJ85NJDM<ap+_!lofDE*tXWds!sUe$nI#d)AnUpAV^;GrdOnKAW z#cmx+NrL8s_HnI@!H)s9Ch|ta4JbclYuA%2Xr#G&Q|=u~GO}cYQIzr|0^&XNPBH9m zBjr~Nh=SW^`!vtXIH)t{sXn$FG4)du2i$lToY1YqYA1gR?s#!=Ie!dDP$@-&00NQt zwa77R``gwW^OqW2AzP)Cq@BDgu7&BraP*}=%$Oh5u1{9(!rmZGf%O4hI^AG8f=4(t%w90He{< zk4&7VS&VoVRh z{{XBsXKtjI6WW72M>^wT*Y&4=6S0N%G4eW9nv$%UhZTvHD0;U%Dz)WGyF~A|4g#z! zAz3pG-U%v?4$QbOa@f+{Xr8tEs1FL|J9QLTM z2uz5c<4FvP@KOw!Fbr=|9aiILR8*(CQ_6OzZh{P??oX~fDoBGOxTB>{g znemQwHN_A}GZQft5%i@BkOusGD%h2>y>JNFfFyz5YCDNYOdTdUq;RQk06S9!I|&?W zE2#h|f&rfTu@y1{n-d_OGrdA}K}4o@A~;P=d$Y8HPma|M?TO}j$HuforbHK@l}YEq zrsd387(Mg%8txKYXGrRTOps<26bOx~6RIT1kK0Tj6g*&TL4nS+LA9|&l6#!%742e| z<~BEPDm`meRo+N!iJj`o{bhIeOVb+PaL0FS)qU(G1`j`7dPwYfx4E{!gzvxswOL{0 z1QXt>uV{h+@E;1FhYd}tQ@*ZT1vVsRAVF}VR86K+a z-b@Mo=VDr5k&m~x=o;F#f6h*9`^)*k>IXO6X{zjCODw8?mH>OI!NC_VDhMS; ztMOubrZ^9t2kM}U8e}91=QQ{Pr`5UMqcOvA!16TqsZOFtF+vdN24hj*b6P#34*m4l zQB)cF>vKE-<4gtWk-YJ&S=G9a8cdR{;0oDE)B%_q?kE992I5FNQWd!3XS`C+1L~xZ zut^+*#8Lwmv?KzhM%??WVkA!dBC4?qE9OVgG}$CM>3hC~sC~rHFy>i^h0&(n2?tc1I$)v_~Y?;`~ z7(oQdw>y5Bq-Wqh;xVzjd6LhzDa?<)Ou@B8i*+AYXw!N9W9}avl1JWa<>67Ebh4Lz zK4|lG%C*?669l)g_EjoDkfNe_8n}G@=A#C5MEg0_G6>)RlLK=V$%*YJz(ItqUSR@B z>l6X-th^+xkXPB2a^KN4m^}G_^kl6@PjuE^t4qxC)U|Q-R9@waNTMz0@F&LrQV-Wv zNRUE|M{uiKvOLYuW^~LCT~%)!{Hf;?&lJo7BuTPfF&*e@$} zsy>LT8H2Y9gN!)p8DO-ugVv}SNIyh((qmhdjbb(lK>PiT{{YHVgyL9k!{r7EKjk>m z*}S|@^2yk8X*D$$_n-i70gfLwpV?6-p%FNy8N}i?(|e`PqFQw$)+BX1v`clxSoF&p3@ zTy8%hG4Q7bCy2rO@a^2%e`PSxuNbBjKkF-b^__>hl$=uwJB&?(%VK|JSO7FZ%f5_L z6bXTPpnMRWzN*;8F-V`39N%fupV>fYSA403#`uFgBXWObE9FcqnE6GS1BYw&Rf2IW zP;KY#K=4oOt(;d9G57nT2XcR90ijxPTrd+C?H|!s`!%zQ;gddo+*A_ydSP~C=-Yzn@6&2YPi30GyEAo!i4 zx!a_Vp+2rud6`sM!3?T;#}e4~P(y=;)9S3!+|wP1#00jZ5I`royH*W#X={PumTFs} zOj)$rfVOn@wC}+^^~TF8e5H^jPN^-AX#?%AKzaTm+Pa~MT|;S0X#soy5mKbLWNSSV zA*TM-L$Yp64pxsJ?ACeZzaFmez@Okxf3s6YBZ!l}CvH+)Iw<_|~e*8J&{uwwj<@nHA+H85V^lPbh6zwu3Ho?jj~jn8-CO#;x1=SWl$ zYl!~<{kik~n%`a{Qf#q9-xzz}vY+$2>4AN7{{V_>esy+0K6i7sADuL68WH^F2WH0= zJim*c{{UvNT$2an%v6EA{GROmDo34NkLPzJo+qs|m0aCP2J-4V`r}5Sp(3ygwW_H}x^9{qM#k9S0>wvrrII^LzJ@nozu$x;8 zWtjmQjC^XDZfJ*g<#^`<)k+(Y5h9u@Nh6NJD^3tnqa=~NF&Fq3UGh^a7;Y%$r8vD! zS(TuIu1B8=mR8{;94{9K{{Y#`rZDoRu)8*ci%1Ov0b~IrlTRCxmkUX_c%J0ArANA_ zbrp71Yr7)lgm<{t(C8V#qO=HZPw+T{iD|R zOp@D(a1f-C$kb-rTX0HLpsxDpx#tN>*6GHYNiH@*E>9Ux(OExHpj9LxU?^^P6K{{X#Q^Ce;; z&l^pu+*(?@n|C`z3F3uq?G@0L*-vDxMM6Q9Dz#FUXqjrHq+w0*NIxLr{3QMB{{Zh( zYencu)q-Nf{{V#>{{ULCNjgAEmI>cwAKO^FcUGRsac9rLrj!*wgje*91G*VLa8;+|%tB9dBlgp4FX<&%ZSr~U(EYUekt3{E zYnG!;EK0UfKcs0`E)C|Z2JY;`uh>3^(&A8uiU5f`%*mm*ly4MpY-J^@<_ue1D8W6+ zQRX|17iK=r9uDAj?d|QVtaA)&6=gs|ZV|g{`wc=+zQxq)TSh&AW3OMSSav3z7=r=` zJ9WTw{O^w%otYjFV4~qRsCDZl1t(IK_%dN!4F;&cde>TIyi*Q6qrpo`dHTf{VK{?W z&K!%CBz)*CK91#c_tk0LSh1@+pe$w^#=9oU+6K@|t(S<iEmBxvxm&?M8^^-Hm){=FH#BsZ9;hM6bwSM z1v)fj`tDK50y zLb-xXIGdK%NwXRg0U zJP(?V9sZp-)@{pjBL3`c168ztYPqWq1cXW3NC(|cmvrzZw0(w>Df?wxoo2%r!Z8OF z&6V<&;!&ujO_a#+-lep#m5>RZ=-X-r%2!PsUeIgw*>NXsJ(IN=mm(FYC{HTpVyQ-y z^2F$2s=BbvBFfp~rKfp=GZoHOprGL~D%I@m8a}jKs7WAzNFTC*Lu7?1N!kgK!*g0X zVzZaPqp3Tnoev;55tQ)csbXP#{{Sq}y^Fn~1Q-NQ*+97s3r<(V)1Ymvao^H3Z)Syw z3W2C?!npXg{aJaPY%Bhhe2$}sD_%{)loz^+_wL-(Cq|G5Gr-5yQn2_LKM4v_Bqc+L z5h^C3zEYWRs7AyRM(4V@lJ6Zz?1=6HIMRiEr6{LQb3X&km@27d@ zHUq+;yT52ANgO6WpTx zwlw>MY>>2qdq;jX8EOGLI3Nxhgtco0sNAf9`QhT$m& zN=H47UlhtD$WMZk=}aE#U;rFEi4ip+;)#IoO2AT*J-n+#Q{j6UfqB< z^M?ffnX3Erkb}JLH}9(p)A!}ll22*(54~ofVkC8OGDKITj|ZE3n{EIA%)qJmcCdwQ zJJciq5H}>i_eD*^&tY2#D&x+EBySNC+BQ6U`PDi|>Odciq4m|qBz|ojo+_$znP5*P zt9o(R8G%F1lspZ0JYm4Dj&6t?a8^eSA2!`^-Ztt!1}nJZ1gE2$r9h97nBn=2*DtDX zOYwaU??&!c{2)qz`4a_DOef^fC&s%+lLQQ*iId0fg`f3mt}N$o0>MxfvTPE4v0bCd zkj72LPLV0hEg1g*yH#xaug~{6vhRO94^KQL_c(e-myJNhiAxPf_)vEBROe(o?xQlZ zBzo!wERtDhC;T8XC?LjJ6WKAqQ=pj%38?KT9k!9fzNDZP072ui27wy@L_h?1*5Uv$ z?C_;Q^eaIz!=H@+U@`=A943{&6YcJ%z&iuL8c-qu2aNzOb^~vHB#E6$@T@zT3ESGq^7oXlLpw@G0fJ|kO(|yja6oa z;_Tp;Yry)iJ_&}3#DHp67>mSMS|<>2F6c6zxkKqLH>G`S7SiOn5gq&b#b~4{GN`Rd z?34}Wl_5eSjYtL^IuHV*vTK*-a7Hh;h**H%A z0;4|bET!LGX!CpEd794|Zf2>Q2?PVmJ@s<;@HK)a8x!GF$UUP3?-j|8r?Z~uAiYHLM>-*ag6-BW^~MERLwJyi$>DphUqNpIv2UB2pNFPU;3e+RAX)u5QeROdekPLFSNr zIMS6o2&A3K*jKVXS~lVA7}yGdg21@MczzTe%}sFZd^X;o;G%9ZC_Eh$fU_rY;|GOB zuqVxuK^v(?59b<^RR@&(Y8{MuqkMR)iSaZ6G^$SHY2*!8;^R{`@;ExE_X?XT;6%>~ zfsFM_X52iN)C08z`)$?P#S8$Y1GBxgU=!1?>%?NAL8Qro1# zX<+whJJQ20f!bxk-w8WZMB3ovV}ehKy?FlsYLsnoULPR09yf1)wLq+iLAMlOwzD6S zYkgCR1{++D$u$^S;Lr!iEYJO+-apcuZv5a3jGYyOQXO+Cc2uXRQ? z*gQbXIB7h|>kr#XO|}dq9J7Uk>T~_70>ioPn7fj3(htp{{DK99CV zFGI5hBW^H2nrSxpS(2=~gpfD^ZAv!SR^PqMAAj>vR_arr;B7%9BqVy&KW%1}K?#E& zlqms>Cy(6j3^xA&6cvGtG>r!@V9-D_V}=@B_M$jhMQ(L~Mot-j$8DZRZxDiwiqg z1SnfF8`esMOmT{999oU~k`=O01d&v}@uE6K5RTwa9vk;kE(l92aKK1OneL?+AP#&@ zC2e`aQEmj6UTLB0Qqm}s%NE$;oTQRFRzv8L_Zq@%F^qjrSXw^99JjL@JnA=sv-A>q z0lXen)$lHku-rMcwTI!%Fb6cJe|g@zBN=VGBGs#{By|k5(A#hl+C^X3Sz5Ayq+6tW zCciFvLFv9fsnwI5-d+-VFXz1a*G%Y`Y#b7dRr!3d3eTg}KA@$cWcUJS*G^&`6-fk|G$zyYJAY!OC1(@I zoiFq-thI&Q<}4Y4{uUBj#H`YiRKsf9twixpc;#MJzF}5xuG!uCl@x2_pg0liiu#?6 z;a1mdxXr^s#vg35`Uv#Up#&QFx6-Cky2x4U7|K_PB{*~BTCDM1y8BHi9_>4RiLbwZ zhn|&H>$quP@shntX*Bt9+RyO5d=H)aP0{J}`il{VR*bZ3g)Q&#{Xn$c3r7p7bOodZ zAbwIzi1$}!W#M|=wZlZLT{MRQNF)MA{{URq3%|s#T2ZuW@xagnv%+cHTxS|MpNrCwe(T~k(=b1$28x|H^M*IY+v$p#RT z01-1aM~U6#n@g6j6O-7twb!QMHkVgTJlapv3oaQWxQgc^8F>YklAsWV^bx>F=j}Bv z?;W^t9a`LyuSk=?+KTQSg_J6^gc$kS%YO5KjVlRn5a~y299b1SQZ?pioD~r~?jN zV9OuM*{MjLa-G5Ys;S1$Li%#L)SsKI7W0<(C?O?7LeF^|Dcp&W&T_@HUR*h8ghB|+R?8yn zc3Uhfp(_+y;Z|8s4lnjwH#Y@usYZB}DCwUaAW-K@JqYBaw46gOUyLUdaV61VvY2oU z=W{L3e2{yE0bXP4xGEaP@u;V1@v61rPuwkR-MqIt!vRWBC)G;U*q(a=OTB%IqN`Wj zX-%w@sR}7lNIZz#Q)<4sbd)~(j`fO_YgtsE8K<#pUp2l`QVLSBtPbjigcUm42Q_h` z!!2ys7Z$E0Kq*k(d(B-lW*f11s3hxYK#Sx$0|?8^~~0G;q$Ek-%puk2kX z&TZXKYX-6hVn&w}{i?Ms6&^H$L`ln8mg`{u1eO&4dkYO%|7SdG6R4oNN5gYi_i;GJx zs5-->oqQ*RfT11{RL-0#KUo$+tl+&?UfE_lbq!ZG|mND$xX>Lw{`)Tey;hr%_CEj&klEV~*7o)k1Yf zs1$*a97AJNFxiv8&5zkp6pMKa4531Jb#e_@KCl%!c@9%hR1zaXPM#b%f4ZcIvNNr* z&fS>tY-~N11;&}+t4n=5kHHPcf3BvwpiB*-cZ!DWlRQ8(zx;1jBDO|0*2{1pSg^7} zp($h&?iB*+(%bw+gvo-E)DQ{W(Pl|#yO~%aC0$D|I0VFylg6X;f}|%IVF|Y_q}eu9 zousQ$_>tf%L}BV@D3rZypi{Q?>m(aXVkGfyJyjWY_JAL}ZTQB`f@Y_<3FQ!CIPX!M zN$q$8J|?V-Athq5%UeR>TCDBljy+HlScWaZ3l{9i;B*bDOMyQ`c1JE$(z^i6K?bf( zvX+irc^-XqAWxh)Hty7Fy8i%XyD`SBZ-_XB<;0m)phX&1jiHIUYQewfHA<87B4#x!<4z!F@&|2*BD;PvQhGYL8-Ee8!13%NxQ`YIo<_T7E~EXdxx!vJRizBv$ZP^H1ZNtxg%l1 zf+9&VDI3ny&a~>oOqbj`KoUvbDo<9DfRPhBM+(!eA#Ic`DNsD4YC|e;+*;EXOQz9f zOSg2g?#E?;H90|GjibleNVKtL%TicuB`z$jKnUFPr<_Ox9&x=W-r9q+dJT|O$9_hX zM!_jh4;ohbL~!F;9-+65NJ3B*sHB+jrvRPIZ(0dS;5gRE2}d4#&;w=&J)R{FN#cu3F%uds< z-4u)@ed8U=G`rOj>m*LaTzjIEEn6Zr;(@ezJ8qCizN*0?Aw+vB&hcM*yms_9nyP5* zJAm(^Bqz8-gb*x{dFocffu-GvSV>gvJ;c&5f>np3V0&si`ssIDx&iHWcz4oek>G=V zlB;5QB|z?cYb$r=ZIqMvz;9Vj4??<|kVrhZbEF;2A5>P>5=;}SkVuogdlTiN9Xk=Q zlNARCAY5W9CVq7_G2#MF@e#_P;Qs)^uh02GGz_sYR+UdZsx6V5R`%TLKV3{CV(W&7zcWRjFZ*d3HoaIRO8Ay81Sn6aYZP%9ZRkf;C@^2))xk zBjQSpj+;_yLL0wPAGmn2j$UgYZ5KgiI+G(~;Av#QJUl4@yhH;y1}YTiQhWg*Ys6tw;9- zL-Vig$M&mc#~X<_8bo*EHva&&i=kL*6A%p5ZaS{TyJ;tNDM#5>-eru&p@AfVcKy^~ z0rk}`INj5CY+K#hrrp4Tpp@Jp;6XfPI}cSxPeO27fH|4Xc)N+;=FpUVRZ>&Ak@ZyE zQQo^0yKwI=sy#r(L_3%xjb~-yFGo!4$F80{8L=RKa@U%PXL}27tyt~!jX&J zTdKt|)G~bK^)`N*wgDz+%rku-!f+wK(z|&45m!_0l+@Njz~vAR4e4B<9l7{YLwCo~ zyTC!8@b91OQk2Euf~-R?ra#KR{>50CU5zMkBznzlAP6UNM}26weLu!odvD9RAK9(- zcV9~tzz2XgB#&;IE*3Wlm?X*LSW*m;xb;@LyRjOvYy^7Ka(>FvlKB7}YXS%T4auNs z3LtXf;%hX)C*fM^Zb;HG><|9{&8|OfC#brEs~^C2{{S|+KW!kfS&E`@3t3D7q)6x5 zs2H1}SMPF#M8#X(Axp&VS$gKu=YopuP_!gO?F%zLHAi-`?c1xLNk^Si$)oO}qCqle z)GFgBVd};6o?61vHF@SYX3_O^l71CTNdsj2g%Nafi(xnqNI7R8$1cUT9fo2e_T}vg zUWB10Hb^ANHJ7M4tQ}WPURfn;c;$Bd%dmE?AiS_AZGnOH zR@G>1o9ixgFn|KJEyREm-g}3QdA(j!T?%4$s&g}RiHe~wg(+6nmQNvYRCd$|<=kjD z8S;SgIt>;W$T^ELJ{nUeu0dz4Nj%oKluxcJ^3EI3o~2q@Yf!6y{Aua)l%kKYRO>iO zYf6#$%jlWwTt_ry>;-{yjb?lz$+h;9x35qVK@uZ<=wlV>-=T~y>f*-hq>LOtY}i`E zU1O;Li4deDf@75TSCI#mhebJFQIR~Ca?P`V0v^P!&C1E(6hc7X+f}Z4X!PxmVk)-E zcDY+Go3~PgTVa`bf~1oG5VsPg_ijykTp##dURRbPl+ynI%B47b)MH!TbE^7JM@Z6= zZ`~IE09O;;?mK6T*|&9u-Lrbb=u3^h!u2+!ksyP>*N=R(@@3n&mS4@ST0FHWmoUqv zw9#B79c?LEXKmIe#8rbi=gKPOfpdy<+l?i01-oY1X#n>?L{J7h(_c!+zIMp;<(Y0n z3eZDKLnl`-TpDM(AlGNnUqiZ&L+Vk*QL9c-SGv5mdRqAs@ZlKx*Hfd3!n#%I$~W2C zJFj+Q&RCOWF80r9GL-@dB0Y4=E(9ooBt;Z-hnq7tWyQaISneT;7I$sS%Z|BQ@$FE% zYH2F@#1ap8D*Idx7+pFnb*Jet|T?kMFD8)9RG6v_C^s?Qi()Kd1UDIR#0Jlx8 z7OGEV;)Hjq^)vM%ttzn5FlX(imI;!5Dq7pMOvuDY@xK!v(54(kwE7pZ{{U;BvXEG+ z%yaT_5x-iEy|o_F;fy`|i`$#^x6}~wJ2IriLK7YHzWgctz?KnV^J3;ht;bmYvB$b9 zrt00N9KH@)p>HLC^F*dfbj-o!Rm~RDc40;-iQD30=F$AMZ)bSVR)$q(m()=kudFLl zg4C(y5kq=N#V_qsV&e&Qpt9UR*cmW)5-QYRGOT9wT)dPa(ua_H6DIuTAA4d#wP_1aaM+Ksp{m@ma#FBUw2xhD1iNn!#X)*{ zr&|p!4#4uOyWA-SAzXdC)hNfVUU&!8hY8pvC;-om35zQn%}i-kyTBbiw#vB^#;DaA&{B8h z6knPfvQAmIxehkl*Dj!@+$^Z1fOV^W1BD1SM_As|2|RdGCa-NtR`++z_M5m`Ou$yg zJZkyDh$jwNdgUbruGA(D@y>_ZI=eldGs26pHsb_v2!hf_!lNf^5{{{`LD8WKM_Q%n z6C~|Y^72ogu(1U7&43R*>LaPrmpz`!u*+nl5w$2A^~m_sB0QBOp%6jrh%w<>P#}{O zmXZn*LEA`*+2<$KOn}-!Du6fwd}_I}fDWPwB$zu2o~4$_bMZlm^;7tURKK#r*NTVP zag7OcvZzv0d@3@OV`V3~Z8%D4+kz7=p_tOrXN;9p)TuA4=3&0%p~<26CxrJ?w#flX zk+m5^WDudttAD{b8`ZM4M8~$BZu;p2E5>JSwvG{0xLZhf8n$V2q!o!t;6)jt!w+>y z2E~)BZIczAwPi`9%c)Uy712?L-@2z#%G9N$LL*O&PhO=hLN@{`6Kyul$qXZ_Ae|~n zf}Qyqo?Inr>zAoLf#b%Bt=thF(cL}tBbU|< zs|4(=F*HuX!F91D?;L)*^LUm0Ngj&~{{W{SBf4OtR!71B98{yVH1s7QB=g_ZTfxe{ z;qZf~1sz+){7oUrN_#Q40pnarcbVCbbrGH_1aAN&aHbud18`GMI)NMjBiT&4l&S>D zBXDR#Ai6*bRPd4AP~X-BAEV#OraVMM&aPec6>$U!jyoQ8Btekg-0DExTnMO70z$h% zB%OzSOnFKIHUV1+@u-eSB+igHc76WLZ0Y9|V#{!8v83SX^qCA5O0GT^Xa_3gX*o3tqxI!f95O?NwsIIJ(l}8f; z+fv=&PT(FxYKrklB|C8w1D#zGsS#Y;P)X7ZjvRbyD$bdbRDr;rbt!$tTSUhSj^RNh zaphOUqFWrk@TFI`WSE!S{c}~=fE`%&bE^x~k$Z6>NPXYeHD7*5R!nUm3iQy~9%5UL z0tg0q4~0*|gtnkn!1q)DK}Z1d<;!ZHU||Y8fu_Wb;vjjtR8JFBs8li%e;r1yu@au4 z0C&|Ye*ltC(@>_i257714DH6db}=KPtAarOBxCg(t{{H^Or625<&Ht<;^+Ypf!lEB z*>1UgPrXa=9o~$u3g3hcXd%oS3POp2ho*cx71;cjlmx`u_h2f+f z*I<;y{z$IPlWS0EUqhBea}mtaKm&0e71YjM!51M|WwMCcdb&s4wgzN;mcjwFlZS59j!U}!piOK082wyd*&x#?l7!P{vZX;>_A9N(1e^G%Jlh5DXD zP22~S)VNSo2NaSy8n8#t*moJ0tTHVK@nO6gb}d@kKM@l8quXT&Ler*)dNwS$@o%J)eA)`1nMpw zhp)b#q-+7Wq{fpT>gL&nwJR9C5JtC_t-Nc{FJ%h?%pr|3JLY}0%z8-3?_mmFWwQmw zj0>iKod9rJd?$?zEn;3x?ByIFZy}NohiKD1AOLbcIXn%T_B6bVpuCxc5@uUjK0TvN zbcZO&nBuhYv{3NkDl+b}%3b*Rqs`YzCe2eO5xA;$%n{ileyX>)Bw9E)5{^|)ok@RGDJf zjdi`Fz>TyBKH8~CIzmX=YSQe*o7+j!0QMTJZCeDYM?I;nh);6=00}>NAfYm4Q$5p9 zU4)em;x_lwcsf!r^pgfusR!3fx+7Y4;V>#JvMhmqq0}gmFrYU0)>g0o0D~xl*eV|y z%5hgkbsnS@stg_E(h8??b{wO6Q-l&bTxkS?K;gZ66XoMhkW!*}R6Hm6P5B(%6)o9= z5wui1A_MpG06k!e23V62cYAa@~Zu{DGjesPn#rb?X8A+7oC{f zwy)b>gm0kUjDk|1?x~uQs0H@0>mk`9NAf+?v(RTn!6rIT%*Vu9*?}I$DSw;cf8;mP zF<x21f{k7<2^d-?~2VY5fqB%oW!awUu`as?w-Y7WVsp}y_b%BB#Q^;e(|L){iHaneR^6U^D$86WsH4bFr*IVVlOOBm`q`s^WxJzNqgF0+Jt z%kmrOxV5x@GlZ6Hr*tQV@+Pob+aI8T`Zd|^`Ub%oOkw>n+qk2=TxGWhu$J8WDwh8M zp(mI^m1ELwUbu6COV~B@G2aC`=h`ax^;{gj`YD%6#z*cmnk9w+AfY63?2YQ17SN1I z(h?!I(stXCG;5f0o-35zwqq2=a92}yg*eNWtlcRpg9?zQ!30nSKJuG;5mMBZDF{&t zMxc^3?GprgjcQe4S_*J?Ovvd@jNB%y(a)5=v1(uAD5#%Vtw^2sAVp#z05t+@NgI zZBswjG+Yv5J6w0(v{GQoy+)VjxVn=E2DjgURxNG*)ofbg%9M;Q(K|#OV%UAO1%`l; z&uZS}Nl_!lmThrl%2kJ11LKRa_EycNEJ6F%4jX^(c1ZY9aIsjiuNN*x&7`Z3wsS+J z)FlLO9r0EGfMgNf6g{1kqi1PunAGE{T%H>WC8A*+WP+Tj)b5aabm;e_46%J;??M`e$LQ)>yu%) z4dvtEtqE)qCB?Xy3Ga?|nC-3+XsdfXF73;=NmY% zmrSy@)6}-$QpiM-CwlbGR>{~l6NI^p;S8b1uC7u;>PKmWB_IT996LnMvbcss$+)}s ztu*s#7WZ+e$7lh*)!D9a>nxu0cwP{dGK>nlaVk@1g1|e2UAr(^If&sGcyqTHSr4EA4m}}L z**ms3t~qyyyNBWrS((>vqLsirM0i(zX+`LHYBO#&XKZCQOt9s?7{d)=_gb7wO(*7- zg?IPu@Tz9Ac2{Bl061d`(7qrSR6sMxQyCWR%ug>S+~48suEo;aTqV^kp?##0phN?x zZ$t*&)DPpVAK7hke#*I8Ni#Fe7Sd)o;@noHkWVP!J(SryNHI$4+>$io(-`{{S1bt^WY`ddL3&a+^~|AmWGzoMGqfa+SixW?&z9>eaDz z9~y}XIHLhu_2_Y!@#9i)<^pUC;tF@?P&E0dK;z%6)GOx7P@9IIQr)+4E}#TQ1GwYe zQIR-kcm3WkdnuVM2%N!RnvYa-_wpe!IMU zZEcWJJH*j0Qhm#;3m3xe)&sT=qZMg0^a^yiKA>t3NWE?TJD2a!+EBycEwm6vXe99s4Q-gRX(j00ntLn7IL!v+~ z&(}mPVX1Zd_I{I2huecELciZvTIE3Fn7$~mw%xvcNdW9s02+y8wA-uBdc8_U;2p%& z+)mtD-8|a48TW~(C?9(}2au#R?nhdkb!BT(mSSX@+j}iD+(m2x1BN7M9~w$TENUF7 zlWydOm9mw?g&AUnLj`aWKLnk}vVzzrwaA#GJX3rjQbx@rN4lXc(BqH4ig@MqWpPDPE=fJ-qEDMp%>*%E`Jn`G*g(=6PDdcf%8ocHIEgn z;pT0^J4S2)2er4hooh^)rqk)4T{_qWYOQ8wPQgL>e%KAWUtAhBY60wT8_-q_BQRS6 zM$Qg?6k^Y%69>Y%_|0UzjrdpUkQ9XZ*&|?eRFt6(X(cHtPWz3<)WF{05MoM=JO~13 zhWu+z8@OY{=`zy-S?U`}GIW@ZLTIlKDK0jUkp#xZgYZ=pG}5H(nk}#-tprH{Tz!?q z#V=i*%r|iz+Xe{xhr%U5f)&7T#L`tKeZW3D(y&&P-b%reKroeV2Z=P5tdL0Cl=Btm z=iX;}J=8~dfhs&s;CIwVB&d_V+wW4}OpV5^hQ!QNH-dGOBpwhzfk^`*KPsItdGE@i zETn8vq?p^frd%L|r_$Wdg+VYto&#;_XoDg=kW~g1;ZfXC96d+X#%fcb6F$&5R6->u zw4vONBo6(GL8}W5nkocFs;@_)kVeo9`zpf^3F=9X3W2JG~dVTkwI#P8WnLbE?Tc&dqk8CM2n>kBft}<^}|x^h>TV zq5GADNZ4WR!0+q|?A}afaxOF45S+lq-}g(ctGfRHoSeC)yl`#E#XQ5g*o*c+Y8MD2x_S3jl>NG3B!j;Z zTuoSxEH9F@-@aQYg(FvHd+JL#h9IWIUAe<}RT+VukvD8=Ai9Y0G@$*uq$T7T?ls1h ze~1$%@z~%@)_L{tf^S{n-%l{Ec3(JQE@?}FLMAy<6?DJ@OX(bp@D;}0y~Glv>Ara& z{#`lex3W^J$Dr{ATxiS(UKdv7Gpt1*URtb5TuFnx8srMPywe_b@dNVAQ)qSe$%}`C z_bh;D%);km^R__&N=OHXI#0?rd!5SeT?y_*Gj|hKEv+gebeiTVN|IEtwRVSjJSr9|)*{_bp=<2QgcC~a zE;EvlEwZhPNFz&5Tp>HpWI90lsjiTR?-v~cVOEMJ4~V7YU{jQE(xmL9xP66Yo9P9` zCn00SJWZjFT*XFR)>%uxA2fNs=X*tjfF(Q0s+N@s+9Edp0F_%^q^iwwN1?GMsvA(5 zJWTuRl^u^`Ez7(uWp<)sLX;_23I*nZ!5bm=Y@npXsBx^Uzdw5rsSuz< z)>DS4g-ys#Do+8w8bXRj{oLyn$8o(TMSBC~=xy!91I$z`EkNAg0)LeiEoW%oh~O#~ z7<63Uj$LRmNDC)mAejOI=iy9QN15A$yf!uzrxrp_W_cQB$jzfBK7cgCa#&Ptw2nrp za|5L>uwV&FhTJ&SzNi5}eRMyVTtT>MQZ)wnlgdvjOlxt4zOfRq!(lXemR4E7@bZ-; zg|<~5I*G1qr@|6`VYLY7B95>ZLa>}TC9t2E;61g*>l)IE_x{Icq&roU_kQ7(yTxHU z0lxdygK}C>o%Ac=R5q>^B_U9G4;s3(o~co~bgCznd1tG>k#_YrAkh-?yZ{`T2|tZV1*?h za;++)a@fl0%Qev`I8q9Bkas*i)S}@D)Cl1`DFl-mk-q>Uwg4TH3ER=}tk*P-2X>vK zhYod$aF`Py5yG2}tRB=8zV)e6KryRrx8qLZInPafa-Pe2TvQfrC;EIVgyxm$x5VAl zWT>S)$>1xy^w@s>%W6sq``+Wn`9ofN%+4rbZ<&p5$FH?scc-D-i3NyF_*5+bIPs>)xYc1hzncm-7-+@w;czTGdB(&Hk zv(LQKIBl}p!)#dz{2i+){-Bzdr?V-cCxs`hWB^UeK!2r3`)PqI*9lT1&6Uf}7_SPIz3INV8VdFOl{j>## z$`UpROb#+D0ul^q5zYXp-z#9mz{c!0{{T5j`)N(%7)y?)s>SS-pmx&WQJz~4G&VGf z^$jV+9!g}LVrRU>eL|?fDI62G8LOvPs|UDwDuVK)_{yfKrb!@ADxn%=gzX{-t>T>& z=iK3iT4r3cfh!TQ9di)NfUjB@(zEchzbnBW!_bdM=z2wuo*NM+qZm0|c-vFS=J??l)`FHX9;oUEk{tp=iT4rTUT8fZ=01fn!xA!+H|Wu>QN#5s}>ODq%LB+{iDzM%r7OQTpBod{jHE`I>*EY^q)|i%P#BnPpy2jjE z5?ti91j2~$kyn}XGTbHf<@_;gN6n>oOVXq+Rk&^l1Z+h2(7q*yIbfSI?UmiWw$9J8 zruCVb0YFIgRn=vE5t@`7b!ERt*FlU`c7(!jE!LPnj)SOuMO1!w5}o$0RfgTF#`@Oz zE7EP=OP$*TztuI>%AQ(^*~2kap+G1USURBx^l8z0SdD1walI#j<*+o%i5!eYNGQG_ zgkZSAJb#Pb{gl$}@i!Dez%iNdvR3~3y5%+_DJDk8enitQCPb=9=TaQE#YY^!j3<4{ zt)t>;g)@l(D#5WK`OTnzYL&vwX=7;NOso__NtrQEF548-KO8g|a@wWm^6(#J92e!8Z|vpB!TaHQI!sl#xEDK_Zt z3OmnvHEC+oF0hv0K~rw0O4H6fCxNCh9J7P7gIwrs_uW7WY1ft7Xh@iikG83u8_zl} zrB=|$&V6>G&FfA9xd4Gi_G?Nps~3_$ZvNR!6FgNCnh3=pJi@^d8++)D7YkNhw7x_a zFw2yxPvV2W)le_t4CdPp%+Tu1JZ4qWIut$OB5%H|m`|$HM;rp@z!0pLA>22{; zA7y5VKHAzNR7XAbttMi24HoHDS%ZIq!Ua6L)!QgJPk_f^q}$dXK})`Vf%(`Pkfn#kd_)L zDkDhc!iuoPg*e;-d%e^pgzU>{8^U6WaIp@w;oPA^hx~Zg7Zkl|9h@umVt4Eyg=EYc zRHX!@&xaamYSgWYK#hT?u+(VExJqQnY{VV7nrYG5FaT6{*PfQ_^by$+ogJ0Q1Ou=Y z9Y%HsayF?%M=m^MbEvNpnTQ96bs%IrfT950^3-Z0iPEB!YzHzpRL6h^a-yLyB7ftB zLU&HRB4ijl@$so542t3hZTQqz2Fm<-scwV_6Sl))QC*FrefQsbu`&#ZxH_N- zhzIScuLG({01jR|?^7O1lPOUHyp8HBy`k;fx~+)@Lv%*qiJxUec1eO}cz0CC!R;vr z$9@$J^BX~d%B_i1h>J*3I|%f)@2Hn)1(!sL&`i{)Nc6V^atDa2`_&IObwfx!T8Q6{ z)ux)eMrrq1&90$$mkOUr_Yd`rSK!oDVYaazBO@t zK5ZoPs&xJVJ)$71<3iXNmHq`=ay!>)#!j4o@j6HDGb4w4X|67?ODm7XHQF)2Q_cpd+Umx`hmH80wgU*>!9wGUv-?fZnj=iOE>K#Ed~upspwy{lmR6`ckdBPP(d2C zrVi7pxS+%_B>)ZkGjG21&(4o7J&+sOOjt;Y>wl3%wPh`4SJ-jJ>=w_gCQ zKvKUQr97z|2vM!1ymuE45PvAp7duj}Z8j$1sr>O;H+DivyJT(n;<&JJ(4s@9)g;no zVn|uv$Atly?MC*@0r%T6`Qn@N>kS1$^@;B52i06*WRO5nBWlzW#Ha(r_fQu*La_@3 zs#Se%4D33}La{76R+tjh6+KDZ32gksZ|f8WuLfgXaFSI zZ$7b7a)Ki&V9lmGHYnS>byQA~bsUq7IjB#Y6q(y?wx~spe;INGETA$B!Cv_wcQl zi9r$Hy(trp$gRZSTE>~}k7Z?R5*n>c83AdE%A7PsRTbnxGD(RY(@EM758G3g#tM*U zAKda5ju`gEAxOc%fsRhx1*4y`y=~8#*^pKe52M{x_CzM?^hA8_-?Fa@SS+92$2TKk zV&VGYq1)QwEUw|@Vo$l&tf&N9k@2N)vm-m9MtY>`{9-s#E!JDNLLwBDfOo0RuLJ;< zH-59;bfh1yq7|h?s3gH8jkpRgaoWa~;*^k(U=9^Qk11y96aEZL$9b#bwC-U?zit&l znB%Nzd}K!ByZ&^TM5}kK)3g&E;*WCnp@re$M}DLY{bsq_q$m=Z*ir6ZU+!&)AK()` z-0PFob*CRc*z5GIDnBpWEwxeD$uM^H)zzYkn@|K12b~Vtk)TS5=U28yQnczGfgUyG zs;v)AOzwDrCC0!)mGezUt3r3EY6^lm^8K|k_fJ|OQS(fJADAjDgO->8ZlPS$rZ%y* z=>$(9Sas|;cTV++2U2@eJ>T)QX-Bz7xJN1gRH+~p6Y8f4lQZk4bwLT(m?w>GOVX_; zNe9NHA;>9_DJP6f){cnQBp8ZHRn02z*!R|I3OY!QT)T}Sicke2cpb^4sXB)aTLUp# zE-Xxl5lUALL0qJ7Gy%;zYqzyGxoAGtv*uS(4=pkCisJ`*^Uh{a7-hNvg0~c*>J{iN zotM?Sf;xVNA9Q4G#b&(knv_DUm_J33ef92oOaA~vP5%HlXNT&m{dG_02%|`o^_s;b z=u%R6?eDAum#=zpwv^(VY)@&#C*DPGFdc1nm_i6`S#t@LAqkSf5<)oP{hDz&rXrn^`zeFAn?^^$H4j=767xbk z)+<5lU^`cA4-T*jGz+rGV>qj5R;);+DH2F+00{LayAMT~TNT1E!_q!%zqniNS-*9J z**LSMl!nwr!-(KX9*8_R@rvbH2Me*x`R4|}-F26kTit!rLBOp{G&L$?l<5`dy!(C; zlCw@Akd%~Qw~9hiAt@bM2}m8lK(C&9ZP)7ID^clqXJ=8Y&z!lfW#N8($J4z6^mdjm zg?_V%S5%WwTxL_+l^kCM@A!{Z|ldFWs zI`K{N`n*2vV4uLbx9E{x=E}^qX_l}%C8w%YwiRg3l1TJg0={MbC{=O6;o%-+-^nkj z^^fq5j%;2kr-Wj@ZT$lVu=@m|C`FyJpnrl)d#WyB#PWt$%Xhe*XkCSt2Eso6>)1k= zb5_9}R6~kaB*yg#o0lGSEHFZ6WRR_gc_+AY@UJBF)zZl6J2JOtVRo;%j1ASJ3u~3z zqh;PKb1EQ&1HmA7*Umi@^luUA7CBSQ<4!utOLV>7_s7ioC#C+8QS@s9>&w=hw2XXT zzudQfP?r_WeoVK<<-DkKrdVd+lPki5_-d4RpEv6@w4cl(JE%p=%tH@Pn_>B>yUP?P z`McO%%ZRs9f6zRSiT@<{O!-%NOt!TT1?`X zs@v&Yto^lDX^C1qjh2y|n@3Q&aa$=nclTE>LKkkg8FSNNWwmO-c z4@xSkPSUY$Rd|K4r5NiLN9USp)Scv$9psv2Se_UG0}{19rOBq3iDBnqddiG_5>0Bk zlTmAEY&3f*hft0h0iJY)Viu&4*NwS^sMAZkw^W3w!aN#R?4@zo#ig=#Z95)Ag*3FJ zZKOqPzpgYhbgo-lul7g<4Fyd7C`yCMh~OHd}-Wkvw>c!2>F=f-bF{Uabn%D z8FcIf=p=jToNDC?!mk^ZehiI)Jm}1Rwd1U9KY1ihBw@T8!7WHZ*Y4jm$H)IQs_JGp2_;C74{9Q zcb3X0Q!bSICXDb@`Mt&|g>q^By#w-AH~Pg6X4XqMo6Z3Vxor*rJI2cT#W$)F-o+S_ z(}#xQef76L3$fS%0+0#nm%nz@?%KW85^alQsUdKEA_vz+7_mPmEFNVbdZbXI-LPRXO6Wtit#OL~s>-6_yred_z*HbSn-hLR$e-2m^X5!4?4}K#|5k z*igh#c&B#G-WfEJ-t6=>lkjvN2}denNs-wg9wXgS zkfft7;K|TPEdv9G3WlV}mKN(m_nB0!(4RM7%6 zfJsuPvoZTBE2t_G6T^Y#W~VrUPo$pui0C_=K&0|fCUG-n7 zJzj#K2vIy~rJ$_MyQiygNIM=C+H(RG_XBWBj@Uz6Pb~`t^16R zdbcfB$`ggOl!d5C8c-$&BV4|uy=qVY05754=*=irzx+XGm8S;7Bm*{$Plsl^7n3r= zGFC9O?6HqC?&_CZdF}8#GC-d*N5Z=YlWKqTeT@Ejy(bEr7I!fmY@ao8v~3HVfs znaWd?^9qKP;id#`Rw?A<+{nGYPl@15gKFuF;uKS;*Oto$VV;4Zd@Ybn%TawFbqx9QH{fv*mOYDJH?w0D?NDe#%!2r!ZDQ z%s~Z3yJ-XbEh!ln9$A8h69by~9jm2_^yvz2!RR6+G^6%YZQndrqA;tdJAu?I_EB-= zIpD|`;Tx{qAP>egrF4Id4c7IvM2VW{q5IN%7&YRF6Zi!h(%i+@{{T_mk;)l7Ini*+ zbCqNaXzpHPfH4M?j*l^gkQH%m0rl-&As;Hi0|&a1!ci5zw-`bo;IAb>z~B$pMbKqO zI2|2gpnnLrfzAyqba9Ck>NmFOGx(;uDwmBVK%)n7Uya*H_?lTb($qC!C9@n0sQt8E z23wrp`jv&XcL99ncck7tMm{0xL{k75v#kQLk!5l%jZ}!t#u||+o7`FuSRl{-d zqUbWCoITNv;Z%I8p79NEu6=cbJBDI7lUELFakmzoaR8(P5G&B`D->}grryVa8{V`d z>#kv&vOaBh5yUa}-oV?mbs&a~`U{6jJ4OcE??uBXca_@+%Q!$%ck?EspKVq2m#6Lr z8&TxI1WZBHD$gk^&T_sGw3(Yk0s-4;s?LQ8s>`S=)Q_4x^?aRp zbAToxF+8|c8-2<=s`~L$WUvO>4<7oUN|J-HCM%Z{*iV3i3eqf7+KF*f2Zr^Rq8?)t%yp znmUp=phv!{%qb!zJ)ur0Q+F@0Z{P?Z0}4@t-!$d)hf%@;WRDs~4Yis8-0M)D{pri} z!{dG_COK4DC9*4T!7S>X^~bJjD|gBJ-UN15J++l6-o$6Qayli>4kV}?G;hGVx&2y4 z_ax2=C+BeS9KLY;5nh;i_L~|Ab5V!^xu11mQbaPr&moW$3#yW!$@o>MJ%l!+`Re0b0c#E^ArGB%M%S#?0+ zHadpgLVhN*bw6gj%{?>PKOnBrQKZQBRrQHIQq)h;F&t)w?Gyk>f(SG0qAWQ;wBRsI zZ{J>Gs?hY*PVIC`oPi0J+Ks;;R6?N!V~=!HtIgJkgY!*oJUarTC~iqtDBN+bV>*Hr zsE)`Ye0Wk6q7LC(cvj310Va8#09GA5IPU{$0MJ>2lfZMO5)1%A<_~f1@TTEQjZmKO zD+;5sk-+n&A;~6S(n-=gy|Fc*q6VEjebu8TWn*&!M*%<~(;Ebokue+6ihQaW$9H>Y*IaibdwBFz?4S~ZPSG2sTuRdmnI?PBXlWnCj@2>gN>xpwP z;DK9|;UtvLd#g3)oLR!{`;KiBwR@hFt%0ZI`?JIKNB*{_pX`Wf?^iBWKLcSmSmqsU z<9gD&lxj&NNCsj?_wTkSFeY4LrA9!T$j6R??Boa^J?32R`8u94keP_hyxAgsDKQEnx(Ww?oI` zrigC0^<@3$v^A4uss}xZW=9rXI+#v2NM5v4^n2g56On?I8f3$WGHny)9yaj*N3U z!>6rXn6=PE51er*_!ATx(4xaQ7BO(^3Mjh8643y0(8_;pSoGI&kh4S{SD9}x__Y#r!Ji3{{XZ4GtXGQq+8iH!01uqFea;H zjkJTebxy`ggSO4dIv7tM9qI~{W6|MXWLqBtmw0aBh21tR)4Hx!+aPz9IFy0?YWD@j z-&Js?+k|NW36A85h_4vsyJ3Br@EZjUt}&Yy$9Lh-Pt+^d_=?cG$DC3IlH#E925aSC z;#8F9ho<;ae>;5-w*LTxbn?)}Rq=3NE5FF+t5x6!lsZG)XwC7M<+i)Em~(87kR zmj{4s6#CXH%Yyxje$AbuZRk%{nBV~6w+iTfQ26o0I!k8*ZTYv$*n3vZq>Ynta7x`* z^itTaQF7s7^&kk)qr;z#dp|+CRC;engstmT_20*3@JE3E01>*g>V0yhHQlA^FEy;6 z#g=YAjuuVjjrxctT}nV2PpA$RRJ*KV=|o&!yeEV%J`~BkzO{6@Z0Q6ZT>W&GvkUfj zJ!Q?BTx~{Fke(g!Ue7Y*@L5~fzQA#d+#>rzu?vB2{2}4ik?K(K6nbv)T`35~aV2S! z0_9szcdohmSAgS&hu99fvz7VsxnQOyM?cT6yjjad&zg!!H!l1-hCD z>Q*|&qEJr)dDWfEmUkBS3_WzfZPwP>%9aXrk^cY&hb(bxIJ3Wd5Jy>YWUC9Xt)<&_ zOKy1TY?17&jb)l|r6A*g~#VoIx zxhU%1N))834wYtXj-o?xST@d_?HQ${O<8&q~6>?JIc)~&F_c>SXIaX z_*R1#{IHvnPdQB*1(@31xFQvD@&5q4G4ZI%QpXn-cl=}fYFmtAFhRl}+j!QRjO!Sb z0-Pq}`bnTQDf0{!ewDGCAjhp7|P^*gvSW2I5I+jO&g+=Pt zS0qmz#{o!to%^9|hn8_%ipD8?i{)Luy$*F4i_M7Y(0C+{^HVxq$(efy=)W`E*jrvU z{jHN>1409_qH}87W^z){XaE5#uw>)G8104nM`IGUQwsdxH7Dz;{O@j6WX0M>?6^>`Qnw#m)+yrlTW0+*T*GdX z=HH7yu+_FZYMbmj?UemC`oweGZa%7?1aD@U&V=<#An!G6gW)$=_9<Vag`+D(cYw2p}ePWTTeyy7<(GpMaE)7 zt8Fc4LWyZasFATG*PQV+sNta`{WMe|Jn1r1j!h9j{>$5K>c;~gejuHIO33yhRapG$ z@9lG|Tpm2(J>jX1kyvJcf;JHXWyruAq@;n@|n5=f>%Wzagc4jWBF z)f{G~JF*qLZB^w<;WUXNLrY$?r%{0wcFIpul_q!J(W(>`>6EN`srGL!k)rIr#Df#&ye25~eYhUPv9a zbxt2<$)=pm*?wU+53Hz2>g^pq-$p2MJOY(+a?> z!7_AP6%sp%JZja`E3M$a_A7lxgW7NZ08^zQ>~`R4x5!zJ2s^oM({Mdydr~~hIJ%;f zlCRiEBTroWAQQjkO>@RNcIi_1gewxl?Se$hSbArFU39FGjOOfn54pR<^Cix(uo`?a zk;`<)4t1Ws8R6CBm(9P}x{e|>-dMNtx9&jsKRB$F46>OZj@8m2d#0JVz%#px1sGl% zYN!qC#%F+A;*vXZk75uNV3*6!P7Xcov!1r3Tw;A@Co^vlw%@lm=WG-CA(C8DgQ@LB`(_oK7wnX=I)6@H?T%{UKbsls491Ds#2jdgWVsy0KbE zMV%x%l^1WYHVVn(Zu-C;8x9rc=ekAd3h+h7amAJ*BhD37>c;aW=>q2*#2o`14 zy4N0=S#Kz>ftFoDi`hy1Pe8rVCUi=IMrXpx76RwYok8Qjq_J4%MEINR+}d8}TprLY z2Gp-M17pfm=oQ5Vx;D;+T0?zV(eX{ILqz~exEj)u00sdx>~JwNJgE>z z5j5^b#<%L!IRRa}7#(I!yKk~Wu={ig{5%5V*Lx%eOdXy`|rs8+K3= z)DsEPk~j8OGpNPM)3=Y%?DUB!My>w<;tgE{j28+?OoMEI05QtC{{WMM)ZRnIzySX5 zvJZ6iO0GX}r8$@Ir7aMoFodZj!3u*Q*IV*&F_3XUpg=i+uYXjk(+=zYa$u~jCFFXR z;#G3`R3L@=s0XGz%bT*kRkOr$TJ6(_FB59qm)T3H>dHwwD1CH!cPY7dQIo9hI2szy zHmJM7?U3LK0`&^h95y@D(M$InMLjI}M7#=9jN$B#J&ZZA>ZOj5e4-!SS-Gb6{{RqZ zkA-wLFlOK-ZEPY8ROYZ|RsaZ}3RXllIcd$FP;Qkdbc1k+8|b!eGwu|HW4%7ONpqxp zN;$$)`zx%k1#KIK#6@j5OKF6bLH1L!4Oz&Sd((@9Qu;^5<~XE)exXrZPfV8psqT`o z)9Ze_Ny3^lrLY0y1tC~7Vn{>*;Xqo)3b?lET?CWT7CvKh7eq+)R@Z{`nB{}miuyyx z5F2k+m0l`T2%Z3Jd@Hlu;EXxeZKX?2okVUAePzZ8*5Lkbw#S@xVJj(AB*y|hV`>26 zmibdZURyNtx!)aHT|!p|?R*HH6tU6vaabuiyBFck;agX4!SF=dVRm+^NGfTBppZL- zO*mU-6%<$w29Az1QoTIWix}d3-AYfh2kEG2XB+m+*waX4c+$NwE9Yle-1Bk9-N3Cx5FEGtsYLb%@rETq{K4RgmNG5d{ zp94){D?V%zM>QWFHJ4Wi^V>nM)9W_x*u^evPWmCc;i}!$NFO#2*S%M^H58{6Jdik4cdjpsfQ%>&Dm}Auo#(kT>OUZ&&v-K+Q5G0MWl4zapM?!r82|&d6Im(* zgCkDU-(G65>1ghEJIzT_6g0XEnK8(b2q_2j^o>9GNP>^>dd}|b=1xJ@NO#q;yrT~==UG=n$^#qa+ zBlgllldI8_;af1Ious5~9;yP|9B-%ly?NccdFc^WDPAo?6cOj}u+1 zrwhki&)D~FMY|Tv4fq7Ikrl+$RHG{6_Se3^M6d$ zCREliuU;sTxBeYyZ9BwLkO){Dr)i?Wa-$f=aC;}yWYRBKT7L+)aRT6<#R&)-_|h$L zJO=I(tK3;;H4xLshdA4hu7j~V#jg{6{;_B0414&}Tg0D2_4V!r1!|Gs-&tKo-iEbJ zB(8P*BQ0dSS(LkPnDZA{Qw0in0E6m@si&hnImDHp#}u;?&DK&U>AtGL69P2)lf+w zZcTc$czFbU7hCz)Nx5020SUyz>YfnWYhT%3n!Ho4B_R#~wJS;Aj{IxR9SkL}?w^9K z;!>6oc=oREm{LLas8^yz!)ET?o0R%%3PO;%OM|^9ksa0YUr*%c)M>}U3;zJ=pL_oR z3aRDkHD}{d{{Z~N@~=xbw@vh+niX(ITrb3u2PRty`lwps;9NGFkRXoAgm9inf4@AHNDwMS{xfIkgu(D?^6p-9uZ%m@V>D7Ty<)mGMDO1 zaX_L%lzEsOt4VPyGN@P_h!QEb-UvDzAxI_?p|p4!lDiUH4>C12caUa0E1S6_SBUp)Is>uC6xkxd?(vZHir|W8RG|A8*Dd=&9)hn3=g0n7M8-?lXGlDDGER? zpit`zNK#xxktkAhs17}?#EP&BY5T7-vc7iVkUnirvXm)D)E2LeQFOtb5z>Zv`>DdP z%Z9Dmv0~K9Nm5D_y&A~cN@H%};ZU-bjrJjY-XDjl$FWPNMYX-MKM3NL>*4FIG^Zy7 z<)blIrwG()8ms6R;rLbdF^bz@*e$!4c!lf9V%>x!ONuAgz;Ps)1C4g9KgnwD<%KtQ z(iM_#w4F_}ge}{4*Z8H)VM+spg!si6^h3~-T^d_1?-NnF%$G>hc>MNlkVfn@d%qb& zjdYg6EW%colWm~vu#H+t=0W3JoL5tumRb)*&xz=8Jr18|n-Z?y8(ZbcyEZSb7 z_tefawwo2OJp~mRg($?1Rl)JRy@_BgGjMOMt}Gra>fW=v>rjFWlqhjY+(hve(!ye8 zRzK8Mf2qRi7%F&rjZt@BpedP6x~u?U0DS5<(nR~}wYb#*26>vX$Cqz&hb>IrA=M$o zD?nE9-xXSs-LVI4>s!>pW{*YU4Zl&pMO8{>@T6n>yx_7p=XQAxS<5tZe zhAqG#2_JknP4p(svU)wRTXyI{akdt?JC$`w-m|BBOMmV`njcNF0)j1JS_Fx>M>^!k z+I&v8`+oz+S(OD2HaQgnAntV-shOTS#z8z(O+!$J+LQFmR`VAKyUOYpc30S9 zfjx6d3H6B|Xsg^7=gx4OM;1FsPg3AL>Fk;m%J)Ls7Hvn-E7Gq~k@1Qr!vMCs#PHeK zFNe@SC1du~lOoU&iQ4&<{oSbkO~L^1CPjDu03>kP$MZ(DXd?+=1JCfMZ}{%6E1d26 zyhXdD`Zp~As2@ot57}MU$ndb7S2wQZNN^0)kN!V54|DC{HnLX^rqmGJ23YFJX&2;IwjBn9BS7JS?iY|2)DQ*czy+Sb0|iT z2|{@tJSz%MFlU&oOpuX0fUKS1nq&l^A#b*aKqykul@9_yKW#(DEJhiKzhu&hOKa?z z;wowf&orchN?bytyoCxb$MBpR8NFTE!`x+RfOM%`W7k>g*6gOUY|Yqu9knT2bkWU{ zrGq+%^;3zteLIB@XrkY^n-zni>C_R)Nt$VS6djwt_LS56MK2I|TC0F(&mJZSNj|Dl zFPuRHHibZlAkjk|8s9z%YWm#mw`>oMJdTPn_dqQzqDcP$2$S~G`%NGD2iYpUq7GT( z_jWE9ZSB|!DJe1ukbShPtj&mBwBrh5-2vp3t4dD;?V^Fu)^J}7WcLUu{k0{ogY%h5 zTCGz9fmDh2O-17H%kLqqC4L~uoeeEbo7PHpeQc8(Y?&gu zJmuSuJaaE1^4xBuwQ-=B^`?)Sdmc)fL)jk@Z91h(W%N6v*#f-wI#H`x&J90`JD51i zofQeDz7OabWad+Ers2&iK48VTJhq-(d#dv=+yR#HhQL8eaLb@%Onl0wsj}-AZnC2D zSJo=ffR>ie&ZzP65xq>!c9+-rdlSKJ7VCGHw$EEOqTGgyh$+(6)WioyLmsM*}^zb)@@(SeMsI=kCu8nEOm$PtVNhl830el zywjyX?>_49xtlk1KbVRe%~`(t7D5-+^=#X?hV{n~l&A`%XE1p=+O8VQ*KbDhyHzXd zQq6Tbbf<-(*~$`b_uJ~x&*~A5Ca!fjrEedl&Pi_K5UG#|@vAh3v}!_;6S|Mh+?r>M3D7JAg%MoobTq(wF7+GD3|w?@@k# zKtC>B*$c*+UD6U2%$NZ9{{XtXmP~aj!Jl=7C20->>j@%Yay;lh)23W1;!}lmY+BVJ z3tP>m53C}rQPOT^Qc%-bD-VD+QtsU%d;26;FBeL!W!<;M9V{H_QFn5`!Gpa&G__mc zYj#w$yKp3q14<2YFcddC4+`uV$vLZ}BV@a*zlYg3WS0t2Z*Zk+QscCuqE5jh-&8Dg zQH?$}wQ3S2N)C?5J@Z>|bt6KAY0c`srd(YqSFb74T0f!B$~6g-1Kn5<0NEqg&bli4 zE4sJRm)JY=3rPl&dN{dCb*|NCmdj7VwEe1|4A1sTyrZ6}l1BqbEU0$0(d)S(%XDg8 zjlxkesDMP%O3G?LKYF^8#!6}ZrW^;^C&~d7+M;8ao&0OQH+0xq9U9tF+hC+>^pYDN z?yhXSs1!9TtU#T}M$~(bT)vzh=?z>u(Q4TzQUH|cZUOh!41CpWiFln}mkCf+B>Vv^ zc|ePX!5SKTp*#4PuA}7aG~_GkC+9N~2mVs4hh5)ZIN9s&7PYMbYf+BUj^zDy*!-Wa z-5EC$KoXX*=3M^($XwRyaLG=`D-k}@cRgQrtyeEAfYf>M-l_8#Qta*00NwGlcvXj5 zr=ED25TmrsLdH-Q)wm!}Tov_H?q_JOOCwAJvD_;juV6g=$CSrKj%TklW zeg>wd!tGESv3$vc2sO1~Sdo$}-UHYuxa?8fD%;O(@YUQl)y3YR%W7B)aY+(FM-pRr z6)|aL7Oy_y+i9j6Q?9z<2}5W|-AX5b0;zFqtBqaeJR1;Ag}SY*9dXwcaOzUxN|POv zG7pVT#`5c!jvlKYlx*7zJ+8jxAQ2IynG!h>LSbf2Lnu-Zq&S5oX$ne^WhzPFK^qZE z>e3alk7-*-gC_zz3CME|V&WD`oo1vR@N$CwwlgYa^E1#;X zac-P?7QM4ogPETkQWT)AR<;U5iBRBDt|N^rg^q&bO}N??+o*90NLmz?0+pbN3I~`V zgItq7=uTj|0FA9vG2f=2f2WR$63c7^=Nsg*+FMSGVBDl|lixvkm!zDHiz4C7xsx*k zcTXsQ{q6iFBZiOJOEB`Dgvu#Wa<&Wz{$Si~8}C&8EL+{(^mB__+97Vbwwgi^gvyjl z?eg|lEW>=IF0foG!whF3*sWG}s9={d6%w)u?E%Y=3Z>7TKVsSMEMhrD+?|J6TVibW zYkjM?6zgRxO43ujaZDdwMZF7Y#pX>B8_4<8f(~822~dDYNE7d@{^$9%B$sg3nA>3O z;|V`n>yR9>RRq6sXJaob_SVi*WN|JNJl0R!S-U8I%kuvKv$^(~yhro@0Hd?oWZZt= zXWzk^0GKah7U=k@o4Ct8Rv~S1f1EOfzgMY6F5`_UL=hW7isPxucKmb|9vhl-?pD!B z{tkm5kSJ8Cu75B47uqY@%0Hj|9ftbHDbL?14_Vfi#d$R5#<<;ZG$c;wM)TE)agkYv_jAj-+&f zdg@Sh4yOrt6%)n@ifPRG(M0R{S2MogOa(KBq)GiHMFzEjHca(N8~0P6BQ%~U8*$re zi;W+D%#xlZtu69@P?7$S`YU~~+Ayr=aK19OZQDk!{gg~rRT?mcQkY6+D=57_7v>hO z_kWS@Cp_|HHh{<+T>_X2x(e$&*&3oFt^WXZKDFXNY7N>SYNib}H*yJb+(_Z2L=Ud4 zIVPPqYf5yo$~2NmQqLb?roR40`fcRNJFDNql;d~FBzfJj1znNUpW97_@g*nteYnyH z(wks?yl4XouYwBG=DJhL72!>|&GGD;t6|(ar5M}9)+*ZhZKx|1f?-{YWCO~O<&Eqi z#A4Twq{!04a14HJ0s}f(P5OE_%*{D@Zc;Ftl0ae!8V*f6GB!xsyk6meHsS}fYTtzJv!9FaA-5JvPSdw_8)fZ73$q46 z>PN)TE2~c8BmvCPo(QML7i6{;g#y5q+*A%Hf#p?o9bml6dUlh3U$|w50s>D7<;IBY zlBFbp5C_*n7FdvHN^h*6wi`p5ddAP`Cx^6AW)kyPEUC+Dmfi#tskH@1ub8hjUM(Ju zjFZ^zw^P;#20EssaQXtHEkN)xHr&*Qko(IDX$51cWC%$!*c^p4yE~G1wsf9jt3R^2 zCtP4aB_<5_)+i*V2E>Ti&eZ9$y3$9Qxd6!;PYT0ra5q(}iJlUerqG7UNKZIV4)1Mf zgn&D6Bo2Hj#j;X@PhXzNW<@N_wN`8ykW%kshum;%y&@Ju+v+fZs}U+UFMwKd{hZmAmb@KyC+BXYn1|G zNr~7|&U3yuD8z0`r_S%*T>daCQJ`{m;XL=RqS0At#e0|NkDb?+YO;R!`m+E7j{`vz6puJ$Zt$(l{Ebq95#JH+i+R*dLg z=$!5ai`bO;{u=WLSdg_Og!<=&X?C4iO3lQ_Z7WD8+-gHugV$~Ot<}?orqFaFS7aFD z6%y9!00kDTm#Z|N7qr5Lbe;veO`(=4LTTQ$Fs|?FjLlA;a4jFjg_fQqCT@- zRAY;>S+sQZWh(_uJLr`Uq=j-d%lZ_&v9!&&kIEOVFdxE8Er(U7tWkLfNIU_7U1Jtg zcx&44>=yO8Ocm*p2e)Mp8LyLiT->^=jFr|^WAqpJbd-7&We2WlH}kjbdF!Tpxb_8| z9>keC@a%kf?X!dN;0I8ALEqb4{YmQ79G%Z~dUHDEd44@`ze*B>l=^=Hn$^f zD;z=>=$`2Zm3f~L!twkj@%%3l!!B8V-NiJtDFlE)||Nij`Ms!$*BI z;r)H*&3!fWa;^iYO1%i)l}B}LQhcw69^u;yt9dOw2VUFLsu%cUh08Ua3g1rTmjZdt_a6WR~k5~P9R2$Arv{Vt`3 zsXob1U+2K`mHHk!g&(v|n^9x7xthn&zrtEkA4w_aQ$}aY=mB3RxMPw{4LNel=Tl?} z?i^{>!V~kFLby)bk7aZfS#Zufr5^(S0Pfc1!`0z9Vp>SwQpEesNc*tFtkQ=ZWry8f z(V};%R_+*Z1SQ0ReyYZb8gW<8s#4FO4}DmtFA}E+_!jtvW4lZKaJ05vwhg$jkpU!~ zz^f~zTH_C+61&i}=+dH6H6(s0JcR}!#~*It*9YOdW_Zn9VHk@gZ`$0(g`-fD8^)NpL(t*+ODe2Hw&t(;d(6;}(lyczzNJE;`gc z&8TMOqs8=`$rIUxjXXf@E?hg%Whzx)Eguqw50gvVwve?GOg!dPmt-9b%t0Cor<3uOr^}(43<`00cFyln| zx-{~8?5gQ^5p8bs2i_;F*mL1EXNL%MfMRW*CO7^`RaWr%&G^qcv%|-2L=G0O?H}Zo zR~h&epG7k~Cu-Rod;9A^@Y=R_B6*(rY>A{LNm_Ig6ch?fa|dcEvCS8(IFWm7#lm=! z4_2e^+J+G!)E;`r#;(IhVmVArQ&x;?ca0P=Gs9iLCu2C^OHABYT(C*>fJ3OC7&G-& z&OMf%D$$9ulC8UKsUF?M3LG(_QgkE{8;*3!?9kq#bixu;N3ya!3>(q2e0sG;y=bNw zlZQHf_P@1pJ`ShhO*v%hiBo9`96K9>?G?&bbmNX4B&JM=m8p4`7AJl;u728tlv^FqcG)NKffTUB@NugEfIIgXnw3NmD!Ql4%8%4fLN~O-kf4v9yHh*#q5Ab!b#VAos;- zw06g5-Bv9!3U?J5PboMc1(%NcKfSM_7_jVDIj$JUQ*IIuuX+}5 z5Mu7#O|fhmaSH7uD`h2I2e7qsd^;%Eqqt7OYJuQjNEN>+Z_eT%%p%!_h6Feq?SjMsDKrSJdN#b;A zpLHo%{xsTDmaXmdD}4%1ttX6wwN=?mkJP)hjkf%QwX=gEUpm8rHUKzGeQ{OSE5kxk zj=JknCQhJ19JZl`b7ne1l5kE;9P!V5O%)f#1AuO;Vgly0qoD z=t;z1SVD!Z!2tm3O13p=h!+K;j-g2fOr)sC4$RQ$#xRvFNw`iSY?*_m+^dhMnz&YB z%Xj!|*675Z>y!gw2GPWoZ4&?y8&OsgmRl`}P@G_;np>lt-m>bNTZnIBvH|d;u8lKB zFO)hx%viP-n{>R+FKAm;!#dkaid2$RByuL9v4P=_Ta`O~bd+i$5ZND6gw%WNuZJ$t zcJ@!=9a%bx99EP#sMwT&ymGB^uDh(})WWv2ApPGc-jVJJQ+byRvehajn@0HllByCs zp?X8KxbvZ$tS;7+ln**#vXMN(K^xZ>dkR|@E4NuEt1x_N#98{5Gnqj+!%_(LQm~R$^T8NJ?lobsBib&Pq@@4GriNqCG5eO-Y0I>BE844RZcCA z(2xk)uX2tE-Y<-Ki``&CZJl%Gz?l&Md+Fv|iP0i2GoeHhtYzK5l)Z5O0BV_DV7GYb zULSPnTu=Z3-U5Ew2YHgMBqT_IJ`|Ni!?7_~t*lBi z<446#DEww2Zqc#%EP+y)vLu2=!mQe}Qc(#=^#M?oTNhKpC#x$^);#XX#9B;uH&R=|vDXtT z#ne0!fGYCZ)3d8jsG757pil`&+`#dwWm-nKV5z;(3yk6TwjGDA;W(wjl#&6JK!ReC zfm+<%iGJMP~a;`v`Lh!faeu!)c|CGNgxVBkP-y?rlXmbc4&Ys z(l<#x@&!7ZGz60nW+J7AV1Q25iAn$)%1_Y)c%>XYZa5nkSE&j=Ma?^(P^2|t zp3+=h;^4<_;YV*8R|^cH$<>gxVi(=Gohkruq$><<#=@L_`D!44E=JzUkmZG{RFx;J z06_^i3y+OMcFN1EI)ao;&a0J2>r+AmI#Q07)8p4yMji^?yncRxd4QL z*&hn_H%iucVCeTW2GZA9oFd^!`{6|Fnc=FuZsLl9SG<&tRl5n@XFnI-Lkm!XU~NX& z5!HrSDG|FPZ*2p*t&g^iumTPfV+2Q4-{NYnq1;|&y*s}Ag3LYDrUDfN?-R9LTd{89 zRQ~`_5co_7Sv^|8^^P@5XA%q!9rQtHfVRwRbo)hl+OF3<6(xPn#eJ07eZrheGUgl2 zO}1p-^?GFkVWe;zDl?fQ0CBAa++9hC-xP4sCHY8vZvZyl{CXlXIt)TE64)lWwPcV5; z!k1}37Ce#gD-KV}=#>lx-b^0SmVVmC^0r<=0$IT<(xk`=g>CiKo}mDeHs6gTtO=d> z@1>evBeZ-7qXxl*q~TU%fD`yKN5+-%P8NjdP8n&WDs+an;Zi!&8j1D#yQ@lDkRd>D z+BYJWW)?ylv$Sj&vbO+i0cdP#O{UhsJ9p;IBwIA=#t;OAwxxe(>!p>6lC8`RHBpVf1^CBnH*oqRw+<2=`I=PG&Lt+ zef{)BoJee8*5l|gBznyb2`Ykk`|IfmaD3uU?&8zKW5SH`h3&1r0LmV?LKLT+SsRih z&|o`B<2%1jo%!|MIsVlEb9~y%t>z2I9k+F&@k^Q< zY@tF&FlxDyr470KYVSNP#pVS#;@w$whK{AIsO>z=)guehDOWMhvCBy_Y#ri<+ttE! z&l44n9?Tf*kYm4kaU?pPu_OXEibI5!_=zG9I*B2SPz5!t_^JmgKFLgma0>!KB{s@> zKRHIZ_9A74>7A1Uemhr3!4u~ALk;cgI#XjtkHr3&KH{@1gtLBFRb)DM$@!C{n^e8~9hO#tW5N zX-KfZaCVRcLM53@yA6$%^0_~W%*Fozh`2hpj4)6C z0A>3l!@0jH-C;MYe$9lI`$}3HGufX^4(b?g>r0Xs1bEkW=@Sb$ZeVD2X$`tz9hmlb zP}#unJN5^iVD`@HDg@}zprA-Sq`~FiUsUNhnPM>UZR&U&P9lyftg6z3j9c4#9O~ZT z4!9grdr1>1+v=yD4!F`1SE;R2w|VcPEK{QvTwhy&Vtqm5)Lkg4Aom9nC)h`}s#TNo zt)8TOmM+jflMf+a`zC&>>&98b4Eb*rh+nsxDGL25T3s8?i1NPLM zFC^xiUgu54k+5tD>n{#~JOV%@`>OG*p_s7UOE^+45`(EqMayJ4-7->0@T*kf*-M0$ z+Ld}bqCyEu-Cng4c0vH%UaF&e6Gi>=*P=pn_DpV&o(dHHV#Soxml%JWIL+F|m&(zg zp+AZTkHUtUx^~^ft)fz->P(3xHTtN&S~tDIl+yn zn+VRWt(;2E{@H4B;g-6UvXrDJM$n<$cJ|P?#GJjcO{2O}>t;kG4Rr~F526X}7(A;b zu4_)g-dn*}j$9XR5SDGVeicMPBaj?TbUZTLVQlGZ6$pqLT4^Z&d`)w_FBC1=w`{`t zzO0Z+cH5myUM#c?A;lD!F+4WnIn5i2_71TdW-&A;t;E{^>~%1e13($KE#lY~tDDR^ z%M-z_WFp}JpEptA+Tw%j+N$qy>&D1utkQ$Jv}{cibbXzjw7gaqe(}1oxMgTdP9-Wy zFkvbOVwvxx+em87f_RP(h-ACWFBHSBoCv?et?`^S?g~jfM&F9Gtp~m<)SWZqO3eOF zcX^)OwYzJJ+F_R^&0}Xg;jq2C!jg9Jt~Jx0wXKU;6yeB6$&cXI4q2(Q*<~ty!lodN zw7ICnos=ry0L7Wbe3LUy7N^Hwg5!3L1gdogo_PyM9sr>G>Zj{vk#hBKA92MqSK+P5 z5xk18c1x}Il^!)?n$OPL$2ceIs_TLC=n>4-$fJTfB-*Qnq946%5V zF(GSD#%eYFn=GNFLc_}aZ=98u8*vLtK3-V_oxcKW%$U&ulz~5mJiHBhbISQQBPC@; zK7W~SUSv&fTRY$msEBBd3@8Jaa)un>8mpi=G^q*^FeYIA( z4h^QPtVFGQaJG2+bXCmGEfcUD0Ih@xdK)P9zvNBO@dx(Pt#Avh*GxP zbE`>>I}&OJRk63l^LAgs?+by8{94Y@(%FTCIOV#YlSd5iORrGNhD3rMcBjkxIa|x&yZ@wl>tD4H022FU)PzrU2Gw zyNxi~($lGNR*h;K&X|gj-X`k|rG{E;1cSLxznv*+O)zy^@!ARa(!^(m zD0^wd-rXl)`l+ptC>5w2cv5LS$99PW5V{lF2i7ZTzi>z`B-Cw(7_1UDrImOOJMkr= z{UFbqj~F#IoNC!1C2TBrosCn#iRW3c=TUT{B2lX->=2_F!%pf_$E`Ifj7JMxB;K}; zU9G56V{=*)FVr^8X9ast|&^P5)sSSpa3LA-oLhs*QAs~l$ zp8A6JIe3$y4shaks%3|q-OVt@Q>LttS&m#cX@@T3Of4`HJWkXS-Z6_?pPIjYJm4DL z#wB@lQmdPVxdf0DcBrfE9wuu|3O$@{Elid1F07M|g^PKoFtr*nH;?B*r_r7>8b}Je zLcrvv!Kz*=@2#{DRSOa-*G>;~ij``MmUO(OiocHG&p&k9P_`aRWS~Uq1pSo7-eh{y z5DYZaVYZwtmdYhc0B*frCYdWSSa@C8M5QO!KN{n*`uW-hYmKL_o!O{Va>ZE;=#hXl} zKxjf63ZCvJuCVp!vQW|5Q>9vprc4R@E1y$Ubag4+O3!d-I%d2_1-W9=3Jmr4C{v2K zb-hYLbsd1=?Wgk2H+h)w)xU`;uDO?#*;{DQtVE5fuRh@y_=VdyHg@j3n|8XVG>OwB zo*vq?$=GA~MiAmISW+K#{;)Q)x<;52TAyaH$*%Y2VUKGpV^Y3f$f3pT!g0&AjiJDJ zcn{l2Zr&0V?25R=tqZul()$Cnl1hjiQajBs8n$Ic3cs^LlgW1o20f;vrrcGApp>7P z4HlaCrXz>0lB+SW(oFbOfx5w(NlUoaAL0eVPX5Ye>}xEf6#TVoJoM^R`-KZT;rxpm zq_>j!q5-yrNk=`YK4w&yLJ2#XlICK{$m5LakHlqX?4}o-a+7j;+xLkdMUV&9YQ-9l zXtJqJirz>-!_LH_W~A7z{{RbpS6Fq!w(b=5WoT3w;z!gf8oEHs$QoP1ubn;XS`qM? zWnCm#CQCV03Z8CV8J}RQ6)Ml}{)H~K8<~E;LjLO*$L~?qUEMhct>Q4tpUA!zt^ko6 zQrfgL=o3BMsAbNQ^D@EEoIR=DQD~30YBKsj&FVdjW2*lEM8j$LCZE}=KLGn}1+r&B zx3hIaN^RUd-I8j;-wD2Of-E17M?_aBb310|hift4kIi>a!YUKE_B{EQvCKhp$5qPD z+d{$3?#X|dQ(Hxy)vO}*uFH&s$>61dPo~v|K=YhJ!reShyQB#E>(35cT)VrM4zKf; zPsW-l93TVZN7x(QUy%O*&EmF)=l=jlpzd)zsb?L2al(N~;D@yzs;k`1-5)emUd?H6 z^9@@qa%a9PhJ>bhQo=^^X{-bm?Ul={RC`5!XJ}tYy&bbEP9ce0M*y2rpN&LcOIa-f z8^Q5sjB(bKPqJ%~C?|xP-hsd!s()go@A;KJtzU~Tfz)2{JyiK(nTCA3jgvG|E^HWjUf_De%srGPRb$p7RCbQm8=1zYe$F5{Qj$bZBZu-A%L|gYx zeirHF_^HBv+HXl4?X_XwdG}P3OJcWDPj)2gnI=f*JJwbmwwbJ{3herK=AfNDeaTRR zA<`)ev_cN+bg1wuaGGhxno9Rmr&xn7n5N1tdd($i?7{6hKW%bOks)?gdWzPAF|@jO z`szQLSh!SH!$-W8eSB+6MjAF*wV0Es(LWlDxA3;XI&Dn$L=a|%8xGyuVSPzyOg4;aG2;<7UbYVzHo!}3uy^+#|`ffTn%?NFql9gchCsAQYNbH^D zfnGORB`Gitz?k(`{3mss{9kzyp9Cb0xE^$Cmk;h;oB{YD-29Z?Eaz;8o#15T4OCOx!AWx5H}H4(x&*PN_+ zDkplx6r*vcc}s2Y`U0Sthyh%94(gYB;zh|!9gx^o{0@;(M$kg1xXp3ir(qgNCuMEQ zNu5-VpJu=gqDSZ z6a)Z0wBkdszuKwXg^=;vv?3;z%h7^q zkkzr-Sf(gX`ZiPcnp#=3;%{+fM%-E-Weh9`=eu~nw7K6)mgPI~l$st&B<^EwUDR8h z?V9roTbAFsS!v}U_3BC3j!*>&1%o9(L=F{}qV$X-ETsh^fSkf#695a6m*Fj3eQbYU{5htlrTpz zxUq>P3EG1ZXF zb0iPjQc-HFi&B*#K}l*zjvH4$6w^&hXQMjU8ftGt`PLhXt?PA&No}-(ljB_9FWndLOdW2iL@x`sJ+Zlj!JlJ^lS5&bjso1B()n63FI*M)=vtOC_{3oLw4=Sk~BpR3gD?)A~h-QaYry0!Hi%WBI z8&E|0;;U5NWqbj7nK6gjl1deJqM56!fYr$tO(>ADBzGTGX%4;wA%!>rjzCp^Z>*w~ z&YeF;I%Fl97u=T}p&Xe%OC~yhwjNPak4rX6Ny) zlPBF=`QDL}Y?95E6>PXs(pG^VP?J#|=@&D+eqqadWX}d|(j(etzJ#RDlVyrJgLq~t zf)Z0|qQ68T)hpP0smqIdn>3d1QW`4mSWpAJisUY4jLC3RyNqV@v?dbfpVg&VyK`{9 zwadrXq!lO^RjFS7G@EQ`MQT^)$1dH>_fFp1rKe#iAv_k8rV_AwhysS(0FbHUL>Ym1 zmupI#wYdslKr3lphjjgQLP~XPN2;qYkGNVFGCAx;I?BpkO2IoSO-2){ML3fS0PJZ4 zMf+|%mK5%&3OoVZesyDNqj1)xEi%~}i8HqFDiaO5EnH!%aN^d~gsXXt_Ndrp!rE{I zt7k-Sz|s;oi@OdbN#-=|$|-my%dFfb;sGrvEi=JU>hX$;in-P=S1?U$3{}H-32}p@ zkYoePn2KULK6b>jj%Mh`E8_RKP8^IMEnU5bb@t08X*UWlAucD7fTlUfW4w@}E3NcPmF;u4L0N+=KC-3a$x&oLDnsofTT0)Yg(vil zaIB}8TEcRcdds+@FZHS`6oS~Th<8!_Tob(kjh295VN>1vwT1s34z7naA z$)a)32N0($l2SUqmI9+DWk8gxPs?u*RDa1D^4={yTRZ;%D1H^{Uo6F246Bozv~eyo zbBVih%Fw9`ZB0s4J%+rqix5!IlRA&SsH5CP^}EccaD3>EW6TwK4$@ zM$9Vjq`aWY4wWw-u!VO+!2Ol%u9vKB+vvwVEGgBmWo9l6Qc{~AAbzTvnCRyl@zpq)yqvukddsQkUUKc;yy-~ zZ8S~`(rXIavN0Sf#=sHy%@-=p+7FVaLT8_iqiQ2VlcWv?lB*zhTE@W6)zh)BB|euh zL^V%&|1IvIlY>(66ewu4l@*`y^sY!gD?eiDB1hZ7vqxYf#dmDIkdi5#v*g z<1Lw7smdMXRr$G5Q~?^c^$KXRm2n(twBnbD?5W1*e@(bGiN9Fc#?i$3CZs~f)ohWt zJa|PktA6f#Q>OW~D1`+HJ=01L+pmh#?;?SbdaWR)N4lFW0(}5#c|&U_Nd$L;NK+t@ zr0}P45Q|8NDNsB%HJw6vI!CNjvuK{j?&5Xfknrdg{Tf(YXorG zrk5PzP=$KXD@AEg?J&_kqA0j#OktD<76%RL)s6#D6$w6W2qlFjLxD=BrXkx>L6<~` z+zvFDt~jt(nC{_K7cyN?N#J*@fVLbk9)M3Y(@t2jsaaBZ>|}#UXgiewDkcxIoJ%ek zI=I!7cxoI`4ZFBAxZ_JWWy3}^tHZEjrExaOo~b~Q9BVUJl#|Q@2D8lF zBT!{T9t2TvxhF2>JWDQh$Y$M_*|{lF+j2(f;6WTHrr)G|IE1F-3c6tZB{tw#9-w!i z?xjG&l1FhOl36-r1I8;oOf@Rb@>-f{V{6b^VDvgFv!+Q2o#!ZQXtbBf#Axo*?? zG_9y`-3Pzlu=_*Y5`Dp6btGIiX#kO@hLcLrh@BBNvpfPoicki7Ug`ql zeN^!0S?22`kxwK5d7o`Ql%#-r=(t^w#j?rZX+qJ$eIIR3ODa(sPSqj1Dcx!VpRS9F z?5guOOaKX_24F z8CGYQ@U4JniLDi$KyO*9OaT;t-#DH%soYk{ByG2@ka+FNga}xP+#1TzlfKbePQZOF z39!^liD+s&1p;>-%Eh9TOt~B~snJ(u8je5(RQ@ zbq3UIK6OcHv)S4j_-#l{<)RxQ0b{elESg)l%S%ddTHO?(1#%mWfT+p1x_zXnn>Wf7 zjg$yTgX=W35U-R9Stv_4YdQ*cK-+I!MHrLol&1&876)Xg=t$w>cBg~4M_=B1z?0Vx z#iq}ma$%H%#$To&L!`$qRnfj_LzqLYBw+UkZ6G>JMyn)Yu=u3e|2 zjM$eLw=;v>jX}apXglz)7?OIlne>t?b`!eH7`@RI;9#BSddDtR0*AsbjRe1iWHzgAOXb9NxvUEsy>5z^PM8260$c3mXK?Vb`7l{ zokW;1F|dfFfFuH)9P}r2=9ko#_n42R$AjaISaL zoQw|uQjiSdZh(DkEB04KN|K(?%Spm8;8u|q$>0h5CmyQsVth zsMDb@EJAHxKBkRrS1+i~oVW=*j8aX*=Z(vRetD@7u<&B+!4?-0%d$UhJd0cXBTgFp zPdzj7sA+lM@XjC7GfV3iq>}L(cHMDB!o+OVVRrTbb=KOcpwJHmDM>z$9tXO)`Uu;z zGLaLs(e5&!ye93k@K&a@Y1RodLJio35C8;-+?}Gc)!frZVk%`M%A%YKAbKE?_0#TI zxP=ty)!KkSrFo-@G3Wp|#{*TCkppR6+ewJ~>9m0!GBS_K8h#E2BAK1RDDE)R#t7I>h9f! zbr&9a2q^+i>aJ!dUC#GUR(f+|w68Khl`|er!a~+?{8tKTR|s`d86{;YT2ImAU2TjP z5l+nz5hP28f#331xQ4;&buBxTr7)Va7*k9%4a13KB*9GXN4lbY)&ssBY#KrOOAxPdsVKaD`8{i* z6TYJ!k^5_fU#wwpkNqYYU2`p8$m`PdbE@?P{{YG3rDykHqVm32rDElm_gJdRfYtp-{e-OHD%p7%{wn9(OJihd3Dok)HP$Pk^r3DM?O zIinp=O}IT(t*So_eQ_H!*zWvga00w}nKMQ=opTlDYRt+Cy}3G4gl^rtN%R?Sxg(k8 zWY>SuNcC>Ji&)%5+-Sk*mWofod%S)}n)Jo=PergYz+tH=Vk)a%UbLd0-fi;u`Rod{ zgF1sQ>5k!26NiwK2ob_eMAYS}8@S{N;YsV7NCYGp@7^ox3Mn5Ea&K{ltWtPylQG@3G>f$_(L^Scw;%xH;3;ANsictyc3E28I-nHV$^blOBh^nj?Y-iX-Sv%? z;#?eFX(fK3t|Q-72)Sg2*&jw0wQsj@_tOI42X$(d1!+L zi?pCZQtu@W;Gy-+QC5;mG);7BxjeEFgj}fkyONzrjn9Qf#JY=2P3JAdG8fjikT@jn zN4`ZfVb)tB9FS&GIf<;rb(b4)QZ=V@8y)-WHpS`cNX1zVp$-E*Zk4ChM2d-NDSJvt z1S&`DqQ{kCiu7}ZTC{+R{66W%l;Mb5Wmmc z(DzK3cSp81cn)K?Wq4z+^{KkI8eg?hGus>-M=nGP<(c>7Bxj7k=2^Q<))f8fpS5`? zDGP0It_N}2nxe#T`<}56rC>A=H=WA4fH>9b880vlJs8c!ikq+v>RZHsm?vQ;iKQ5* zyvUQAlyZZ4h=n@N@-XT2O>H9n|x-w`?|9dfC?3s!CLn2&T5|N#*XQFtY<5blv6_ zquIN*)R8|(0zTTgz~4>g31s7b-{1*9nx9C z?cXc8SwfZqG?4`wDr{nhL%K9zFDDReFJ z&4yyf)TJMsu)-V-MDgn!DNT6)0HTDpu9328Zi8+lV-}^vDIq|CG6?22uW;UHTtNwP z+SbS^C29$61h#-Dxgsk*CE2T&VXv2Q)-fD<R8Y#4!XQkNdPCNBY$Iu5lm; zTQ(q_hLtRX_0XlxY{%BMG|h#RG9fBDjGt{(zl!JO6^5}jHWYX2nord{>n+)?=r_8! zze)>N7S`k_ejyukgEi$|p4kobuZy86LKH1*3D5xC+o!vZ)!D7Db7mCf?ZX{<-na<> zIttK*b5I^V)yDc+vd6KE;d77OSS*XHdt@jf1v0kUN);Z^YT7Q+yC|>gM#$#(Qrk`* ztQ`%nh@Mm{VPf6Ym~nb_Z`$WYn7fO#wRE{@aFs18K>4C$Y7nu$O}(*c#RQ&U>}zaw zS{RzKV{4YJZ!B22PASzq;z?6#Y!ElvH=5JAI~E&S^;ZDyG?J6G=IA@JJOT-gH@8CGywDp){$%DKAeiadZaLLl@T|pd_4NFF1#}c5g zl-*I~t9p@bnz06yJn5#cQM`pD1HX+uLddL5#fKnDks9WTf>ToOYWn(MAJ%Tl>QFw zC%~lB&@4O(2$Z^>J^ZO?NGaJsfl#`YLDCX-n%7qU03;|63PEDPGz@oqYZS-{KUG)i zxIx`c3R-UN0oln1l7%}8#NMD!3ePt@QhlFgFx~pNEupt@sR_GjKye;CX$6HLtt1_` z+|$TrNQD!}f!>lGZ1bJFs%vOLf|S95CY8X1<4};GeYDt9%^hfUVL<*dsaFjtDM&{N zk6!f^;7C$nf+QMXZPh&0t8Xo}{QA#Sy(db7eJ%VXQ*x=0NDAIKRsH^I`D-oUd3noK zGOQVQDpQ~U91a8k0OBJ@KJ!%JBy-_OUy-zy!aD1OsAzdW`srSOaXMT=7Cd%4c-GX7 z#}mCEqri>0o>U8BMYbl(4>IHIEh$TZYD!F#6?(k$gonDt*}k$=N_HDilI8%?WNo!Z zaVJ=t8ctG*ZOWqudJdyxnJuV8;r#v2_Jc2YSUUZ5*P8!h1t$6w^`Fh~YHg z)1=g)PBfNS>{nK_>q|7ol@d&G2Af!v#PFr7U`QJZLxvH=hU~8%J2l%`hE>G?+#j0%0DTBwbj8vo;0aDT zt3(OXi&oOm9_p!9d(MSrO3fISqG#~x+|#{R;rWlVrnzB_(7UuyMj>T!XtBUtGN%5r zBkQSl_=~D&vi^&P75tl{Qhk&+hxEUlZJX*Z?_0$fJX*a#a35)_yA0Wpvl_!!R_n`G ztJy9!E?TW$l%6RbB8NFH`uS=u#XjRH@$92%cG~aoM$2xQQkdjVhjj!&LbNRls`AaWvxuN-DH|p6-QcR6T59WJ z3h{Yl0Kqd_0P&@zmzJW^TToCiLD;0!gkkQLX;X+#tkWLEV0aJIJ&wED@!bRg)HtX zlXIp|dB=+@Y+0x08(Kjw@FaK&WryxqLrf~!lAxV3UNNxz+Jvjy)xnE#zW`KuQccy` z$#5-{l=>s9JZW4kNj`KGqD8885k0jM2fDP&_b#_7Rk{HuiWGMq(NNUw>Xbt6Q8EW% zkrdZx$VJnzBy9i!4=OGz6rCrV!_m%bQ?4-w2f2XTW=~-8lU_1f&`_CB*&~UAUcl)v ztaN#ql;zvX0|d} zX;B}6`)EDan_39~KpX;S#{kl-I?g}9j$S6Aj(37Az^10c>n$K85d@E}i7@mCkQNeB zcO0l<#Hl(@7@~YJVC~x3J6D{pv}dBBx;w5V_+*GWbT_>IO+`=>B}(6bnw^LOr-D+E z=p)tW{Avo53L9-Z8sjstBBXP&RkmA}Br4lsn+zm8?-YrW|Nm5lE+`W{Lv>m{h z-a@!mnQ7~=eA?RLU{N~@uPr!`&`BAZE=I)$S~bgDF)TXK0L9R4-9N$}W; zg|Gqy_tD+wMOmWq_1E0G!;rNqBdjWjsOO@L#+3w%yG5V!X;J#C+^NTFo)N-Z*b7lf zLWD-g*gbC%6zWQ?Ajlkkx-7!_I?JA8X>XcuF;uy3 z$Z5q|zO5l#$VlZxswnD$H1j($F~adwt4OobeiW5qSEuluLJtA0#E*%hAMSI|k`k3% zA8=(@@j^Eq{-C~8dT1drKJ z`)XfxlUNsR&LfLoVAlA1!JJnLb=9U2hG3cIdn0NTZxjMj>&l4IC-zrc>5DAo6yP{w zayvME<=Z#qS8doJYD*=x4MdJ3R97W`30f9@ZT8lf3QE%?dg-dYudQJ^U6-mp#qt~> zDSZ&G25LeUf}&Y6l%8g4iFOwWB2Y*sb``fn?3fBtBbhZJ7xqEL;+BgjfQN}NcHzdY z@nSsPq$J1=kas(Apq8$27F|F~i_(>aY6{p9Mb~#qy0^9?iS4dZ2JusYT*gNz<+U%e zU=IF5nM@5p3S7XDH;TBZ8pf?!^OEUkON-Q0M(1I*LHSDcJ6R}Nk^G}$xBVly_C-m| zZ>hDk)R1JT!R4^0vW^pn;*YrQBEfy8l$3_b%2Owd#~R5vM){;}g?Xr`#n>Hw(McuM z1uI#SrEetn*Hh>dq>J3Uk1><+Te-mTcY36yaz&-Wy%!PO3E4w|nX0amGPVtZv4-N9 z8(wP7;d0*M*Q_f_Tu22gNj!)rZbVRC793^acHbLk5b#jqG^`mO>Z2KkrPMIep;cWq z@_auuZ0TJ_ze>i_#Zh)~YvQ?2+}7v0?e6T^y7N~qI_LFuWi5cUD9jCx^;4euQp%kh zvZn9I#WAHIi+m#8gVi(@I;ta4U0n6t!wnmEw7t@O>lDj@_!=LFJG9R`1QNm$_^2N7Q{H z{{RwUh0Q~xr8$4i_g9kp&))R+Ft0Ud49}l&wPp<4b{>5Iw`|G=n|ns5&}kn;cb+8f zNvap`TvCb{f(F3y6#;kMVTqKEK+;Yk2GE`O4(j@S3Usj4<4TfIiqR#qJ|~HLeB~@-@QlQHx?wf5e z6%kPd>yNktaA4liyGqa6Yd(eP|A=vf2pQ1G+hym29T1)>iX=cX~k$re!Vq z`B0?T@+3&LBE<>1yE+_r>PS}Ip7U0z>lK1uml4`h1I(pkvUHh~?>kgnKMzM;=eUZz z;o}<~1HgK!`ITGUAy&&@@PwAt;UWjwR>fUvRVgIyj(nSyx=M@_#Hfmqdx>0K+cRx& zu(aDGhM;;WCUlAAH38OKvw7BC1uJPqvY%0`WyF=FxPnj!F+4?LX6qBM>{9aHZEeC< zhlDMaZk2z&tQalal-#~sE}&^Z8)+kes)gHFb){{si4}}GhKf=a(9KcM!xC)3CD3u;Dx@0z7;-=!-(PPR8rf>d1Z2>KZ~d&jYJehUt8fhYYJrzzhdT; zgVp)f`cMcx;BIJo56Gu?HGJY3a@B_$LiQH{50st;3V}WQ3YxsQ-ZsnE&*fWtdr$(r z@k{eG`o~zPKEX~qnys*QoJIq0fMMr?Rc^;z>bs7kwD{1TEr{M@FDcww{^IRK>|I$P zdWQi`D~n+lSbh%DUimiiTy0QDaIG>wD1r4&S&O#Um@F{_D2DMHQo@hr0Y4d`3%fv< zI>zKAc-6ZrD$9)Bqh~P7prhZUnfqy>7MZcGw+(IdZRYQ#N5CDZX8m2XYVjb^#q%h= zvVD;RT(ne=Xp!~M4Z_smZAXrs{dDExD7`F1G9Hj)YO=$Grs{Y5)kpg2s?t7od@92a zP#$y08)bg7Y9zwWj9I>aIok{_!q)!%Hn%FYw7a!x;g{ahAuB_KB#p_F%nI}!sLU2Q zO{X(H0xd3+hTL6Vgt3QMTD0O&pc@UL66iY_24q*2@Vr+4013ZFCx%|TX>!O=L+vX{ zlc_pL2gDeuc6WeNn|_gUg6|({-K1i6 z>T%ar5R?E8rB=_O(0BZm8u8~w7=5+xNjYlC_7L+l@DJBshl^i`DZy2mZ>q}aH#A?rt0(!`!4Ns6No{bl4|MS8anZUw?_A?8=4qjIFd z2mVye)#FymZKbXh=+f9uh|S2~m))K9Lox zUY7bmXpcO^EHMEAe4}piVpO{e;+0S4uA$rX@sVzweHRuut*Xk5g4ka^ z8&kbnGr0q3eq00+5Nlo32xiJ8iKt8zp`|GLFQB9AJSz7NyTh?GmoWTN*5s#~Zv#tIM@9!?9S~&Ol=f|ql6?}EwEm$K zEsAszW)@z<@h1@^5Rj=zoxYHtuDcu7?f?`w9042+M^(O*gcy{lZ8arYaoLe@i`^U& z@1bnK!oFhdE`TIT2M_6el|_5ewrsMMD$y$d{SdM7Onr6fD~47Eq6BaU#+fKPG?Jhd z!AFs+7AB(Hud#zXwQ+#s7TZ6CKeyr}FX2%h3uK1gZEcV^DJ3WCuTx!E+uS56`*z(_ z@2McwUEW#1ZV+|hh(cBPwPMA1q7M$9%=1>Hm3B|IX|iWyUV^*myDMHTVA>@LB0&gD z`^8gTbRmQ+Yqq^D$dS5)Rf`o*l0Af$#}^7a!KESRle%10bjz-UFGQO>O$(k0BvnPv zL)p2FMW)+zDf&W1SgTWfk#wct2YKb%fR{B#dPQQcR#ByFGH0HMCax}WK4`KeJB6&r z;u)H)xWchZX8!oYZc*Y;YD!UiG7c?pM(dEHC4fIPkxnW075s{k?V4bvN!?(h)(EW- zIVc*Pg<;a_LV-ymhd82?G*Ce>dmxYxDi87T6mX3wKr;k34&JJSva;p#})R22T{j@)gB~9K>dIbwsBE^Oh;RC5<0!W(D$SIE+c(ULdq=6e!6v*3pE(<}huF7^BZNidQ5@(*& z;cXxQt-I+Z4e9`$sf}2DDQ$*2il7M}G>(TvLwrM{r1~joAbxCFg>P-$FN! zS)}ybcF>3u#DGtXR`(!9NqME6g7zO(B-*%u0o;)>O5{dl0ZI~k#W~ch4@5xmr6e9I zNs3@;w1QxfBf_5uNbWTDA8ggi$$4ccN=fyeLYvVBInqx01+=-eBux12;A%^3fO&7< z#*))u30R4#mX_|_Jcd|At-}BgR0y)bFf)r>OR5OBXcfA%_@b`yEI}6&Ru^y9-Q21WCK8d&N<5M|nr+!# zhOOBO!m!Ls8@@&rg4(L;@$JHRB?%l>wQx#DGHPBwop4@_7XA^G9%mQK02b~sl_pzY z^Fs+c06!av@8wamrggH)xMTSbAzUrRxO8JU!bB?R!Le<#$+5%6x!r~m?aK6o6)tB< z8=o4Y-LA6R!^F{LM@8Nt;uqMSGkE3pBXITA!>3Z*aaxHqz_)!#Fw(X#Xy(r;+Nq-E zB;u{mc7h>Z!QE3*tS;3m4O^|}kf0K+fPu`_nbOe_0GvQ$zq5Os^{m63UMYvi1ixk z*9@lF)mkj3;fIhEg%3s6R5l~lCVWM6OlJ;O5sAHJI-3StSK}n`sivf^iqdP=c|W}HmB|r+tfE4<|tt2Yy>#4m#>x(kUKWB zzjqpK?Dd60iWtO!NR*{k=^BrQ^~SS0S6(3^t{f^$VZl{Lz5b)s!&h!tTzXK_HL?1YBmzm90-PhS{`~h)PuY)Mu3M94Zp?#yXHgczzV67}8Xi z6&}6fnu{Zy1zFP7H#svLN}OAWU4xpERUnAqV!Y<&0+l5lQ%yD_fMjp`Yo}uwyE5P5 z*LY>ZF!Zx@!kTcl%7Fo0(r7cyv?EVYp2!-1=UORV36#{d*eiK}zLu6s2ph_V-&I&) z4Ruyl>D4fp26p0V!r{kDYiP0*m2m`ZRrc*(S}Ux#T1qzgheV|B%ed35rBXH(7OBeN zC6OJC)L@yBM0i;%)DU2$G610*I_}=((9#rbt_azeOdrua4HRI?D0M-6LU;Ce*Ao*5 z6w^C+X{lMG(D%ugO41+{ApZbVR6>;`6s00~&pMfVaN1PZQH@Qbi2RYlp{nF*CrZE* z^mvNlv$lktQxd3w1aSwtnOcefJ-xv)vC5S5+R~!hO1nS-5fCaP#n7^%34uFsp888s z>^Rb1yKq~y(bjzup|J7r6kUYnOg`NSxw~jzIzPf}jvNAey>vN&uc}Jlae5Y^zN5%d zb`6T!y$E?oZb?c=B>w=%8m6^ek19PcO6jqb6*lNJRFMl<7$D5w%5H z8B)oT2%ZCPeO)zXrKKge5VV6lx2F|=VlE)O#u(z8R|0`GTq>inJU&zm-Pl`PwbZ)G zUP0KUWb$iWrww)I7(Vk1d_vwPd@F()kd#j_l+zEaNDGq;94Y9MHGTiq!z^S zA|u&aVTqkS?5t$1fTdl3QVL#Z=hqz=;SPzl#xGht0#=l*Bj9Se?uzj=BzdkYhrh`^ zViwW&?moKdE;3}K4PYK1f@!t400kxhXUpQv;&i@DJS~dS8!Fr6SA$;Nav~rV(t>-Wv4W) z1bQol53aV;>(y41ihf#u(aFSm8Hbj%YB;}oPxIX1?li#x)LwJk`w`FI2)&jStQ)y_^%2leQHtr)#n7z3rzFk>Bc|f;j@9Y7 zgX&UVwQ(ZorNtphY_Cp$sM}x%4m@j)V$Ejk4&lV&SZdVXqxZ`xE;i=;LX#kRjd#O@ zrNh;#*eV2)76|y&d9h(mCfS>YSX+{rcXR>-?q^~C>b*%VOl~h`a9eE5qOhecGbd#Z zW5TQzjJElgnQ7h|DY;4eMRg2MDP_Bdx~y8x&f(}V<3t6I(nJ~`y6DRWxC&Mqid?Xv zzK2q$Qct=^zMga)l(+(2X264WXgacksJ40fyTx1CfV@2q0tf;K1HNf^uSeL<7izoK zz*8*^N_JrYcb!m0D*{~LFSb&hT6PD1e5%TFQq?lLkd!o%u-26BK%MukDn!A9%1tRL zGXW!W!m-4iBo1OWtIXhLYeZeP;+Mr5U~uCzO3RqiFqc#uKw2Gwd*|%+(zA*}9$;_0 zpJWZ{h)5sA{$a;&GX=vz&>LxhQp+J)f+vZY;%V$Wv1t(4R+N;P z-fDq8VeJPZIn$>3YXBse;XLXpHdY>PLMuO#Ttq6`-%?3EspC?5+#PInLekl&GYM!D z$Gp&YowyFf)9vDhbgd+UBWo-OVBY8A!>fF4S2^*a z>^b)tc!bYsBvrF7sH~kpPqMXBk&dig%eLJJOrQZg`P7zFl&J+I4_7}5u5I9!rD90q z6zdKG@?}J%aZd@Y3PxE(tIk$xYW+BfL^pVWss{%L5$&olp%5tJ7PlCt8FIi(ogHI; zoSo<$w%OTAO7{{V#`T)4Z7cYi=}R9y>qDW1<3Mv2z zFcJ?ge5s7Fm9Fm4yZlb!78r9-U3tN{@B^7W)pdKA+iJ;JUSDC$I}$XldZGKF{!oqy z{E@eP7P%dZUWlyCze;&sSA_}Ja`J)_ptW{w-Qyb#Ik& zB$Z5f(IzW?g2{y?QaA3ZY!N!H7I?})uC5I@!M1r1NT*J9AffLMGJXu*m#P0gxTx2+%=Ja*Lq!T<#T zA8m1dn=?z_Dm9ZBO~tj7Os3}OA;Q_ZQlummanP9I%=)Q9E~~LAH3f0(f26#3E?lLo zV+z6U$E6n6Ds92*9iTncBL(Se48~Ho-piNiZrp?|4LI7!Bu_G#t~lx~S!1he-6&MV z^C!gfqF#rTyR6N5W23EY+chm|JT)N5KV@Gk5sVw~DUDX;W2?8HGGm$&tLvL0Wa+rH zSRT@yLZvm1<-6gg!ym(*Sx^BX^r1)eRR*;FSHqUsSz~j*4XUmDk%T_mrA(*5kK@rCJ0w8&sr(@ICYvoR8)x>n$%Xt;sxDc}RooG_uBb z!x`&r^F`v&3~0EAN4HQkt?vxMf14DPrX~c*G|^#5bF4#ZNhgQ|ZS0}N<{a=5^Z0%p zdI5r$#PbS-%tvX-wLFw z2*TclFATO=B&Se8LcM*GCac=dSv}wza{A`YO8)>Ewjd8^kyiHDjtO*;=2+c>;Kq=f zfRcIhicaWjz^uB-xmNfkE@8c+K8mO6P&G+^(C$~cNLWH!RBbHB>Zp7u`qst%v#wKQ zq!OtRt-JQAE<(anFeiDYrzq^lmM?>f-*g*fK~@nZ-E1b`=VR!m74?EBZu_G=>tK@OxFy1o zxR8TZD%9n(An46-3#e+}dPoFRtE)S^1(xqEU139rQev43A4Oo*iQI;$NYqK~6H3(N z4$`1_)<7e8t)z{Dx%W^Z1fQf-XPnYW+;gQ6c?hi1PSns`(I;6m0z2zVJV-n#O@ghb zesr}mIsJ5OJ%$pk8;&&M9ddm$>@={*F~C;MxJa2k6a~?N#e}L6V@pOvkcU)dM155v&B^O^4!};t_su~|4kAJvBfM0Gg~@G5LZlurDFJV5 zc#9w*mYiQ6(AuP<5yF&6y235>E9oI>Nd|`tZ=poTwDP4g(~codICPEzc#}ntU6!|R z*}nJ|Z7H^s1nOLpV}E54<;!0(vQ{qgK6%+g3GN;AH-*@$?%|t6aaxA2RT^F?32`>f zAZTGB2>|gl$dOj4m6=+}9g*oNM8E)ZB=W1A+lxEV)ng{Xbf;_W4PtIentS~5h7 zbdkej+VQ6_2kkQM9eJMdCeYx+mDJ&ksD2vok4ia&0uQYCP!+Yc_F=>xzj4 z>Y`Lh<5WrKm7dG>FM{mjo0s|x;Fw9f(t-(CRA|v6IPK1Tlt}8VFlSZrb4SjA(xR|H z9qA*M^xfm%Bs7McLKS$CEx3)kkT@%ErTc0lOuKXQ?y1KWB}A)v?ot0qXFnEZI0xq-Y6{0VGHK%_ZzY+YC;SlD8B#1B`h0RZIA_>+-I+wcHYT zdugOA*dR_8vXR>(PSda-T{i8bi6sSKm?RKH{Y22$T=_c7&Z$H}?Vah?aSQe%tGQUy z%4TWUS1yYID3U-4-ax3BjfIXb$zuIF97<19bdlRhje@@!HM?w4mx)E{da|v$#EqxK zeYGXlP?6O;B?NXl1=Lzn-$x{hE(7eK!8l z>NKq9Vw=1@yiJ6H<++7G`Um~=A7gs{9eB<4s-e~v7L#2VDU3qcDL;U{Z&F0<1a3Ws zqPGquyl4(g%ief?ORqH@LrL&uJgCLxkpOYDGLX3n_`r1KmvZcY+9A2FhY55Ca;x- zy`-S&AP^^n9qA_tSb|X6l1v#y{j^+JN;7KFDhg&c+hGUQO)k>ZaBcwJB1HQrnY$L! zJqSuqqt$?uPAbIkK?QxS;P4eCyO``HYcsasd@8xT%FItYf)3(68f|x11cZka zK;MYtS-#Ci{lsbeMPK={rB?kTy8--plqplYIBGyh?t;HnHuepfU2MGmJ$&eFg0zG- zgqY+&lUA#8>1S71uO0Xg_!Qcdw1TqXfP8nQI&|R|EUQm(Ix?wRq+yxr(%f;^19ok; z(oCyDRXjp@&#tE7&b?}st-S2+x(N1b!VNJy1)B}4-r&l+)84iu#&WjkzCsrHKAu@w^B=R7SY_6{D!x;ng%I?FAi zZYTsu_Emc9x+;BTe?%YtCo?23pl@$R3Vxy_uBoY!zj-DJn+sz+nlie?o zFS11~8~KHI8GEA}fD>~fze1)0Tx4+ZgH(FJNK%yq?qj}^ zg}79bOsH)==f0P1uEF+nxnV04Id=r0QIfqDyz9oMY1%{uH?4G^l(Lp!bq$iQsZAeY~^R>d#cRLffrJ3#y325!|Bi{5sj9;j&%r66Q@=!Ww z*AObP?usw1K-?%xe(2TWGwv>QYJ) z3xp)W^oa5Ol_}!tLMzsn%!Mok3CZ4^KlMeESryhGGi`+0Bz`L?-1^|tjb*f3EIDzD z**4mDD@zGf818^5EzCm^UZCaD!V*c*))+oC!rxeer%3TV)tXhOJ!ISSX2?*ZPe?^C zB#>*Evffq98G9Scmw3ZhZen&1TcJH$Vir>~+T4-Wu=1I3M+G8M zclKARtu9oX_8vl4C1o71RXhr69$a_ zLR&|&-GS5I@Kn^1g}f3wcHn^|A(8&-c}1SUGH#qfl<(^mvhCBGfV00On&?TeDII|7 z6aW&GB0c0&?BUmJ5aqMDlSU_7Zl-=4P@pc+cpUMpF6!Y0#i7suozQr9*Q5Fa$u8ho z9n8mhX6i0+*GWQ@nETbgN7$ur`Zdm+w8pML(}-e@kT&y#h3(upRLeE=g@m`(VcEwQ zu|OatrteQy0N^wkNT|+~r5hqt>!`}?@8Pmi18D_7fhyl``PUTkm%?2(d2=065Z_&3 zxJeRcT6gtTmJiZjNtR7b-PRF}G(VHQvPu{1alI$nW}WF99=GWeqpQp{tODxC8?(4- z@tb0_xYE)LEVkyvojiz|rZi_xSK!gx)0(x#CqxGNLwXAI|BrFR+zIi)}@WRve|`9_|(>w2XAC=RSYXh>??3$DryRnWG89c zdb%vlBwbrR<1Pmv?09$3mN9H>Z{21HZAV*2kwM@6-pV9q;YG3vftV59Q1Qz*FEH-8 zFkQ7Jzy~xQBiXU{)T&1`ZYna%J$VMCZM`mMVnr}iW5D-PwL*O^8&*SQhZ1(KQcUUGcp8(T zYFDAea1`)psR}{*K#i$}#K&$wbnuKyLQ#8eZPt6$8&9^g9NvrLXEUwY57f-yWtkqI0p zoqJ~k`BK>zD7ssZ$buehI-SQbpmwhr^jXn{XU@5uv|$&_T-jhZHurb;W%YFy=?+Lp zN!?3WY`_9G+=}*X<@cRB>!J5l7NT^e)d3u)D-J29(mEJa(swCyFGbk{Ha1g^WNabj zEYDwV$+db;(iDxS*lU^No=RCA>3;;qGd>cOf}+_nNuCP3RS*##GEEO7oD(2cBB;iD?Dn-I$XWQ91|Sq3l77RF6Vot zHUL-f6v>_gWzbjL+c+KDh_^1d+9&50m?{IA9IL)#Js;;`sdlBirqp;PU{C0%PuD=0 zzCz8d%CBDuuFg+t|=zs?uj&{tj`$cOg8r`}DKLo{!g1d^8b`{h*N9cajI%0~(nMr2pNKag}nCn0g35|(? z9?G%ESw|1b_NNcAw(8+B;>hhSUNxe1)2D7(o)nyCehcR<0k>KQFcM&H4~0ZcijygE zDTN)QjCj@eQMAO8co9vhrw6ApHXv*!vYHuH@_Sue1nfA^15t1A{{Wd@(h7KY?^k_7 ziizzQ5+KL2k#%a7v;kJfVj^aN1CCmyw$hD2PQ%B-mT-GV+bJkYf!NO@Q!zG_h1;dF zq^WNt2qilXBi&LhTkW_Opi)#yRIVTaKpfwsMr?Af3NM}huDjEY6?paqXN%e|UA>E{^Rzaj*$de#Bbb`w50tjbM9P$8 znBn1DC`K+fGgXs}taSXJU@`15IF1X8-&(lRy0_Xx>IJ2aQNk#gv!Cq}rr6A@d9$Vv z`$}WrrYoqe6H)g%iwpn=~@JhmnpLKR@MJlzizQsC(IPImY&Z1HzsVF25RDoIQ z$1Ln$4P$UcyjwWiq>MuZu)2T~*0SQ8BgBotrMr!-O)JlEE7qrqnJI7&RBv3zDs+vU ztuf1MOS|usnY&4r?i)$cq9#Is2kWlsVEQpEGtLui5bXm-`cuM4gKpEkK|TE~WxM}0=}hqzWu^G8Y8HV=Sj3!4lE)y6D3rkrUDUbEUr zB+ssBO?z-WD*pgJUq6Uu{88J5D28qp!(jaspuith53g$M)4o-6ojYdGbwn)zW1kw( zQ5!{KJpw!UQedd^ikS-!TmBG}!~st(BXA8hZNWCEhwF~FebL*0bCLx zu^!sSih)$#-jsu-SlG1c0N4K2_Od!gv2Hd#C9ReB}5KlAVQ<_E1<;!f_x31#hz}snw zm8k7avfr5C*4C2?bn91*Pr~sA^8KamXk1Pl$!^!2+_)egVBVuSIL7FdBc4hnZ%8-I z-ePvyR|<3+90k6hlOZm?cX4}jDkpytTd}lj46_)L!kBd+^?FXhN4SnhxYb5k531$2 zZbOAmD6MZJwnB-SSFF{pDRbxdrKV7Xwx39Wu~&KZRd&j5tTd2n2G6|G&O zqt2eWzc#?y+mqG<4y%wo!^WMuzHZLQHEx)7&4Q+l>8jq(@#{ zvuJwyzO4JTR8y0%+)YRBBQyE)q)5YYMpJ2YuLjl$ZNuRyrEst|l8`5F&YGENdTqf< zhPKYoPUFN?d#$}~aOJ(jFEINnDRq~SP`1_FQg;;NZvs6jBb6{Op#ew={2It9BggEa z+}~uUSMrl>?!+~4xPrO#SN2t=A8?cRoA3gOC?TPa1x+lVkai>(+OINefZ~o? z69VOhBv0cF#ZG%)z>HPiQ+dYQtHlH9NQ;K&Ze$82xw3b{>+N4bF^hG|Fv;tJ7Ms@U?l_q4;|^m zrNZPYc7xdvD!|$)NC7Sgo%qQe;+DH~>G`FS2_%p>e%dY;EA%?Es09sMj~J(PFMUWT zGdrL70f`ZPB@cM*Y3^q)8ByZemihM>yYlSh5-b30!@ZJv*obkd%b&9sVMc z5)>6BWOy%dJyeHc3wELurozl@Bt+2ma>g$5`!;xk%@c>AO7pcONkHVHIr@bd`L|dH z&K)OtD&<_yrmOTZU@Sr)TQn9(5<10+`h`)6lvO)PZ>P-P(&^54sLC$ZyZHoIMm2}x zt+juLVz#$-%27RITcmh+A6;8Ir&8Bk65&dS3Dd~Uc?QoB#xN_|pSkG%hrYo2Q$i~y zCN3|<&Pldsha*e4?^@z$X*5#PIcz1x_>` zK=IU#{;EH~`cla_;Ay-&GGWfXL;=^OvIh|fTp91%+gys>HxWZw(`fV7DZ50fNg`n?3Xo5Y2yK^Ze4xVAA~}ju97Kl-)4tF-)k{yc8d9{7 zf_NF;olVOt^mZ`-gW2`d0?|$>Q3Q>kgUHg5tx^_J6a;`i6<&whX<9)mDuSX{u-ogW zi|H_+cMx_aniD1$8`4VShSbvT5S@ZXsO*^K%4#@$E7Vj-JV`s#YkjdWu_y6H{@Sr@ zR^F!Haj*b$Q7RLuO55FB#dj)w=N2`BTv0Q_(llv{;*8<;y=BXUDZ&uUrb~+E2eN_E zBk4>Mb#R^LvsUml(B9_Mbb{d5zZ8?kkfnBeOEP%(dZ{ju-~^DOlRS8M(@Jr&q{?8P zCZLgHc4Me61(hmC7%DZ!dP!*6bh(YFqz{yE>ub30I&`1auEw1NC>8KYCQqZ?T(70Z zXFKJ))BqQKg+9WJaq83vpM82SMyfh^`+v$W_GgUr;)<=(9J!35{{Ub$N+lW!Hw14@ zfO)5#SvP7_LF&>$J^X#uDZ2+$32x91UW$!<7WO_UpxISxg)0%o?JV26V%WM;faCsv zGa_T%M##yxw(gO4b%n|d9;*+Jj~b;oJ|Ox+7Qjn!r&3!9Jb4~7QrYP@H1vOXj3+f= z7FeDfq6=4VGCbj=o*IZCEO_y#<{xI#)VKSKdgHT);Aq4M5){Rp$BFLsQ-dI8RHXGe zA@n43MVO+d`d2Ar8&q2*4x}jsln|IBW3jCxrHjL*A*RV2?4l#XjY~7|6O4R8t8AT} zh#g)_xN#{lsM#hedwC~6DT(`s8ejqnP?N`uRnmG`x@`4IvMNd2cjxM){{VFqg%?wX zp`$y?s#n!UXW%TcT$QZ!b)1#}R!{1A!F8Ys_tcTmhG%&8@TS;EJEzVOw~PvsdRui1 zBh4+!zyboL+ z>bO>fJdzR!jlmKWld%W9MRKgwhA%JXJBwR+N*i!LZ@&bc(@LV&=#?*7S(5K;QDt?d zme$)~6vEE>hZ(F&wtys#6(<HT;zMm?iFiqhoRO1yJu4>FlAav^>v3#cX~{#V%|CC#qZtAe|%vC)jE(kOah&!kHE+DpwOzY_62jf(nk6Z5}lQN=(Ns z_Tf&nl>#Si_Ml-h5DH}^fCls5PbE4*BZ#e8y3Nx}F>IB+a^xg5*d;{zsM)NmgJt%^ zxuq(+zET34!rOC7Q#=dq1GnZUdXgg034|fHFRyU5ttA(1k~@j1xGRP11%x@fmg-%) zzeMfz8nVn-gKD_5zD=d2x0*N-5o*9~u!3NXw?49JuGt3H8pUw<(uYbe+Z*pYE9;6j z74C|R!;U*{^R`T~1H~Y9r1~KKFOQ8-TUcCOLekR8XLX)_+PuxoCAHgJgzlu26XH01 zRJ&9ucv}!p83Jh&PRl_or8Ypu>3xhj)RoK~D|i_^y&+zWwYW{byd zbVzX|3D^|Cs9jnBP*$xV{T}Z6tZM?Xwplo9*tM5%w#8ji2k5$1KB{$1;`YR7#)HTT z^lvOsqwQN|C)*X3qeasu1TwURkhmLdGg?}mXm%c3KobUM-%-vbi6kF6!I*q;`_}G1 zs^UlMQXIzZ5;VNk)u@xJ&aIWCev)-3>!`FzF_)N4!zoqM4LDaM^{phDr@YDea`Ej- z!EIBp`NRT+1MH$SDZ8X8R<5ydl>xg>g_!UZmr~PjCr}9xOemC;`{@bmxD$2JjvnZY zI~ac0o(Xj!XrGNzUUYGfvI^{%hT;hzj?0}|!1XFCr7dB#1nPhYl6m;Z<57#sR;XH4 z$|%gp<%>Bp_;zu@fm-m~RffmXYF2axipsv>wy|mk4 z=9f}Fq?n;e3oMKKJjIsp8!5EK?NqX@lD9PcYSrsBI?5K_mk>mPl>#HyE16tm98{<# z*Am0A0mwQO$pSwp5%ts$x%}OOx}~>);w^$FU4pvN>+B!0q^$N6y4>m477fU8O-`5~ z{#9uf2o0;SR#Z;k8s>vKW}5(7y2bCA1L)n`!9Kld2kWaVPL(dxr4L%!+@>TJ)TAnX zlSPGan-##B#_;S%3cF<~wz_275_ts@ z1a2$Rr=+Yk)G035UE8U_x|>p5k7mZI?Xiq68@GDF`?lc^OG4;DS^?X24Wh24QPSf= zs+8313v>&XE-?EG%wqkLmoJJ#VMBch;q{YUhpK7Dv^dal3rTInDD0#W3Lel%t>D;e zNU}q=>;TY5WT1kQJ(4O=wkTg~PzFp#)l|+-a&l#{ii~V>jJ?pN8-V5{;)%a~_L(0t z(~;PnfS!9-Nwl^@3DAauVDOGrB~7MEfk zRG9@oRaE8{TWbZy4&p4HF%mr;s^P*(2qJY%z=$3dOPQQyI36py`!-K~FA9yhEvIKv zE8dO(#kX49At~a7i9ebuLwHrFWQCxGD9;V5MVm=guA$i>B1G>IPNXR!b%_ITN7r2E zT1#W}dZ0 z5!9w!A_>x?Bh^Ay)&w}T36hkU;%jyr66Xgg9$%~Us8GaHqfd6O3*+sulrXg0tq;7l zDQYT^ueNHPY{=LjWfNx`V$(Q!QlLRohubteslw;{pq%E&J)^g zU1SszASOBSrQz+N2rj&|gpgLFJck(dovT=)oNX4kYpmPq2@Xp}K^zB+_tst%vufSA z16#ederVt-B#19KyO&hz;#PPMqC35uDn=EB;&|pMXMtdtd)K&y^T}e?-JvRRXMpe= z$>b_KdPvs*5@NcZR=snf-j4@J-BUw0=LEZBmQv>%I}zD-@Qy`Fl%v2+0!U*tW-K?L z2A;|JBI?@^&+j$W<5_{YT5!!ndrLk+LxP;+-CS8%)-2oWxO(Ysyy~^Mw>wH%JV_^V zX>QuOr<`@?RO8E9i_2V<6`jh7@#9V-3Y!wYn03ak8dEPcqK6w$g&|~r=)Bx#U|S_r~z=NJi`)>1@xv`cl6K*C%qz^UjV^| z+#rtgxHDIbk#fYzhZCh~kEKJ_%L-CbqaM1u!yEv(*3;>O-xS!8F`C#zID#KSG#AonS>`)BTi0^6x{NZh4+5$}o{!&Y0wtyBy{$Ud#= zYu1SQxLcUgK23Hcb#DU^`B7O{H3>mD$mYbnE2L8pBWUHPdBodlH*J~fGF zNs?QDKNe@go9pfpNh&eC5F~h0z}zQHDn}DL8s%8(4hGV{!N{HXeLzx+WdcD2aXhA) zPhRI_tb-fwCTVH63L{h#5ybl`3{Xf5**r%x!@iaZ17N6$o*bf(E#q@1ec?py>aBzr zR+f_h?hkzcISrB}a1+22y=f)2m`3G1{dJ@vYJimJ+7r)uQkipBonbM=tiV2~rZGa@ zr3rw47!yiTSyGIIl!3ppv8z<4S6bOnCPZ(wO7m3gqNowEDcfoQj}62nk=`SLr54+D zT0l`EHsmT&ZBXK%IN2!UrBMfz(~nxMm@0XoNaVSsF_bp4;5|r@!0@MlxF@%yCxGnl zSXyx#^_ssIeYfY|PA5t2b;?j2b}~=wrD2%cO)bPWwEAk&NF0rDzMHPoa^e(}ts@Y; zQ>h1mZ-DxRcT0i+-)+LV*|L_qq;t}D|X8kA-`TNNbz=W3V}^p57axayXv zPM^o*Ev(vz{a^E%VMOw1Xioz1AjuMuN$M5w#^mPTV53 zOASJ%vx0tU9O`{T7fD*3Stah1`kgVaD1MZYJ$^4|b0E)MV%n$M6>n|jH=bEaQ*(si zw<#P4P+R>{D~*mkcI8{ts?R=`f}8cJN91j%*ZQ3;BVJ!WsoNRyn#Fp+Z!(2}5eKQd zc``kwjWVZ{1|yE#bvR~9xja;)w|oQv;zfChDxlPT$V%~Ou zH&L48^;`}I35Ru+HGP)<08`O=JJve4QpU#(D$g#h?YGG2mi;GVuIX`kHtnU6!B=3NR^eVQi{4*~;AMZud%n$W+d@=!4nAf( zq*q~G-$f}J-NP*vJi|^;x}&2M=&>6&gR(?Oi#3>`R*Kmn%MRZ1f04y*vp#CY98=f! z_E!2o0)(Wwrg)9{_|pdCFt~eHERcAEZ2(tsUTo;`vKwasQpWI8Y!j&aPSq9M{gjzO zQm_z$H~@r_d#XLEegu^Umh9t=+2)&)65Fqn2WIWS9}1A1tDPNfS{uX;o)FObtE4^B zP8@p{xLIyE6gUI}zba?@qrz0wk3o^gyp z%&~CGiMDdb7wei^Q`sf82|Ujl+tYDQmMSw_>-rqdwSbN*0Xj0#JAS7zK6ppcU(QIoe5zZ$Q1Ipgap z0}yl(&xHQ~zPgh1sL-9A1$8AAxPNKT?|uE`*H zN3OFJ@^|S!Gg>Ok9LF-{qFhiinOR2N^TLh}KaDCAWgXjK}dMjI_&DNx|QhPrS zbN!zs`W!9Bi3yrY)<^)%%!o9T)Rc#rbuKozC|VV%B|YHMW>pDD)HV`#uKH(=u(ITx zFie@@OC4kqnJ{PBOqHn4<4+mxt*OFNQeEO_#M8JA$tY5Y)w~f~5)-LMVa#__WqNXv zB<;_QENWQ>v(Q1*o6?QXLja0K>cy-qdeYH{hf{~ zh5Y5ZjkBBYq=`xQ$o9~7b9ld&8d8-dH)sG8Cxs7GC}}MLY%$UDW!@CDB&pRQ<`hQZ zNtsCe;7_(HGiCr1cdTWV7SQWg8deoMn1VP~h0VV1EGQ{^z#9Y3lp0%-nsO{{dbm+_ z&eT91^(x)96!7;|MYGP8_HCR}c8w|A)uVTcAX_Cm2;E!yKEE2fv`bSwsmo#aF!%8X znY3+EpyuO%j}zQ0c!Jw$r7>cuY)@F|J1##Iekl6s*3zqH5pw>f?bSPpDscNbQ)o-K zjt3n|8f93MdmhbuIUv;(Mx_8pRrIm8{QJlk;HxBg@xS-L_hiiUzU&0KPHHm4O5VB~kdn z0256!Yp6uY`)Sr#4ifvWO59Oei5$tR22hxUqyU}Id8?8tle@VC%=jf>9k-KCTVQye zIeMEcF41o|u1QYG9pv(&jJuUz$6k0ieBRZR^|u!;4$Ej9eW#G;M0Yr)m4&Fn^7AIf zzzr)|F#XZ|Ws$&sNTq9r+Osg5Y(F8|n>-yt;~8-gbBHKNV8-Zc$HuFkacS1`&q|i5 zDsak_c#}}Cabm8>QBe9QNZkJbx}!AfuM)SEWF3+@3bH98E#@1>e)zRpXeMGe+G;qt zE5E{VB^~ZrRkMnoWJ-RpYVyM`V|d%8tS1S&x)Hf;1f+hK3U$7XaVD_#7{{@T3^B%D zE}=bdT0FA=0!!lM-`wwnJr8BQ>4LDDh>}+!KSkC7d8%CY*yGBCzTtVv4Faj zwQ-oQt~JO$YhVD6(^W!iE9DC%7ZrPYgb)%-uQbu)+zF_*HL*-^WiEbaPVh)p)Y`K1 zktuY8+*9tW<)fp5EipGX+}?bVKE$=IGBXwA1?i~GwZ+ZP<2o6@b7J`igacsAV4v?h{JIuOvL zD5=B{p(#I0{#CdET9RBKf+0%SMMX=CZ6K{F*zOL;>#eHoB|1!`5g_rb#-Y_DYY0+= zC`=B1+Cl2jq1CNKB$yM%n(GNpfSo2djuA*w+Lfzeq)AAVC)q$;AL%iMndtj7;Ko@MkTCC1hU%1Vagdh>=4({D=HV{E7Hwae55r?Gn4UY&1lrB zwO?VrP&pdx2Jt%_TMJ&HB~6D>?-jsEJ(I_~YSzH<^oXgvEjO~UQpD6-o~OgQOz8I* zd#l5-93&v-R@l_uq)yGL1d9CbF}P>y^n#}6>uvK(c#gUpGJ>WsWo6~OM; za|gvP?2@!hGV*|sd$?6H!LPc@ql>?J9>-H@ZS^=4rCXE8R@4HN5}-nP6T-a1hjiJ} zJ`&V9iZh6{^pkkVQIA?+(S8x-B-)t$+{+FS2uM|{!BOD~h^l3Usk2`XX>gY2}it(VI91CMLtRL|hpCL-dTzrpPt zam5uWeNYNJagn&Io1{A0I>%E9kvnZQ8A@pdI#fG)i99%e&Y^z-KxRLca{ZQzi$uL_ zo~>&kE7l1EfC`$5-$l5KOxxXCW;<(w@)EMz*iuL&Nd)*!7UH;NwkDQZe5fTZB$Ov$ zp*xB3sVI5y`W+A4Hl!y=ZD1*)1jLRr<25BxNKOgv38N}!Ofc%Tw$=bTO}p@8)lRjU zbDkKn=L)z;8+`L2L*Km^_3t`_I&MJ#!jgvLZemS3fE5lTl1C37`a4I+c58rDu90ui z3BALtZUF{jTUAeEJmESIoZ)wjDJj%c+lg^L>bf{iA9%GU;>O+7t_jqEK0VP`{{TmM zLg582VG3-hab@Ks$Gp^)Madq`@I(8w%a;g3yyfI=#Y_?Gs!Vq?>FQ_$U>Cb(CG{1s4Rj#VuOXo+H`R7uD8=xT}D^RIZFz}FHrU}>3-(zw2(t# zQLsG3$e#-22>=-ayEt@}G>;XElAUQ!#oTwTL5)(H#W(6T-D2 z1Rg2cwg%OOASE-#1o%=!1GgUINJ4<;+<4Z)NCtL~uCv31Y!VZ>-gwObC=IyQ(3vw@ zJV}llMQm~VXcoe`YQd&|KE&~8cOitU1gL<;auT>MBA?!@`Y9s)ZPuE(!c~2=y zAQ*(CcnzscIF~LiZre!$2}nG754M;o9gqpwa6R;ga`PqShck|7!g9hK(40c)Ej;HA zse#&ce#8Y-4wti{xk7Zxob@+w1l>1B_eyN$9sd(6Y#_-_KR-MSrR;ITQehL-L*!- zP<~Ni3p*_6f#X$}t|fGfx9ym4wA*f}5S}IsNvCVO5iKt5VPvF6(^ffZ^;l*vXMCCY zw*XZBDKKiY3A=Lk%%$~eb(Lu+y(CDfcIZ$?5LF}(UlB>J7#)v2VTib~YWtsNlE9-(lZVooFg*g_+k?Yw8SnNK#mF4 zN`9g#rj($rumT9@-B&WQZZOKOY#+3PthBfza&(ZOKB@?`a3blK6eK0Yk~}85BAeFu zOll4`R+Nr25PW!7Hz0L{M>FiHLzFk-bcfkn$hmO{1+}!k21IGBpgSwOt7E3#;l{$d zDgj#%cuGQ6VWIMDYpAfSP)D3Kr^*;6{D4kXOM-R>>-0qhbfc9Qie}a>8dq264J{F-cTF8Pa@%*7 zYg51kxTO)@z;OL4m!2>n_-g%^l(tj@fy9U{E;!c%8$b0f{8;zB4v+r;9If}8f4A&; zlQ3mfTP;L6tm@n)Bx(2ZpzKEq>J)V*H{O0V-f^}sU7wVG_)2>rP!dS>^PqfV1G068 z1*NN{_aFk}gGxtu@vSsv7qc_sY0fJ7PCa{S1omQvF*G=YtHkYHBNodSyPK=l0_fCxQ zvs%kV~|m@6*lV)#TdiG zsj>xWAR!BoVq}=(5mk-{+;K?-y(AT_Cu1C=+ck2e)KamH;v*`OdAtNTU$}W@;gA3c z&^1pEGe~fzRFt3ut7F=x`sD$yuW7@?2Bss%kQP;?-l&axY19c!cY(rYs+2DFHB+jR z-uDy}r3wIukpy>ElH-X^fz0n(5u}}?$AGPGJNAS~BZWf6%6jN+OIYn8DUr1dXJl$? z2WwFT;vrrUrBp^;22hd|r0#T@9nNkPxq+yFLBv5L!$GU?YSrWM{TZJg{{YiZ`N|6$ zxGq~TLSyEVIo8vsStVO>J=0A#r#gm70(1&psS_^@7NjoL%X?L4?6k>Mf8F=#Hiw3 zr{l!FkKBBJ(vL%@fNvFoPE_}6nEhA3<}y{=9a;dILY2G_0gZ)6w!F5)Eyd;<{{ULU zf>NQxAH^e)rw*fMv%8rw}>QV| zTWV=~R5b{Yel%b5GnXu>4YpRO?4%v$s9vyix-Fj_OO35aT3p&HyE5C6Ma!T7m!TXs z*j0t1QUF@jsS&_zPlYY46{HdrXTE=BS=r#NtfdGEX#;8Rp}!F%VsQ(bhf?EQ?achP)XiTIPr>goCejlRdlC*X%Gs~Cw^5+h+?6ouGbE2Ph0~N z#Vz=#_xM$P?Ga_Ixg#CS9&CYaY?0O}Qc`~#k@r;#Y~5lCRn6MUfb;}$KV>bfF8$Yo zw<#+tI+Rt#Rc23`wnEYhlshRL6H`&K2P>8B+B~D9t0c~m0!gBL2Q1uP-HUSCP^2fU zb;l27lnyF9s%BEaFK-lXo^8ag?h?WPj>=@~J;JZ?7Jl+x5n}3Fv(+~j1z;-SL+Ji! z`szrDUx{MOIcS_K2L-G(3hN~7yM=-2uk0KJ3*FtW;pDSw5~7{;5wJb=D(z^yadviZ zB&84*;x`HQ{gri=vSXL+o12$~o*d9BcHz?sRCiU2L`PQ2yuX$4EN0}hVA`H|?&GIq zpm&qN3N*FDa#mMJYT<9~& zt}&dhE+*3l9ZM}5Hg=ta0o?=bu6>B-{6Xau zVYcYELENcBQjHD5)S}~yD^iZ?R_2hXLZ)gLu7c36r-V?&B% zLNys1)!uo@c$Y_+mHfSlsV;;=w)YMC53;XC#Qmd@1XVk!OMopWbnvSaPi=@bXJ%}G zT_Efg!@$&cS^;nX1Rh&cr9sBZfF;4aO=8Mj2~Z|T-1yM0Es1tnn=#>Je4Usv8)T*+ zH*&B&(?oV1GIWJ!q%R#8O{eHwGKGbD%t`mqN~gX}X(WL?)TK@n-6CpoOGb6PKgu5$ zLyftNBp+;7ob>Mz{_4O1 z+*K07QkNDjjwWdJ-Vd7c&N7rI4a^vI!U)u$-M~SfLrUP$6H9T161B9kr6hv}2<5*D z@elzdDKZo|5MYYA!!xFC!9-zsj}W&XiXJK+<29am3-@L7FODs8k7Ze0At*rrLV{vU zz^hcL2v7(cfB*#VC%U|ohjj7M9g0wwZ*1>CGJNLT5`Cg5zR${P;ne8IvU@IUK62LJ zpor(B{@SKkI??x*tW7q0Ikmi%kg%kVd+bMrI<+`f$SYEcw}Zh4*IaK2@`mX8`7I{y z>lDJ=N=iVuXIds^btZgh?+EE9Bx5H{mUY6Nam0EmxJzo-a|(ksOsP&i#4%`UmOfvrfowS$j)P;gJEx45e4?m4Zxep7r z0)oSBxTj2~@@lq;-@s{kV=v-JA1Pp#Pq;l5p}h;(?Ydz5X$t7GFFM0-*xln+8s<{n z&~YPvLBOiCWlB^H2|80flLvaTZuqjo8BbUOTjLsl1O5i|Mp9gj!Y_bF`!a&TO4jh9XmqMn2n0ae zzNxVFsmxul0>D-5s1;As-aI0v>Pc!tvy0I2H%l1(?myBFGk18$n}#k8qgLTk8Evk@ zP!E6lcgla^`rRF z#+|nSg`^S)PSnU;k?ACDzL0*Z+CV%O#keGe|;$c7Oy&I#M?f zVrQLg4_guVMFnu}B-YW@uVgxccKT8ApbdaX-8Hm;1Wwy;N(fRE0ZNSb2^64(OeqJy zg#r_%My<^9np#HuMQ$Jk9(AOo2#w&y065xpDFgDhqDGYg0(nIbu$6VK4fyX@d$JScQ_fC*u=bB)6#HiCbdg+F(UozlEnGzytyw2{1EG?Fz0@UO1Ie>JJfu&on zFr6t4uTo=LM*gVeYQ8=tyIS4@jF6ji2m@J3B6)64*;+_Sm8pE`Y6$8BVD6P4swpG@ zHIPICMF0_Id!^WPSC=qxDON9w-C~Z%(o0AUqJ63~5|pffPij71pEUQS&}teVoUMA%_#y`O~2# zUEuC2^9jP-zs4~9HLp$krjU)fY87XT+9wdj?rws1dhX@UJ8tTSzzQ>2=m;Lcuy<{3 z-3l6s(xoew`~ay|jH!EUVPaPXoPDqnPL1yxyF$^!JA)>YZ1cEontX@sM*je^t1|t%)raO5gJJ+$$vl7@DCa2QX=@;0Xmkzjb%-70k@ZCn<%>kG z49u?*G=^M{4Ug=qt*b5YIA2Nj{Z~kM(n4cfj6MA}8&}&@EQvweeYw$BORcFrC1U7N z?Kaht53E`>LnsMt3eq=^bz6N1J=ti|mbb0e5;d08JV^bu&P?@-CVeBv*IgC4Mb(so zM^;ovJ;APbA3C!HN{-&zlmyu8AgS2))>7?6xe5{ob!AHAY<&ts8xf%?0Ff{wg)E_< zbfhUMQQXGV!;3-)Q6Ll&H>D+LR0S#%#ZkQ1DC-gwNP=M?nA8Um>#b|*$S7Dyoy2kd zwH$z=bx8tL4=wmowIC-%leXJLP!}Yiwo)JwrCZ8?@%7d$vJgs3ga8ys;lF({gDOgj zJ11aH@M+Yzkc9=EM{jK~5*5~@fTaLpCvE%bNxN++R*>?NcH^{gHL-BZNm5eSDkFVH zckdOxxw2=fNYfgofD*S`okg`M4TSLDl`XO$E2s(7t)K%wuKL<;S_CMzl=35qrFqg6 zosv*F1txwJ3`to^<$P9RNc(?fEp4qJ>2V=bJF9=Ll$($YN(y!-v9R`5-MM6vOa!Qd z*%R&*fYKN)N`t@?$R5;q(vr}PN?L&;Ajyd5S`M^Q07IU&Z8eFwK|PMoGG}8z{K`z& zqTRbKviR#19VJ6zAOb$IR+($06spk{Ie;TbPL8ojB?s3PNt+gjJkc#mNkfG1-bGb9 z(h|X3NCXHq=6aNGT1{{N07uaM9;uTF2)(uaS<@~uUK5R5o4hbE`%CS0Z7iq~cyQe` z8;f*pY=ZNNdDgbnLeLh0zW_uZc&fY^+`y%{yc*KsV$~(UEuGS(0lW_W94MmiHRnvc z^}87JErRnc-L}>9GF)w9Qgsh#u5W2xn$K-KPeYRrR$ZExt>MYfu?(wtmV(PV#K0&V zMGE3sK@KdJEtHcJDn^oi%It~G*=_Z>aV)BU1WX06b>M|72r1pY_TKLfOX#8q4QIcKsKcH$fw$Jbtub1Y=%08<&~4N-$8 z;gvRH*|kJ>qsu4K6={!PcL_V~e3XOScdd}>^#1_lbEN%GHv{Le`)3q3 zQiEY6`l2Z|y%FGUC@srwsUvtbTeylTldYPr04F6!8)NqG83 ze0GQcaH{0uWl1kLYS3}R)$WiqHYc;GL%?wN3ah;HrrOf#LdZR(0UCz!KH6^OtG3y< zc^7F&3X(yYDg^rlbSX`=v^Y45G~(Z_t@eB&Y^5*j>jH`;K_#d%d4g3Qx^mSBMVgJ@ zYT%@_+L9$IBZ=Jbh#s?16MV^Q&0HO8>p@Tn?Cs1f{{X?HsZA$KhUkXMLQ>cygz-C4 ztwSts)}-*bzS5K2jq~6AAXP3HEt2w zs`&nec-4G7m-BQJC$fYH+d_Eq+LjL_h%vU)6wz3ew54wVA9X4c6cU1ajt8AGRK1GSNQnRq&xKf($Vu2(fF?>kMk1wIV%PX$y30i(2-2iDooIC& z(zKp4P}1sl3L|gE6r${QN#VUaS(UjafUMooFmT*w4vCuT-cT-LS#Y^Jxs@@t{{WlE zxbmPZI~29VnOn_kL#(K!>vfGTGOh$Ddn>pm>FaBOaccUSeH)=^R1}}Ks56d4!@5Jb zIK~R&I2Ln2^z?+<;?c=mg7)LjoqG3T+|av5$s`nB3!AQRhY&uT$Dz7Za;L= zlp!s&dmZ#a{mZ&ib)`FZiZgD>9i*_>3M0aw!8$5=wTsL{J?IJ^ii%HX#V4I6$CMkm zc}rTGLQ;gr#UpTPCMSlW@T=CE4liwJS)E=c8GJ;AGp~L5&>I}tr&JvbDIqFQlxiBa4-Z#$TU#~|jYH0HJB26a?Ch-^QprDz zKjmaJHUppgYiU*d{( z5@pUYo30$Pd9a%-9>gXcO|xfGkT@kyER`QniK-kw2gS36s&N<6_8Wo&4LIlFE=S}J z?;akyPF=#9%wP?2tVfLV{*Bmn=$DEq2%~`RR?NowAwjXW55glP1By;c;W0^5_ z?d^U=V1zc*xp3t1S08X68shlwIOa2b4JeC7ltV~7{{Se`3mJ@Kw^-Z9T8eGbdkuH^ zp7T+ynSJ&3EH+ellRQ0jD+sr=y1Z?tl9jDTN?SW>CxDtOx65};p;x$5Xtlbv-2q$m zr1yGW<4>yE-s%D$NR$O~3OuL2i5HZxw$Sz;)C61+r4C3~1aMUU z0LKcH-R28iMf5yDvui0ct8rCrJdaPA_j z-N!Qp(?C0ktq9YnLrsK&JG<$XUgA$eE^!-`vYrSki8O0*Xg76|%CC*K9dNs4slKrd zUMo^n-UEpMd&N`TSYmiv>9@r!-M3P`1rga;{FM!j60?b3uu~UZduTD#ye3CDJVj4_ z_XoxB_pR?1>n*lQ(!#`qp7Hx?N=km>0eu%7TUXgRfA~}I~BZR>aOdpK)}*T z?*KvY?yfoH{{Z(ZgyA<<7Wena#qrXMg2l^W2vbbz23G=PIVY9_w1dNh=!Qv{wr@y4_qT2iMH z07`_8{{U&KY+G`3s5;8jg%YFalQe~;wQ3G6VqhpB^YJwYu6MGfsQ_yFJC#z4j|8bj z;58jQc}EIiarYL}$XW|XQ)@{=gNaJPOl}AxaC?luxEzUcN`8-{rN;!8o+rO$x z8N@A%N+Y$a@&?qd9~{B&5p`}8U*Y&9@?tRSXKv^u>Sy&^A-}D>os~BwsDo8 zq}sTHPL)>;9>b{xJx?HN)I!o=)~CB}b<%T}LAcHm;_kA8%f_sLlHQ#+4fquOFIcW> z@@_4hEM42JrHzVKl9dSXHLfj5T{9%0;v~TaOdqO~J>%9XM97e96hgP!MM#K(O!!9C zgLA*Sx3~~%Q9a|vn9a`6Yb8k=duv;2<4PVhfWRiO?q;-1ZCR>0&<1jy!J5$%xd8hs zL1H%>)Vwnfy2UQhYit5!!kky4fy|RnVcC{BHrF!WV=Y)^oJR7=<(*EyZt~jZMl>sOs!vl%60c3g|{s z*`pk?f$C5^If`As6(0(D?yc1o6agk=QW!u=&X7-J)b3Y(1rf0(D-@p{`>ASAWC2%*@Q@FWEOa!vTD4G1NqJ;6G`=saqz)D8`p;1~w zWDTZ^Uy@oP%Miafwjt*oN|4e~p|s49B=PayuI()n)tUe!(vk%6q4L^8i9$(|B%g&5 zB!t^rwh2HV}hZE})An*;ziNlywP&kic%E9ATII9gp=D4tpz1W@)4 z?X!)quauq2WNb$|Yho{O(;y%_iri)g6{)Nq)ytA&ZF)#R_mMz&#wz&5UPA624O^%* zhKis92WXHu%85SO>evPqafRf|d_7F*y3Dr%>2P-zZ5b2!#-d|=5sb>}F7WqQvb%J` z)a2=0ZNPJ+n!cm4Q6qj~sNq`&V5n zX4fs%tqo$%TBOJL5SIQZG&B$kVnk1OD#!2caeLSCtD!eIlkVQSd1`fPS^a8pwI{NL zeIpa&Rx-XvoOh{x3s@tnWki_#lfr<|WReFHMi{NwO}*XD+cnhz;;zU)8W3P^N4}*F zNXUBKKsX2lPkm)+f}o-Y&^47Nh~CH0wIP;?ac%D#o+Q>KwCE`f6wc?qm7xjLdapy(a)H>N8LN)zd?(Ho{W_SSVyykt6*c3~rUQT0@nu$Nrb)a)Pu5in%a0-};m>g=C&N?p2ABr8&tw2i4jl}HLk7jh$sOu(IM40fbD@$fNweZ}==711{Y3&e6 z2T0SrMQ^IsdrhlQbNN!8!rVYvZB4q&gz;2`d_EK~w-9=^gvtrhPj_{BuA>** zOZma?`V5o8L*x3e&!hXC37lT?+Zx9juuAO;ZQW2%)ar;3HrRkk9;%(vwjpPTW=jMy zh^FBTVU02dl?}qwbnhGi8;S&JuTMM%8GZt>gaFRoJB6oet9Xxd|?sIFQuXq5&)2sC)-VY@*+;8fdHQm z8fi`_6+?PTPM}GUq5Er*DCXSsROOZEPAe)v(x6I*W<>mHw6U!_gzP3(CVT0y{CZGy zh~MbalCVNjTv16N?Z!Xg)j4@IDvhD$(zJG5N)i*mrDNYwF>F5L6=|lGe)|@vSSv$h z66XE6s%eXhtCXRWZEMz-)KXRt;FI{quBRDA=7;mtHpRF!fZG}3(OYy)$xDeXup1xh2BkE)R4cL_?o-?F8E z0>;}+6HvmG;!=Qz3KEkDf~5}wR??=oMr=i9uNR^x3-nx;dY_tUYKIEO^QaTR?Zd{L z#ND%ROG$Ys>j)?X)Fn|I_uxlxH36X7?ydU!WT7oNE+%SDLO{L`wc|5co#wo(JCELBS2BB@ z`byDPHZ?&>+!M@I9%KRK;fUAO#plv9^bK8WQc6f7PZ|3=s*^A%sr)BQ?|hIkMv_tR-}T9Tj$J4lL-R!ce_Q;AXS z%!2|>^GR`PgrJgB%9<`EDun`M@QyUouC@YH5C)&5M&A0Giy)hIzOaNPTJ4t)nY)&8idHNHBnu&g7^AKB_~V zq5_l@0)l`FAcNj1(nv;)MO?{_6qBXFz$?B}#-y9Q$USrTn$Mf!m9>05({QZcU~7c^1|-3jCA3UjPz-hSCa0 z0p0s)_OI;jFxT?#KZdo8;Ex}^Y#s(se;K85LWdAXI_-3>uTuc>KUy9h9$!Pub^icI zXmxekN7bsfmk-@9uKr+6*GhQhxh>gYwhSdbnITG6-Qd+_&q{gO)E=)EX4x_Pjj}?A zw9}c(qfAQywq8G!u5L31S_igNnZCov;<}OPq<%12Iqz(K8RY56nWULj)fvCv> zk`xZa6%(;DN++~ApZMOiqY&c(EtpGbM&CdIH0qZ-t8V@H(NFBrL<4#%Kj5)J(QaZ!vC0`n)dgn^hwCmUjijjMXtu{jD?JS|IWJv&X_VFfx z19{IDS{oQr9Rb^*Tzyl%nc+S)O@d&I-zi#~E6_Lz;WZI$U1K*+Up|1NaOA-}xB=`H zd1HXxSg9A-b^B?$L6kP50p9dga(69C#e?}?%I4qA(9ySes42Hb#R?TR!yk7HwOcsD zN^b3$ZNdlP7C0$Bu@wEbB-@x;u_qk^O!bW|Ftj<`Jx85UTt4O{cjphLPTEQ2nyG7} zEZboh7g&ZZa;v+b6za%?je=9ipBj0)VzuaODaD=44XMS3nQSd&p{a-hRHNJnGgVlI zG_~rrvqF-NZJ^J!YUk?VO%W^}7U=~Gy=f{DAq1?CVrH8U+nvd{fw(1)vSzB8 ztrqGdxhXOAZCZN|#qEZ*Hb$Md3LjlCEnE$$CChcCU~Zxg{^Pi&de9Vgf_8vG+*L|3 z3zl30<+T$%`}+-8wCi_i)CeU$!aa0Y3+A!as@1eTa(dQ^dW)vh3TZ=RowyNRg6R7> zeb?pIuU~O0zO*9R_$4qDp|EfcTgxf}m`YAs`Q3XR)f~fx87U)+bRr0FanIBBQCsONCn%FLaUs zBg36Re(K!GSa6aeLXQe*%k-nN9Gx2ym2OAbMTA*6`=ul)3G9gqS0UZqT2sw{RS50x zr%{z2@IAFm<|fLV^m@VhTnB|ka~Nk)Ev$l>5N1>3@uI-IS6AQEN< zz;dXM;`WFdH58pBf)5e@03Gxdd5edXq#?ziZdIq5_SGfT>Q$~@bb>&U!la-<%;2yi*z%r$V+k(pHL)`@2LH>_|@X@@UDMc zR8wN0uF^pr;MJ-{cV%Hz?FVk^%|M!Ri zeDaD5JB>K40K2x}mHEKv#EnD5%Q0*5)B=&%yJ>02c$FnM^>YJ8LFaqkq-p8C|r z$B5u)4Mmq0Ns>(Pq-!x7#PF?xBb4{n6Ws=A0R*0NHMR$BMqq@KT2|W=5-E1TYIC1w zx|j+vr($V5qA6r{bcJy{R+I=xj&umpH!vU&cv8TUJLa)50LQ+zgpffag)kllHr#jj z)|Qe61mloP6F*H5GZQV27s9lNQP_Vsf#@<`N^5F|`-pa@vc z&SLi(cL7>>_X>>Er9mYDTTgXAh``0JKr{1(DWnAjqqDgLai+E;_ay~uc?wHPN`hb~ z{y5dwU2=w4NOd{~r8P=|zP(Wrl!*tN)#6m*ZBU?w#+||5qQ?1W<=TIMJmH_`*q>>A!D!#xD)Cy zeUwLYgJxTIRGeY3_`_1KHnDH;DN;d#lp*K`P7{o(cVtUYqiA$Y%|}?=y|-Iv>Obo7!qj5XjwX-@Js6VXk4(zee|2&m3ixpr*-^ zlW^ck(u4!(gWh|q()p_%!tzF0QrkjPYlpHLWrXdok{cc>RDEWRiA8lxg?S_mr+@X9vo8&k(VF2~EpPWPBw_Fch~)UD}iCWhw;t z(Z5GHb|IBArXkW6Cc>^W9%Xx|!x#g!>+YV+4lyL3%>ul)_7#IuEtK*Da5bBAPh zoVU4s22*#6ymei@++gWIJ_edV-IdNf5`-v(KuUWl9Dweo)TE(B$daB%zLrnUZU({u zrrtu9q_C0#oZE*AWo1@ibPFb09+S>%nc$E=X{u&bq|bP%*@5wKf7Lcli)03b_l`AQ z01`r~#jvD0BrLcDgRvdQzOs;#b#Z`eC?b6oMXI#|BS;&PV|rP&(5*;58!AlGsY(u% zt5Ud`BmN*(b!m-DQqV;9l0X1>#d6NLfRIR2qyh;%Vz;dcI!eJ%-Z;fCLXtOh!iX{e znDtUi$ytPwL4YKa9r zfc~d6vJjA+_W;Koqn#n#%ZrB;q?VAQq(qZ7rqJ%5*)ot-1jI*;ES*VAsQM&;69
        S_B^!bddD^zxQ##s|s$`^|G?b+-5Rln$@lM-;<4a|-R#Tw2 zyw7w{05?r|jm54_wPN1sY`b-cqpDH_X$_#MMtN*N_SYFlNexEu9eek#r$6mz|(M4Ev(mcxrhpN%|EKxt{ItHNW(8&c!Sk95oho%&QM_0`#ob_rrA0aK~RD{Q8nYY zSx7p9co_$sUSOH;IpEJW&KsI>MjKL+-&fa_qt&HSE16%>)h%ex=l=jlrNVk?mdg`Q z;}`og)#`95Q4#=wxI5EDWPp-M-0`j`&q_TZ;lvB4FzfV#znt0xsQX(fH9p&>`;xRS z`zSCHjy`R8;GbgkS0bmQ_{i*&@@Jx<>6c8Mvq{I!FZE38l0rJ7s485^=iy3Ih(Zd6 zu#^KZHi_Zm!z--7>TOo+3B%`k>9_7hBQ_R8|6lj_C%VU4k^F%fg2ma4kp%5<%oU z{Z$g*GG*Jvp}RbH3wwkX@0(2f6%kfVt*e9%q5ET@K&z{}ZbtmTRaFW#Dd{M`llmH} z;%L@ajMMn9sE(~i=GNnVvja+DMtK;ijI1REJ#1**K}q3C4Bdq~+g8QI2-Hy6SV%L( zrhWB_V(FwOU7P4>&rL{1l4F3V_A;J~i^Wr>uNIjq(ay01I)`*JwQN!80lfJ53WnSE zRxUA$Tsd&ljJzBRl0uUni2!r%sJB>=Y1W-nX$+lul;fSEpf*TI;o?skj^*1aI@gMX zC1{l=xOZ}j*-H;7JEU^480vMCgqc3?8^i8w+eMxlT4Lu|4eE)VY}>LxE3B3yh9$t7*vUyl&Ftb zOrNT&?s`YaNKU77O^S+l(tzrT{;XFzI2!dkuy5eb^!lb2leFqZd{9-^At=)^xt-^F ztH%j1VJcFi_d&1^9w5aJqotmYl)XPM27uzDY~cshP%(~^awCTgRlYo5Q#Y+R@7~J+ zCi7et*E6d(vX=ZNaqwR*Gbs{ z&1*(*wH>WTQ%oJ!vH9*_*al`Gnib$wNmcslg8sRoz58>#gi zEq0X}k(2i{$)7ZpXk{r!5J=!!JeV9P-$FCJK;2 zO2OilCxHjXsxv1>`FlI5%u4}9zFW+zC#++JAAYX#KayGR8%<7iBqR{9l}~7x;o#<8U~Bqe;-kM>Ky=dVCy16~gg60~B`x$FSG% z>`9MK)%3w5hNLTk(s>a~073?xJgdK7F9yvxIxsxxVsT78vPH9?>AJEcdTl$zdXC09 z*EY>v5oUb9YP@ePymLlhg0(+x-kZy0{{WV2pRGRX_T4+LQN`MwUsivU@_(~FTh_f1 z#Ps{s!(OF7cIkW9?trkJw;O@TQVB}8OoBJ9HE`9#WmfMY!~+s1k8z#FIAHjmP;0$& z$FxGcAh_5hM&!>5NiiWV5Ki=~l?Aw4K?+fU2WTh8o<;$Bt*$RE&?kaQmGA<9*kmY# z4Yxd1F||fr+hsbnw+C{iI3li7lQ3dR?rzlJ?n+8$>!~9u<3^yZ z$SNZfzP7MR^|IOP-&F0TJO{ptQF0gBUpX<|Oh1(y!xV2YOT`5!X>p|=N;p+>w-*R) zNYYwR8-h2ZZOLf%EddT)Y6ei;BzpLorp?!`TsGbjY6)7tbD+swQ z-mR%h(iRG2k`JqeMzd|U)74y~T2vv?;l?~^uQz)FWyi4g*6ow)S5ydvH9UP{YL}^M z5sfboa`9%#1uVp^DOVHSy)vB$WW2M?4Tj|R3WxwgM1v|NWRtm?XAphI9B#$41Ox0G z&##py>9$xIUdxztmGI&#W4va3> z&6+w^qR!$9Vg&5S{$HW>|uoILU zd9bvrR=|%}bvmY>xMT}%ns0V84vJ8#OMVa^begAfT7bA;jx!!8|K8%gUEqgmpC z%#Rv_8r1Y_UUDq$7kJngO15XN(!EJa`n2ld$A7k%b@tu#R+*FOa_%%4(WYT~=PWqG z&vl5kyjxAHQPvVr6{b$+2|oHEcJU=eB`&9Z^-jm*SzKCnHYp~qKDXAAr0+2Vq;vIm zR2AM9ih|uh{8a(O_fro(k*Pg)utwdf3Yvp-`Dg%?g`^(Jwu$edAzs9{?pzK9Yj=Im zXKIG+;W5>$LE;q>YBH`?29%&LR}~2mdH7T(-B2kC00k0sfB@sM;Y}hfj=zXF6V^7a z*$}8u+z+y#uMvOe2~kj()5bJH+f7)Ahh9k-z)7AQ1d@0;4S9K))6SsY6GB=U9?yCaI1Rx~w z@A|1Fm4P5_!*LW`Rv?y82X}QKg!k?_chvr&WSt2nJF7h1Kz65LupRx>?iL{Eo?b9( zS`Xrg9BOf3>4hd{lhhW7PaG20gDD4DyLb_dm1W; z6cP6>#zpokkYNb;n?7Yg;cC%f>iOCCH8RC|b4w^m0*nOj);pbE_YWi@Z#48w3V83a zESqjV^=Z82B!z$CrYCsj&EMG@l?~5!B`ip+k9^s&zabD6c>1XBdcvDoF+Mm9L&7+- z!dr{~bv2o8lkY@?VI?RKMXcbto~7@Jh-cvpAi3sb1_|tXs^6g<87JDZ6yQ&D-HZMo zz%JA(<7n{ivTV4?*pmPGmy;jg@n4L=W%m&bnaHrAJU+i-#V+nTecf+DFE8zX6JQBo zT57fs>raw~C!C{AD`tl>m+PPU#%7jZDpv{fOag{Prd7I`{*)>Ib61m*-ck7T3J?1^ zH7WLnx9ph;b&=5RPpWs|d4B2_wH&(9`4_+ZzSQ1GB-|G(ZR|GhTslAacxT^FJt{z$ z-T5YkJ&M<;rs1lhN53A{^L~1)gtLKHOLIGiRo63)J32Mr3`K+!+@2mcXFS!|dLyX^ zUdJ2-{_A%EAu*{NAhY*X5sxt%ABED_IwA@J>z=<07@aA)!sP~EkX8x!4m(mv&~^Np zIOcdQHhytwqcBIJnFV*vZ?N~{*<@XVbAep8ZDUhmXR4pcw}wwUkwf1XPyY{KnL4WD zt@BYV+rQwllh)GvJp;m2z;DqEHTN&tVMh3<2A0ICsF?wDwu=Lrl0DdwF1d(Hf0eGo_kuxG;9|7w` z6W^5#YB>rNcXe+#T61L>y>oz=Igi9A-^VmcntRZd*^5)Shz&!f{CK(7Pc8o~#eX&9 zsmdMM!!UMM1N|>e;nUvMfB8NIq)EMEaY8#RQ)4$ASoEyLTN^)e_}u$i-;gwORZc~T zZ~m8N1w|W6%~sde5Bq@wSK}w9LiIasCro#4c?dNDtm{uP6@un&FCf7^V;f_gW;X|d z;wqedJHdaUY+bEMjanS};ufqPdva8fR!W9yF->FhRls{L@mqLSD+)*;Agk`31^4Uv zR_aa!R0E!7JCcdP#TKXN_sFg>A}oNQ@94`3vQDyI zvkD5u{M+OvN~&SpRYT3i5EQDE<;K(%s#$;twX;TvcEDB)5~Q(1AhM`T_5#okTsmzb z&{w41H2eEsY}0htTP6#I;LKvp;$(YES7eFKRdB_yaRVkaI6gMj)4#Pqb?0X+ND~E#N;_{?cPaO+q2750Y;Ei9xNmb=KNx~46zbP+-hyoG zIAHdd;fT$|Z(ml)ANiB(`(;Aqq7cP(^|$UBZgSQ|eV|Ik+&Am5`J#LIRh~J7U-o?_ z2k-LHI==zOQ$;--hhJqgJWCGE;p6J#R9X~_bR^Ny(sU8m=k&}g&kAl&=xhW2ww>2{ zg#R;@I3~^+SuG9$oc6J!SAGIpl$@IWYoGg&c`4YBk~w*2gHU=a+Twgw1RUM%v-OB& z8!Qn=&59PkTzK&^U^@Io4!;ft*weU#KuaJN6`D`et^O_Y^PwfaZXi{ZzkHwR=6!f{ z3-sH>|L66B8zEDi_qqf9{(BtA0ewx099gXOzg+MBKLE-1e3$D4O^1`Cef5c>e>xvIfuXoqLMr8=R4w24cVcPNAwIjx z`nm%mZ+p_0*{!AIcdC8;)qHN<_#P&pzGIQtUO_(FQYf^BSHN1HbveJKcrLuyUg_R= zN=y6U-h6Y255l^H|JbEC}Pl6Pg1c9?`Y87UQJpUb{9?a!MZ zA~!YQMj0aq%y*?FwE+BDJ^4g)WwyIPXZm$w`?`9r;`ix6OG>4qM$?&G*i-SXyLY11 zu5@+XPEAy_@hOnZ@V52T9fRKuFJ^qLLZPO0Cn&Mv78g$ZEgGs&o=Y_L__}92Y!o(l znncYXp2Uy9c-ni|GP%4>CxaJiqq~I8ZkNK0FRuT81)JPzul71ZSo^)@^?Tv&CY7aq&E_}e7J5q1 z&7VuzTo8=iWOH*@A2_KDYxFl)k8ilS9vbiUCi&vcgl^*cuIdVBsA`SStHZ`Qw))Kg zT>44n`sq#U-Qe*Pf72!do32!k(lq>at>cb?jc_r+f6(xwcJD?#=;hCcTbk%0o5ABh z-+VLK%|h<&>X%PeL4s%%(-LC``XPE>4d!jxzd_;stx?c-x(c6jiE1my$)$cqzm%VI zv-NKKM;;3uKjF-;r50O|@Qw{&vu}dFc>$UeOOK*eF*oM)<=#{%XZs2Pf z>Lu!YmHwWg3SFw7FXZ#C^pP%m+RalZJ)HO zSPZ{OaeEg8dM@P-_%epPBek$WHOBz^oZK9SOmIc{;tv5S}f!}@E{@xD#EQmoM6*Fgv z)h2&y=evIn_3EO^NR5Z#8JkIS;)G(9ic=biM-re_8EtW9XokFwe+8_7>GeuN(?QtZ z?~=|)DSdkR_qZ)4Z|KA#6(#4BpOOzN%Z3%rlMj_}BzeXnsHO$6^Fn;1!$I32@JZgkkl$_3 z;Y@WjR8sG|CVV%24(BpY&gD?Hn5cqBhv67+l&KA>FM_7|IdpKcN)T8SR{7_L@(Dpo z1B+o{W=M&BPgTm|i0`|+L~?@Eqkyed6LlAJ1$3-1FYh{Z7-$2r_Lm}q-aakXXmEpg z!bE{A7^7w1)*qPj(@!aMqIqJVM0Ip`tsDhcNqg}rRpPaU_9&V%7LxI%hV5Y^iAp1a zG&guaBv+ummk@4CH_trP;#Ia{q^~6nMpuESY?1-IQnT*60y?o}6z-3W>|y?wEgR<( zh%?nZf8tDM4ooWAe3gowAjUqz<9_!REUvP12yY9o;O;EIS*LaHyJqy%KH7g~oKqgW z%(?n2j89N(6yKU)9NRkr&N{VKX?KiC%BKbw)XDXaQ$-qdEfQf%dkw0T1`V86PD`bK zZSlx_Epr)e%9g4UA=J@G$bD9em9P;4R@%cy>KvuYND&FK`@gp3=IP=CIYKQ7zH4KN zpk`wS2R)e3kV2tdGl|5Lb6MXjW~n_lSp<0Z$T(|(+4c`8G{=~(rb^5-UM%~%M*-qC z5$JgVY>wY93^*xwEvxP!pjGLEA!C?> zVfwCD0oo|``9Kw^&QqxljxsvsRbv!fB58Ji&;de%!DAI;Vl8XuhbpF0 z^rK$1PK&0v*k40P!m8#HsN3vHrFYxwU)RWozEDlbY9!Zb22O=Z%6TyyYE?%KniMG* zEJ>Tk<~=|DCmA_KF&>(1lf@AW`Q#%~ssoxaRQ6KiS8rbCUY)HD;8_dccT%43<&`)B zpRJ1|;9>=hMUFThyEi+u4+{aWnP@u*qOxXjJ^t*y1&3AUP>a3jKc5-(IQla{#mc|#f(QEa28)SWTl=Sw(;nAS_9692tFplbgo z)X`JzbXz+GZy)S&IA!#cmZG?1L-xpR#BL^^;`d+nS*xsQcHh-W%?4qkPMYVTN#9xZ(wv_u#Jn{P=F6}jWLmPnU_6d!*;B&BN{dRJQk4PqkMZm!^J(? z@PYixp~_~}QK%yx)prtqM8|#6A(P0glP`yA3mH>zc&<=KqWNx=EHdSz2}@A__VX*k zO5Z5Z>Z#B`U@rKFl8rQfQKV7d1u@1gL|D?YX&k)DbA1EuA%GCO659S&dXJ8ak6Zh|1%u92R6=mJM`q- z2yWY1z$H^u%1RqWBbF#cq_L~|pOCD2gVHj$QWY?FiKsORNNdS<){oUns7p&iuBbFf zK>9x!URRxd;BKthB(k9RHN3Mq^w<9IjOZdr!3>~$@b;`@%vW9fB6grIe8la!H>M~W^IEenz3{*DW&^S>vno3r+&y#iPfM-?6L zeIEV;2YUxXcLEi9;9@R9Omj7S0vC`h7|%%p5> z^*=+&c-KK^XguOpy@87b4%QgaGTBMG(;_&M0)L4rtD(rYDwdX&*R4OV@l7!N0(^?J)+oh?_u7f9sqFsQJqXkv{%iN{P- z(umUw3U^Cq`(tD-H6Um7&Gk5}=rX z{1GU^G8XBtY~}TGj;eI>0}svw$PPbfoDF_*-(2{m3wP_FNJ7q!>qzOXwtJaHkwgAX z=0oowp_e+Uk-W^h;q10dbl|(@J*iLm-d}T{Shq9qQh};9(zm1QT(s`F)i36#HQwqA zgp}re9XA>*KDgLJxDh=nd6qYt&>!PB&Bm}R?g~Rm0kJikGy%n-TBm`c9a8(f6Cyfa z8;=xbHB+|S-^xF;ZTT3(l(<=K&5qSS^Ltght&&fF@RJ)-cd&Hd)3)kb-v^7f$Ia;& z+>`MzAW0FWS@U)Q`&9k&jj-&609GD@r@q(k42cFL-mkoW(!Cp~+L8ePr!3Qrdxg!r z8Nc6*!=CYPbDr#9Z2y*m8I@&5(76_H?VVqM5oD@<-=v&~>EETWiPdW)fAw9lz>C_8 zJNxib009_n>x7DsPWqI=p)$H3v)nZ>29(*EaMz_XJUqx!qA7pkSZ2EIt$$T#p#x4Fc~ z29yq32Z&fs`Gr1|8Im5*{cEXF%G3$60}}SCi zEK@5Xi?=bZ9j_f_-%LOwcwm5MgkuF7wzo=ED$nu{c_Ai8vI_9G*H^( zUvD&3HKAwEZLlg=*VufKrQpuXGmLI7%*|Z^$}f7W`jYuM`?sP>U+9BG`x@TK0abDE z<>Y*z#n>!W_^6yK`@){xS^N{BB&a$os%sRT`6a|~Y^3a{9eqO(b>OgK@873 zh=_-?4NzKPCqc6EM+B}tF#Mnvk;Q1RHiry+@eZXeN&ZI-=8 z5{{zF-$xF$NKN||%96h9dj3V#CBK$)#C1ouf{!Xw7nj>YU)tyG^7w7H_T&nW!XK{O zRBUt;75`h0BmcFg|5BW}slt8u?Lq5xD?=x4=DduDABai;Bn)8hQhvdFbb4Adx-mMZ zQA7`a<=iNNlh)SFZUhhSl)EihV7pP%qau=EYI}h=Uv8W)(3UZ$Q&8QDbeM20ev}zN zIOEin>Xbffu$>j6JI%ssVHC%r=>KE29I9~OWTgtO*AXG};J>rpCiXi8s#A%vHK0sU zGBy+x4vub1G#1Itd(WNm=EO1T4%7?IJ0rTbAi*^Ca{O)i7a%)JK*pA(R-^x@w4QqT z0tlRxon#t-bzU_)S;@W2+g}H^tF3S?HXr)xa-0g88)5mBDW>AJJ%3 zRVaROKknWzk*l%Y5ygdP#fX?mD^!LwgQ+KsE$tl@r0v+PD|+CxLEQ@&Czt6|+3TZ~ z|E^LYA5XF5oYhe2v86uc+(e+=6px5=kyw^R|f_#QX*6yhirOLEv#`xL+6S!78t1F6~8U$(3rGzr^@>Rf0Le zLGYY9bEs}udd`~5>QbMK_^zGk%}TuaKkM(1OEPVC>9y@020>F8CkIfw_4zNNw<6b_ ze8512^(A5ZH1D(j-AEQfP35hRqeYAl4{IMG7V^=v#dR6%)!P@vr#i0rq-}7%o)zT~ zDLbUC`^e=B>SOAJ|;)kj&W4o(752%N}{RWok9qSDm-TwUDiuHA^0{q@cGKu z%VY9tmfx!Gw2z({cA(L{i z1;4y236&`LpcN89Q)ZwM+(!HmeJ|G(B`cbKgW|-G$3qV1{M-ABb|#{=2(#3%>8^Wt zQ6Ijv3`Q@L_H{k^rk4Bc!bMSr&Aj8W?K<)7vgW;_n%Biu4(?0*U202QQp!PAJIX-U zZz*+h^EYG%p+tm+o(*eV5C&INot!(2KgEBYy1HPl9z81Rt;FJq1PB9Rpl}~zs-IV8 zKbx%3j1sw0)_BkCyjJ22HIYHx^T^P9*kcJDpzC7WE_sm1#l5FE@;Xc%ZMx_&U^=8w zff}%P^hf1koqk1^08TNw?YTAic@ZfR!ecZjiB_Wo=^MyZF)bC|u;^OyI3L);qPMfP z1$S>tX@rzRO~)3oX3C2s5iSS1yld54on;vpH#mz50zdQ>qazdB!0m{Vu$jB6k&(1^ zG*pl@wlvL)*|?ol5hU-8p>NKbQnMzPf8}={qYisp z$!)bFjY5Eu9~IVDP?!oaY<9C1U6{!*dlok9+62OF8wHl@Eo2|(T%s`{ zzG=h6Odv!B^Xpli7uL`0Uf4A8nT65`dts)0a@Jls!qMnq&dduH9L>LH$(Hys#DaZ9 z^X4Pffp|LH%)8Yz`=DwziE>d@wXN)XYp&nZ+LC|~?iU^a@aHVYngd6r3?!?L-_?>| zY7ftFfS~Ga7g*q|_X+vxv|@uyuBjZh{>P*u*r`ua;{x_@{z!AG0R@=1*7>ksQQfpZ z<~-fAY0Ie?Q`6``gCLO-2l~+=7nu{WT~F{E`tsMBaZj5TL}uVn>dh7n43L}~0G07I zy(ztEgiGXS@H{3O`v|BlGk3jYe6_2P28Eg5>`Oe5Q#OosYhlZ4?f}xV)$|ap0H-uJ zV|_t?gbK|WQr^bZ^2DWb5ec{fx)DN7y9EBIzZq5c;LY?4%_^+U;}>?>He}6Lz6h6i z6he>|sIOzoaH!m;9#NA;)jfXIZiL&%0uHkgxbrWDvb;nN;s&n)N+jm8_-kKnERoMd z{+#A(LKh&nR;<>|+&}m{EyB(%BYqjThh@5+%J8OqsF)s4)F$oT!SH2G)V+0@xM z0Ixny|Cn`9tu{{p``xiro|{_S=zS6xoT8^Eo3K+F#tT^VD+xcrZR4`Hb;5rurE~U8 zY#G6X>SE=hgK-61W{%{)NsVeg98Y+GlrCAbuBgwS_(%9$+3qy~QlVJunA#7TsYCp6 z?dPF?lzf!fdZj+~MiJkv@goUfttI97RlW9grH@OOni9saRH21L#lZH>s>-v^5d2l# znIQfQ?2cHit9STS2Ox{VGb%VhagQF)Zi`f{iE~PbIg{}_Lp0qOWbW&YmIV#Oxwp>N zgHC*{NLVA}56mkhymwK(H38a^ka1aECrWQusjxjnvuqDc29j(!4NfS}_)Vlj&OnXn zBL)M)FZWL{{i8NY!B!b@X`wYAP!Oa!a~}~=+VKt{<-Jc55!Sn)P^;-&Si4>k!ohQF z+lvvbakR0GIS?oS{2Jzc6gl(M+>Zt>#e_=DY{Gm&=Tf**VpY_51+CCRyHbaX`*|gb`~W{6uU@#Q!iYrP*GXZl68a>v^Zz3 zkb=jLNIIKyoM@kdoI3?gQN#?eG=2E*{`7^W!l|W1H6=f8;gcz66qwE}0W8*+BQx_@ zFI0-t+Ki*Ti6j69MHXcjWksB1*{Sv}Am@@u0u`FQSe*7$9_o`3=m4R}bfD&iaQ68e z>BSKY1B7c55?SLp#HmIB3JB_Ea^1Ku zE@E2Y6AWqtLFk5ZMREkNRe5{p3<3TC%TC5k%q79vwMPd!G0#o6KhVIc9}49&Pxeak zr)cXsn4%A}^^)aq@S4ANo)z&f1a*Pd#!5BKxwP=|lG#HR~S0Gk)oJVh)%7Xqgx})HWbkH27KSyu-kam~h;)66}CbBOHJny_66z3FzjNjnQ%QA>QRy+9n34%|FAYxS# z4hTsl!Szi;!pP5B^%~`aICtvR*dO1K2#<0iO`_2 zKc?yT<%oMpIE2}C8QyfNZ`*|rMLjO9-}0S6aRQA-X31TZP)8o(c+pj^px5sqPoz9& zsMVMeRdUpG4j0E&{G#FN*%a_1o%a%ZeW>V9*f$z}Mbe;3a&Sq?jV0Gbega%FqWGDq znX0_A?7sTt^E8Xn6I;3>U^&{p;Tg;cvCOVLvw$eC#W^N_kPgDg(0q*?n zEn%(mYgFAkdFEebyIp@EyrWs&__*2Qs^1H~0GQP1$J%&;>t&OWQ#DQ>$9zeAyP#qA zmqW=NfSkw;<6VIc+i}IiH1_zNkHo%f_QDwW5nt7Q_sgf{m4AVEcdB#KJ7*)R zIQ+UL9O6E+y^%Rm{Ct*|7X3$eWm86b?0)fhx|-6jH^*}o7wz(HI!F`JG=CoWZSWZ$ zXt@NeLfl)_8pg=_ya;K~9LViyal^cGV9<)IQdBM6|EbTDsSeSH9%f|+2cWR{VZR-K zTN|WT%I!5o@uB_YE&DS!@z=e+`Kf0%#aEe*8l0fN@sD&rb8cnCUBjl^oBLI4$VbF+ z|CqXMHOQ&u^?4^yRI{~e$D_uS#`G-3rEIkSwh47Dg3o?j#;O{$mPwD@?p}cN7iRug ztv+{8A@vbboY_-8C_eAbCOA5`$H=g9J5XD|XHM#pA9QWZ(f8SoGeZ258i6+l8hEh{ zzUAwr2P9^#H?T{YIc)erjLb6L)phtW{15r`)4(>T-Qeu#dyolXVkhRtU4#S=pwvay zoPk(T1@Wwy*=g@@6*=)@_hm2NgeWYW*elTj*B92SogsQhDPK}(+dNiOI&|g?-MF~A ztMIG~o2)8G7=pqUR82f-sVuj&DDDUUy*DFsF})^lgv5aPv@T|O=MR<2Du#t-e$}oL z%vHs&U}hzFbj`X-grySXTR}jDO0X61{UpDVA9d_@_y^I}hGrHUK!9i(1eWMEpHj-} z1Obz-E?VC)m<5inc_=y*qC}!7wwE1f97ymO0wfTU4nfKy5zX(bf*j^Q1lwDbySHe-MsO_(L?Bu9M=_3Sln3{KFNh3G zS}c$vDBnd|mA|u|s8`|9w-!++4-b2hb~mHa`;PIt9SurmAEMXW_5t!Hg@+llg#X$n zYf>QSYl!y*HTO{@Y9cpVUCT@@PPG=(4P9qM z)j!hL1`RpWo~qyKQspLme=@KL+rhT5s%4KqFdLYK%t<|R&GH%wka!YeL9`_%MrN^L z81+LO4KIBmL_9_@NVqFGwOaBXMHX^1tBjHvyz*)$UH_`|aEWjI6<)?eo0!NJ3G4dD z8ZQqmC<_Tjzg1-1o>J0vhteR-N7^lrP@cPC; zgGpumhH>03^j*N62Z2s~C%iq~yDi%O+;$C_$pYu*wa8h$&!I;RkSfIPaK|85Ydk;u z9vhU&qhSWrl4k+8gWG&W>kxr{bhMuNzTnkrHe&@n4bjiVxrU8et&23N7MhYOtoTPD zRYSQqKn2emBebyfZ)ae>;r)(zfG_|lNepsC0YfyH)qOEEEkZldmo}(7#^w$Wxgf#( zsHD$dRT)fnjw6@XhA`<*25rsEa*L)(evyi6GUM;G>-T+vm$gXxmx^ASyRU+5dFI>S zZt-$}4^SNUOtF48Wt5y@=%btx%7}jVLi4 zf{7wZ7C2fzkGKdWm@8|a7SPO6XTp)(h$Zc0QJuj1`}HPe@aaXu-Jt9WgZ0^L*FF_p zM2^AAYVAwn+*UYR5F5s|fCvShT-Tc48HfjU$Pc7V=XvosvfXasfvvsVp(j53p?PgP z8?djC|8Xw{{>d2*FCyJ{MYr;ajy3uDjeH= zjZjAOrb}Peww%nclFEUW4cFIaQXr-dqb6Z=Cd5xxo#Gs@)S{xJb4m68C_qn_t008jC! zI3W0->|c?9C=Ox8GZ--^CNAWRPa#yg+5G3_p*a+6Exd4c@58^HE1YPfSNwxi28Adr zl`Rq7CbZl|>l6SfUF=7N$q(3kDuA*m@u2!?Hvy+6;CZEsRGJbO!$=~iiYmbU>C1-| z_0HuCd4l}VW1O>tEYT=NbL`B8@9&IFB^OC{+)OA<&3mYOU(5mo0g5BRc@`h-xjep> z+AE0}&}4~)7RVZ(PP3{0x5y+x@~2$Zni))N(zrn&3DC~E{(9}>07323BvJ*7vl1qY z)1R3s;v6t!0IDpNN4~VN;2L4D4&jSW7IGoz+_;PBB8zbD7&5tphlIZPb{d4o8x>cU z@_|VaiQCH_E*iIzH5PkU>sqkb`kaB5^%aC=%iWIL%XHO_p>EsoLKN{GtE8a8PF@>= zhxOfpd1KrC8!b8`<4Xq%-~$8~anLj0J+ciDCakaWOp-A+HYN_kW*8}wJ~;g@dB)MQ zWCA#HxUwg`7+n@>CUngaEtc2E_A>EyA&zCLzszV|TgEdqJAXfN@CK}eDe3uEZ5zAL zUM%gC$exO+&aZM(lJw@oiVHW23{wpEcc-Aw ze4!i{@{ zo>^O5Dl;v^(tPd%p5BmKLvyt>arOq5+}ki(vEYuE$XI9Q7^0<~C)HFYYEAgL-A`D# z!)J;D@n00KjmS8y^EQk*q!tVWD?oy%an?^X^K!muSpVLATG^-qH?ybmr?ICfX3kVC z2C7j&{3tN|5z(+V%U2FXLGvWtGs>>VCSHqw^6B`fJHni8=&e*b)R5&l zV=O4!)4T@7$li`Vbz0F2sMM=clo}4UR_4N}SUR_g4a~u&U?vy9bHM%w8rcWX zX=Y2a0CE|;HZ=;f5t>b8p@A%9?38Hp@|Y2usZOgg&0gDl9$(u&@hD#TXOh}fiM%QL zoYAJ6MxoSjv3ubj0mcCp%(eO*L=!6tVY#FOXTg!qAb)!aQC;-6G-48JPRXv)fyh8_ zva{np(&7-7HxLAWVPk8A2hGM>ZR7#eKAa~j$CwotT6*UJOT&8AoT)U;H*zz^MMp48y zAvb_SAnN1upPBE&Ryv*Py`211(9;X75%y8rM%7XyrzkvDx4TWq~^uSiP znCZe+mNXKTQl4p|QiU0-RnAa@3WSj2qc3C7xZD6AU?qdI{!wGv;tZa5IfyeJx=u2C zXRWzJm(fNggJQ+GkE+n*{0kUKR!=qLv01dGFT%GC0?w6cv(7wz0?r)`4-bryR86!R zZtInLb25G4nP; zC8Lw0>*5JoxufI8_5sW18z?0=cZMj%Z6KB2=@)n{qL1KNWk$_xy7_~XBqu4FPWIm8 zU7SUc7Qe<MwQ)ssOwW?{9p(tLL&WWAAUWLN%vv+L2Opap*IgH3zn-JohQu?@*& z@br&7Szj9N5$TcP%y@##OI`g4=DuV^4#M+f$?ag7^~Nb!d-Qz*-bVQB|8s>M&H@fUm%gX zo^nWo{*;38w+!50S`mc$faj&M!TVF}7hgeQpMif<1A(K1D|FiaNA!F&r3+r+)~ge5 z6R3an6*KGkx*rG>q3Rc?)_;|j+zl7!ei4xxL$wH>iY%Ki5&oF3+^+mHf2cLSSEb!2JR_Pd;zvy;RVze%@HX8g7;H%w1DL_vsmY%PD_Y}*+0l6}u6d-l{GXF7WNpt_*IAi~t z8k$aq<@y*Wv7tR<`b>2=NFj{cnJNNKdP%@P;)m5`8Ppcq6DP{bUA3tfBM=@VE-t4Z~2rS>XWHM}?;9cWy!vF%WS zA@mXf)?F2>v~v7R95)#@4G0ge0&ZexHEjkZuM~r|bSC2#L}mu#{YTbzcDv!?Of^leAe(#;t8M6?P8?) z^I=J+rx0ssW>axD%HZkEKlFj8@VNdIOjyD;`#wVtYw{fK*_-i`n6sNku(wj`H)2b@ zthk0#YDs-97x6rLvbrv&)F&!pTEJN?#IRGCS3H*IK*r8qhZgBqoU&w_Z6iI@w5%om z)NdbXqzEsbG5Q}M*DF!%cg>)!km%~e!r+GJyDpuMoFLTgh1MT)IwI5%qWJssD#Bc( zIQPUxU87##4c6^ppbjVcftJ7)^_78wV>2TJbKA9`ZY!a2HCtm`BFSk)6GLJR!w!(S zg?A)tpXlFa;~#sci@kBW7Nx1P7k%aLh3^y5?-1|md=afLnZ7+)HJt|IXo^;fyH1|+ zA!9&oIXVzfKY}=5%k?RbdHgunGW+d7h;D==!EZ>IcOLeh!=k10`LiHLSfG3wqJ}MV z{p}LQcMXFT21)=1~66xdG=A9qDacbx&-#jMZe7v7(ahGSY(IFFy-yY-W3%XF*;ZdmvI= zvNfaG#n`?g;`&r9@VUmT@09(iC+&zY8OAlgYxCY|xa#mFhI7=sa+o1qQj?H-vvTVZ z%SyjKOuCB}%sZZnb~;T9=P!RZ^IvUypoQUV&(pI$Li#!7hO56sV+(^mOy^tQK0mvg zKVQ5svvp8w{X6D8#|^jYX1!LYXMLvFXD2z9S-Jy$H&n}XzSZtg1L~Yw+hXx`XWMQ$ z-Y-90q8~fSr0;5Kvt|A%4%pSX-BDi07gEw}`OD;{)K{;!mo~KL6@X8~oKyn6)s~?M z7AvL0QouFz1Iw5B(czctx_!mI4}S!fZ+E}MhJj@w4l6(6US+5%)qL;3k}d7E=Mpy4 z#qj1tl#~ssTrXv9UKx*Rm40DK)8IwwRVQb_30B$MUOQN?HMh0zGgNgun$bEgOpaT6 zjGkBiuMt!1QAXfIh06C@DiH`AR7R^Z4^)sn^GKvFN;CuF8b=2yeX+gJ5`mmvKuR^} z|Mv+&8i#C>(A!hxmjS;%QmXnXx!+ln@9<2I7wu!7vVlB))Bd?bC6tcsJSOTiuv0nStFJ9zT964+|Jp|B42paaKdN* zni-D_RW4z@`k|wvtDZdeNT_Fm#vY?$l-!!gs9076#ar$kL=Xs*mdIb!Z5x2gz)&l7Y36DAQ{vDxhK#28XW1JSrs zc;ZL~J(?{qJ&{WA-=Pf^4VBnJLwW&IdQ+8v zFcVPAGQs>nu+*5t$1E(O?4l-ShP6zmSdW0nRN$#crAlGWn@;nj2u4iz5JhPS^%}Oe z&Nb2zHH5?J9G}OwF`SXH^^ljNCXtge*GiE^fdj5ccT#12hu$iOLmJ$UPX0AZL=nz$8t zD$N+4U{z@uaxqCW36oeCi}EOa>hEIV(!><3D4RL%vtIjRnV=(xxJVWrcon->PGk?! z_&S5Byu6SaD?FAvL!stMHz`1xJ6d3mLs0h;cDa!to^|B^0Gap5E(->3U>>la>F@Y8 z821@fS;Ch?A$D#9D#i2ZsfY5y!n+!Gr4K{-;^$-3&>7x(HGD$i+Mn(WP4m^@}vT*MK0hFWV( z-@)4PN?cA-qbICtd`vGD{Wl^wtW4I^z*Hg#GY_HD6D~+#$opgV;qDku0AAU5n zdhO@lMqT#0J0QFw$@m5$&}9?6cHQ{KABlK;p`Hk2Ki#x=p1)sl@%>80*wV!^gw8N} z=43?O`_>T*_x*kqg@jE7+U=4eh=` z#aa${g)F)Qy+-d59^RQ-`#G+zD;X?nq<nTO#WExh*}4+S;1I8>t0CZRil zpr)ixp*Dp?%3UNfY0~v?^sx^f4#(jn5%`lmCTCZW*UB@~9zRV+p{2SFbFX=G#blD6 z)$$Xnrds(_`A~qZksjuv(K<--1ZbBl)Q76VT$UYQgaL!z9y&R-6KQC*F~8`d5me^c zw)?j8!93B~36YF^+W4D8zAp{VT-jdH=Z4~Ox2={e_zi^t zeOLM(m6)7OcpHyw$}JJt#oGXEpm#>QfL%8&)b$5A#ukXxx-`f6&H5;<_9r~iUVr`` zGG9PCQx2-Pt~zrfQg*11Zx5t?$3^p+osY4LN4}T&X`Xa8@pEKWHL;KpOPv({+fWTn zCbJEqx?1b$N4s0{w|oJKyeW1Q+kGzjv%P8>5;A`rPN^g?&YW~YdHClo)SK-0BAPJo z%T>3B#KD(u^O%q1*lI7!Sy|gT84)nM^4egK|eD@>rhFW zg*K*W(e^{8Wo_WIz9OK}4W}TZId!Kbu{Su>qc~{pP#wV&0Qs`fs$;LbC)4$JsegbV zg8IFo@)VnzZsH$D#|ONc7Iju}`qDIuaN%C3?e3MI3=O_Bwu9F70%NlQ6xj>TS)gpXowjkG} z##_ga_xSl&j*FvQtb`y3T=U!8ckdiN`zF->@Te{S$mZvNeu?+{h<9a8>a?$(RP6K& zi=6O+HKF~Nbe|sxNU8bfZpZ6itusXhK4ebIS(7sPu^;q_hY?|w@9b{;NG|gGLb!$U z!JBy8Rx2q@6I0|Nd%H9K2RK*3AZ77}zaKd^XWYl+O}{HtZS%j$$-?@^#03CSKd9g1 zg81ZyT|{(7CY=c65a>EtuoJFLIwcKw7G#i8o7`iM@dX(Hgd zOYUzBCWy@-xwrV&y^&u!P^U(9#y{STiEJiMoQf~${-RgYHNSOzH1SHjg|^??0sCNh znry+9z+09mWC^b2ZWsDgeD-)hJd6A;-W~Eq@Fub@4ae2Br^bjvH$Z2Nd*OFFPUJ;& z`+^Sr^NAAqlmP*_4c)7DEkn|+7cGd3x6o>g9j*uehk1_WJvMvEngZEYUA1)XmbJdeCQ zc~13{f>x3@0txHjD7mxspv6PAl)1a3!#k$z`MMAfXtTzt^*z3Nk3@kXB_`?FGUIPU zZVk0xoB-{9ysx5@NV=MA?9+^I-1yyC-Cj|03H0YR2W2*=qi=9ubiDXNZ`Y=YiM95v zC%G$u7jA0H_~{iD&ad2fdZ26c8hv@-buZ=XqT3H2T>9bz#mDVhsVUnPGk~Vjp!wDM zYpQiEe<^$OdYbdfP#8Q2qnuQT^7f(I$#f@q>9>F8?Hq^)ow#uC(%!bAiFrblJ`wKu z%IjWmdz40B>nH#rv%d9Dv&KdRNuI67CsaZz9s6$h_nxJSlq|wE-f+6W@9IEZl$jyp z@8dZ(8T#-^PtUj?(7PHj@yJ^LoAj}EgV>Y_QgTyqu=hJa<+{#{M7!0)v?w`(?+sh@ zrpq#1;F)*H%jS;-J-#sYDX{>l^W(?q=2L2<4%*dt9xnVvpF?MBZ7g}k*q6yiCap^+ zTPCdb;JvT)jbq8Rt%NEcWo=BrRry@*K{SA+ZdCG*J;t|tVzzHud;spvs=mFFMZyOm zs^6FD{rExJ{a3Sp5k^*(_ob&)PnCcRg@vai4Y~8@mOuI1a+XX55Y61;PC%wW64Iq9 zx8~3*=VZBpNFyn#kBD&BP^rs-+8(FUPhSr^mf9y`@EJhQGQEGAkC-#>30V+2DRNKx zQ_5>avR(y&NcwKRuSSp~ss{c?Ln zfl_19{)HYU z0nbp;9waadar*6jTCw}iF!j-j4qU;0@5R^N{J(A>m{KUIC;N-#eW+{%(f3W)tJ=pW zmqy8Uch6GwV}U*>9@+#k9J-TSz4YpWE$C=cI4haWTh6gleM)*(8n`f<^hllST|2dP zT}MD4g~HVo^U%c%39x2UEsv$n?a4zCOjHrss~;-2eYvIQnI51vm7cjoe?9cpT=O#bg8!!eP_7xwLU7KcFUvCq`tX_~dI7mJgKo)#)ko@}4jhCzP zTn40l74E&mPl>^iIB9>#GP@C0(sP7<0BGk|(CRaMouUj*}QbsC~Z z5q2`CaY8OqI0dba9x*5S=}v$3W!GTAWru!6pU852W>(gI|lBh-0mA zh;en-y#Lj%?w4vgj;d{&MI-eRtP%&DRTrz+eJPmi^OUfC|le%!tt3b3oN%0n4+1cH-7P;f6N5`-%D*Z3CE{4KtJx%L z$NMzE{`_1u1dD{=hp4Fi6Fr5eIaE4iV-yCne)$U^seeiNB6CCu_V4au3>*<7F4Qt! zhHj_5lqGKon+e?nD6Bes!`^1Mut}x1eZ0n;`{sJfraEEY^@aa;`enQs0(wKH5gr7`oQvbArfCJNdLIncJFN zX-cPrC+tiCM(X1UW*if&IkZ&w^SV%ev_eYG@L4npPPLk1}RGM7j-2U3gFJ_k_ z=F@W)$F0$pGpY_hGI&TVnFQGMYHcSsZTswZx1|n-5M?fs{^FA~!sS$!7xA)Ng`RsG z{rswtOO6j;WW4f4#h3n zXXTkP&O!UbaujaQ1?wDJU)E&Rc`tic@wZGl3~LoMum|z|dRMzBn?Ixl#qSroEC*zB z<-K{$IK0dmKW+Cz8!agl$wK^Mzf2n}{kq-^k#x+LioT%!=mtRN)%HZ+VpA8pu_HB5 z3(LjPiijz)jiO3JdDfYAYHR>ipNI`PcE(bsXJ~grr%(hwIuKP3P|n;amGMM>9Ftp% z0iJ$y_R!iW9SO*-BdcMx0K!jGUbFgBD9;n)SB%*{QLYXB7Vpgj@9%oKT z>eO=8Tj({f-rlbH)_=woBfjhl7xiPHteUUdD}RB-lfn4$I_*;c$EK!(2QSH?jr?(<~_I*c~6K<#F!PKL!Vij#>*32A*OwZA3!nN0P4gS$iF5GSWwm z!BTPxIVWdyzppCEBsiJHFUja`Sj>9FkNmLeujHZ3w<+)z!QsLYi#Azb&a;seJdOZ~ zr@cLZ_9_7ak*5IunE2hRpsXZs3qLj9duPeLKLR6ZTPTI_LANj3^Gmzqbd{p)zow>U zLuz=GGH8k@ZX!h)5}-{>&YXV(TDHAwrpwKBl`ZpHf5<<2x? zSnZdB?N_yZDcx85z`5MmaeFDV?1;Zxh?1Y8%7di6hhFcqke7++L3An7o3L*qjvTxY z9GN9YJl6j#XyH3BO=(suFVt!o`FqLF=Y95Q^Q`Yn^#(AESJqD|{udI$a9HQ>pBqak zj<1f9xy0BxaCOLhd~U`-twVESSR(APnr&^v-bM4} zLPn29CHUF97x@_YyErk6sig;i9;yPnp*#m_-u+WOuCRcLzv9Y&o7jpRV+Q) zUva{Xe@3T<$bHN-ybe8s)@zn1@^ zl}s47Puv;b-oJb-?26$$_QiAKWyFw$ox~Iv>rAK&X811#K2*M(k>?nYl-Sz-T_f#n zis~ZCKP5*nj>2c*@upo1M|eJqs@Q+qu6bB>#~nK#e$gvlz}Y``b$8+#GA)T=mv{Q* z6lf==^HDXFwD+p*Lu6iSDyi4~!dg?cODVJiGn~s$i?oP~+>^z*$Ll9(DFZeHga~(< z;aRV}Ax&R+zitE=q&n}|06JQ6XHOMfp;g#f{11RhvW~St{OS?+#0I29A018F+tkm9 zdK_3c;^wKh^N8bBIb*5pr3NWIx@yw+bY7{4^n1oLX|tI(xmz0c(*5eQ!y=Y4yvOEM zlWXwl389i+ z=E~`GeR#XP*-SY_rDcQ?0#1B3I(g#vY2NZ4;?+YJ)1l)4BrE;L*h3HrAYton+Wl;9 z?q*jx`AI2P{$1ST_GhUR9Z!q_`M$i}o;lN#n+C3naK$K~}jsr7Hge$k$IRk!=1s_2e$6 zWY}QoJ-tW8)ec47e?jgp{=Ii$}}M zVb`Fpv3HV}zJfM3nwSMv-v4OEPxi zymIMrN)xP{D-A_d@scq+S{p;-*G>qMykSBhM&Z>P z&+$4MMPL6>KTA~_`gteL>l0BC#)erc&ky#9FRF)2SG;5B6!G0NL4Hd_+LJB^5C zwzr@942`>zA@nUi8pY?TAANvhq5D8$?MDB8+LoMk1JBg@EgQ$bTTUyFQ1YV9n(`5N|sd)M^`uCHA z^v-;>Y7+>V$Ni%=n%1~8U~+kqbRZQD(781XJuL)7A-)u05$EyIpKcAKVyl6{QS^s7 z5lLQO<1^kb5Iw!4cqmEO!zPRgacQg7L*04S@KEAJx7G6j(wVd`1lnl_c2B8Gm7cF1 zG!^)dSXm1BP@RJvPuuoK4Tyc~Z2JYp2=E8PtH2^Eyn}Y$Ne$yI zk)D=A%N|yKX_lM0?0q|bibU7xfEGI5ODR-RH?|pNxa)=fXFOZn6cK6ZX`Rba9beX| zh9FM|BepIl`%m^v^Yvc`XM}n*y348SK7V;|-m8{f zkyAi?jrr-adT!KtS6G|hgm=T@Et#Yh?KrC?srAzSX@kLQdrU}PN5}GWzEKg*ZSEz$ z{J&+~RZ`Kl#4aA4NT_*L1F958&l*@Lol?mUp!oj3qB{ zt9dc?{F-ryKxsx`Ti#1z6N$IK^WzK6tS1v0$nN$J2$wPV?vny|4tE&BZsPdl(mZfD zb$Q4bFYn~)dP|aMFJH3WQB?^*g}w7{whe+f@S3)}V8WhNM=PZrww#AFDufBK#a<8M z9aQQC+tT6nykYynEd%E`ipUzLQ0D-1nDx0~f+t;rU=+u7s!iUwx5j`Dx!vNUQRrDX z7Wrdh+VhYAj85KEC{+6aOh6F{7^8GJ3e2qI{V) zF4DwwglNj@N#SdhldB12R*yWP0beG=XDfavSs1+bk?rYBi6QzrAy)SD(}#e;NsTbl zWrLw+=XX7&_sD zw>=xA&%)=v%?LpU8TKR>J-;_}&0t?LZX~f;;n4ho%sKq6EI(u;!G(`SJv6%M&pCWP4Xi}yN=-|3}x>zj_#{cY5;J`;CeVSer%cyc~iSV~4e9RF4jj6Xc z4UpB;kbpYG&!HI)50qI-RMSvgB(i+?nJsLEk5ohCR(byO`>0xf$!@ZO3s1(tcidrt zBh%5rq_jaS?&nfwqB~(~B>By0j@#^c>YHmy`X+$e+@;l@c18~qbgi=W&0=U$a^T7i z-3N;fV?jPKN=Du+|Hm#o7C^N#TGzQ}Mksu(k$0zNgy8p)>5ABk7SVl+0gauap#kb+ zK9oT2fYY69J7MVs>sBv4O@pUMjB+56to-kr$~h@1zk`W~~Lv7I+=v%Q;js&JtAK?x7!-62#l+Jes`v z)ZvaRi2@*$!4R;^997qg5^d`U(R30QIJ0;k8ZktXYB)XzG2v=pB(T@+e}I0jTeY-? znp-n*-3_Ai&fi;r_Oxbl>)@dAY2DuSE5ZD*$Y3IF!cE#3_;1vmw7@(vky5bG3EQz# zRm*pe^sOR$LAjQat8-s{&r0;&*CrF-{iN_jh1;)5*OE0vam4(ZQ76W+Z22l;r_GVX z&=tTpwi9JBqL=HM`BK}#KPxU=Dw`8kz0W!#|52M+QO*Tqx*c3^w!3;-&;A`Ts;cC* zQsFd4tAg6AmwP7KnMlSWhR&z;@pAqDHX!xsS)sY9>8B-U5B_+D?HPDE6(~iyq>US%d6D#oV>LR9y+8}~l>kcv z&O=+zjbm$u0eI%2R~>D2O)xdj2MgGyeGvzt1m!x7G)*T&#&EM*fz7N!>a*Z?kg-{e zWd%z>c469k?Y_-m5=9`=vC}UGYkPC;`D%Qi{ev8N8_6x$D7aM;Yedi*9H=v!B9Q>9 z^V_dZ_k>)`m2IgWx=@g5T?T56@RAzq^jLU-LYIQu0r4L zfx&Xq=))cAjS23tXY#@mXN+|&D9fIz-*H&|;6%ie3g|U_-tMWRj`Gbq58dOi3fG=y zk=L~sCqo`*z(xB`X#Fj>bA}jPJA|8FQG7_N@+i6;z0W2^U-V^9GmQ6i6XU0d%#^cB z6yjYUhO1fMbUp)DG9L-Jrml5_-G>}}wUBwk_$r)OdD?Sh|8h!mH$X_a#be;?9FsDQ=3h}gmo0va zRt|z;`!+6n#Qt5xvc6JID~ftaYQA{w**UmTlO^&yC{?#F_Y!WaeB54pe75VIxIC+1 zcAr;gM@9V)VfBTUvG{{vm74YtyA#4w`C+0bw8I@=d|n(CSoH7x={Tx$i{{an)N(*M z?C;R))me{Y{fr7prM9B3CpMgS2X~dfiKA(<`8NQ%$W@1}#w0~M>*A6?G!qw)Dhoev z=>FRGezyK?UeJ7#x6aL$^#1{NBwlyFi}*h7X#OiYQv8ZF29QG`*WJ&25t_Op4X2nL z%FCoeROpKo$7|N>AH-j|f`_UP&+mk?DC5k8Uut!e>q3J+-6=KN=^W8t)o1}eiTKlE3IeJ$TVctBJXnr}IXmn2frD?~p$NJGFFAk~bZ5}vr zg7x!Jxy1DN0XTbAcH_#$CNKXJ7Q1j;yI8I74mMtWsKLZK!H@+TSC*eeF>aYe6BKHy zt|z;Cbq_C_2{GY-$)9dJGVXT%MP~7ylb-Kb$o4zgsd{)_p!BY!CH^ViQuHh(zvCiJ zfH?!$Ev7peO=7ZI1G}Ol;!<3R3Iz&NbABlhO#J(n=ot>8@!3bW1;jJ2?kCE7b8Fxr zUSezS$qLh83BSE%y|o=j$}COXmNc}Em#}!c36M`NLfZxu~BL2VEwczdG)k) zM+`}vkvIB?m(y;kr+KSu)Owl18ci1XrjAdmrQfE&qD0b%A6!>~)P3mqbBsc}J&9vE z$+pNr94)PGwZF%!$C-3Mh*dzsEWAdchy3lG@L&@vcLb0FH@sO~_dsb`-(^JGA?#)f zEniEL%S90}q>7L4m}gT#^_3N*TAL7BAw;Xp;C8?A@|jeGK+Y6xD8G1SqbvZ`Mds#K zQ^#)l^Pa!yt=!mi>xPGiTnq%Nliiy90uFFo4$vt&9?xd9T_zGQNf(`8==U?7P}}~b zP`8}kPYQi4l9>|xK6w4~)PALX&nPo4CMis?qGnW@Ut)XU+zs1D&A#k@Sa6W2+2zZk{|v;eLL}E5)ffrZqkL=Q_Bto1v40|RAADg-^Q(*s?PZbt7UHWR za61j^pSljO`I2(S*n&sT~ORIvBZpysq0U$oj!v2MAx`@5Erz=XPG1^Jt{?MPT zPV3@a=F3Sr{Pvfj@eoa7(b@oq=c4>H6I`EYy*m&xi$<`x9r9&wJuB#@IwZAJ1*yP} zXIw5o$H>X_Ot^hyUHIE43dCbqfvijHiU8P7I+sL@Bmt(=U4E^oB#gxZV~vdg58g`g zwJWWl5i?UK17A!Ya(LT|Ce=@kBN_SxOWx1l#!5q=t5PCxQK~-CC^tb4<)hz;?3r}qNBsCk>DTi9edRV$Dp$AXBN)J;oHHo`VxK*D~|yxRcZpELz-Xa*=h)p zIiGV@cvU82Lw`rn^uhuUMm~8zM01I+v(|YxHqsT{2%m2 zrvMykUJO*2z6tFb@XS^Sq+dU;*=C9|LlG7@30wzM8YMfyx9)mlPcgP;Dc~OA12&NU z>`J-Z$I*~6cy+(Sw_6EMs4~HLs65;TTG84f(7Zr(bJ7~tqOG)qxCs4(Km$L+J%{3r zb#hVQ38A|n(7f8{)S--juLLRgP3Lr*rrzE|PSMj@fr~-T*=@J(3^XX5jd#C&ubL3g z_ij<@Qb^YwwgT-*p~-f^mbrK!Zl{^f?;jJdViv@8Q*!A2Ko-eyl&J#@I~GgIG-AV# zZLi(&&q&s7H^MoI$&gaA%phIM>vjafMkMFigf@zpUygg{5@BU%QW4*N}WBwZ99^(facMFz2fd@(*qhaXVmEBg2K zR6L;9u59q~B@{lqGp4)=1GMk@WQ+M4AZFJTeZO^n;)aF`I`sJFPlvjS^mY?lOlcR5lLh0poL~7u29` zzj?Y=fE?2%ScwkL6aztpNvhDEh+2qU3qPcML5d?6X7W2Y`_75oZl0Z(T?ugrX7U6E zQC*}X4fa{5I{^pAvHy;%x3GNg`e~i!p@G3}oy)k)SQ6iFjs%B+gQBDydTFLtw1B1X zwg>>;5(4gTzgUU^l#bUDOuBzHEk{O-ff)9}j=)=;i?a%$a6X8{i1 zIM$q=Itq7|&Cqby<3YY~<=Oe8ihyOxgUp2UG-^DOsx-r0GOscRY>}Db0r;dMM7QYn zCEES0$Y4deyBHG;g0o7p+y3B2x5{|z5e2-X4?RzWV!r%H#PAT{gqpNl=Av)G5+*e?G;{4zDvI|V>K$M0b%&2vi4T!1_MU+7b znbrY2m5&%>RE1E8_mcVK^?>62ca*? z$_%*5;U!w~SwHq`kW+D?!ka@G&0u{G61m}DwLf~H%E@y18W*%AmqXWVD&JnJNgAfi zQO{NN7{$DPgZ`sGP$NV|J($vVNxJ@HK4^SHtY#Us+zw!kNVN2Hkmx|5YBUy?4!c zyL`EY=pNPL3AS6Fe-WGH$~__kG=UWgJ-^PxPWgvbE34(1;nBs!65S@X+yiwaHJ2Q_ z-HXFsX1J?`3^ySn&HK^V4W&Y8NK~Q3uJr5#J3l9)gU4@UrX->KW{pu1y!};7oJ*Dg zMxn2(LKDXbO0gZq+v!gILjTudGt0~~v?=TTF0LrA6~)CTt_~aBf4$1xYu-iQ&n@)B zKs_0{!J>f5T+jG9Xno zy6WuBK%B_FRa_|M==dHw^(hD|?hU)g7*GVE<}9Lv@H@A_0g@uXyV>pJ^W% z$}5OXhw*zO5U_7b26(l(ghnEhc+~euz3-Ad{Z77j zlZ-i=#d0rg74dR;rb>lI$^RLzLl&rjfp5a#m&wgUPZhwI`T4--4V9`xX(J^Pp;%9s}wI3tuTfqA@5jv6b|Gm&; zUOe^6Hk@}_d_>`rf62kuErL(kL4eijg3WD`dTW4bOp1s#jjP8Ku`s(~oi|o*>)zBS zG)T&pkSuF^o3B@DOsm*{cLs?axn-c#x7F6Stz?&pbUbEE)iyO}MQUh}+d?VlcD=&~ z#AH9V^L#K(y$kIDqsC36Nqm^mxu2p_F(J??E)V%JD&-r54Bg`|drc{JWdfLYPTH`6DM7e!t zN>Dt_lo?5AYJGPBH+Vq}uzHi>`H#VCcO#%OfVGg%ciFv%T2G(0rcl1dg-HK{N7|&F zo*(2}DkJNMW-1Ny2iUmLvsq|+)U?v`fC_-I#he~h2^nIPLF>@g;|+s3uw9C zP=0mu*xAHy_v7N-;WOwm?K57fPxsaCD2vV2-}`rHA!4ihRJq<&7n@YqC%XbK9o{$D z^=@_9Uz6>!dv;`ABniWBc=?ylex(@1l|(-8XwZCQaR7Frjn7MS*AJ)+a1VO+%^$U>@0#DvbVvn6v|Hl`AIXbhkj=4&Ga+90+UCW4ZWAa(_OaP(FZrhC^`vVD z>pUu$7tFMA@YX1T(fIZ&OC7BcD}T+`Q-u%}orO5A;WPdH4_Qzrv9Q1gVN^IjP!V78 ziQ4}T;U25dl%)Qb-`$ZLe%RByHO5(_O!qUGfRtd%ia=b^T+F@>WRqtaqz;d)xbBDJ z*hT{wXVY3@#p5n}K7JCAfC$gwt#pZY)d9H&E-hwr;PF~p>=;xg`@>tG_INEZyB*Q5 zoQnlybT?P5O`1SVoQ^(LH09{|Az(X`Cq{S4bo@Z35=SNn94~gDU#y$ zpTPiouF6k5tvdevl|lNV&TQ;s{U~(XSRC_MR>)VtT8KxmzcJlOie%Dv6#Vc@nxxZw zf|}$2J6LBbKPsq%I6Il4Fo7@YVeDVaR1YsXB+83hHU3=Al;0H{1I0)jEFRu|jopD} z-j$yeKna#>8-F@GFT2Dt)xZGjD)RznX4YB~_`RCOnTYgFtr4#Mzbh2XycuWc{I$F_hbPC8W za^9UHx}_ONDqwcPWR>0T=TY;u(l5*PDZ2b5VlCCpt#{+X0ER$0Z=H`ur53CFEw3ei zS}iu)aK{qzWY6L#y?tjhCV&hgEo3_B`x#z!c16X6xQ0R@Z>P4%?<;0JGO{_ywK{|U z98&TnTy+ODu?R00>aVqKlVl}VFibT=+g{aVBNAM6kMKI8J^W09_V{b&*FM#3_W=95 zW<_FUsRX<7`R85Sx}Fsk7~W)cC<)=Kfj|nbUq$3Dvq)$3bgh2+$JaNBD78JZFu=B0 z@=C&RW3S>OjRvcexRkq`8wmag{Mcm-=pl@J7vduAEi>x@IS(_&;`t9-;N(KU^LIbK zk9{VpN%8g2;8MVjf(6;r{C}HE_BqoUn+fk()pw3FRai`+E%X~l1ptDdMcY!cg|QC( ze88iB)Qyezkn2()GoB0^a4DECV51yj!?4h48=c-SD$?AWsXYe-Woi(8O3!>J;c)@b zDE)TP%AWL%q7-!WFm%699oR0TIfm8<3Nco=LVPfp{yjrbfE!Ss@dfTt;}|cOf)0(5 z=+KM-7T$qfCVMv4`4S36RHBNjN`EX8*6=GNa@l8|&i-Q;Ubk;>k7>$yD>xTPL`xDa ziNm<4R>E9>uuE+3s@O04dkTp(AWNg(fb!q}05cv`J|VytDDmbfS*lLIv9ox7F|Qzk zpQq%>$?l^kKKj|1k=&LNNAe~0$ZSg8V~0|gpf5?t^=eB%npfoB8O_^r7`r@(-T#NR z3nSkV(z|L0!mAxe)1EQKED>E@_9n66Y?>g;MJF~`dI0XHD1X-d-c=e;5TP%x5a+8| zM{mn5Z_o~AlB0}hkEEUfj+!YoDMp4E0;L~$ySyP7i8fBWtI%Bh3ji_b96G(a-tfdr z7z|&`M&x|n;HK_2t>qZC#BVVaD0}=JK5?WceA{e@Zy72PU*2CNo>-WLuFz%sXA?KS z2!$6YFG*>*Ziqy=9INRe_4%oGn-|f)@Vl z=|TD^lRroAw65~cxdoq`e6Z+c(<;>0iNvXk)SmuGdkLZh(-5|A>dFvQ3;WVi+xV>; zkjtdIdm<024rVSbXiU)vBuPQFCYSf3)a=~opqMdVMWQ39s#@R2fW{|-NsLZ5Jq4?k z<{ID8pgN^!`+X0}&}ilDO5;^53+HaxlICjIouD>g*jtm25huXZ$p8yTra8N?0DFQui~K)%-DdN4B($4HLzB zU%p2Aw`v;v{#Y!9Ua$0dKai|T7S%ZsWCRkh!O&vxjt;s{NMC(;?c#9ayeF*xSP(E) zhbx;n>HTfFxYyVd>04PtYVLxv~;7+mxQzsLWI?)JHm{*k4lxb|<%fHo;!5 zHmEKC9LZxv4NH%@#;U0VV<*owMZ2X>dPht%)QY`@zL`iMLf7Rx#Wa@ca7+Mx=MyN~ zq?9Yuv*>;&k_esm25{8!mSyNdl&JO?UQx4CrkO1B-0qH&Z5S9&8b{f&;Av8&xV08( z-m97Tyo0pU?5Gt&wN|te7=^|rRQoMw57R<4Q&xfkP9B?Dd}r9E+>Tj^Y7X5Ez`mC~ zIp^VQ+QUaLmAGHdpN#-E*RdB&*0t6rbiz&WH)r$69?Rn)ac5TSIo(NRK2D3ZCez{nK%es1+@-YwojtG~Huk?OjV;T4<E!UTT`ayUUrCzc!J##8khoD_qUxW%^bn=d44$AD~wbBKyDwDfg%tBb|voAQH8n(%t=kG_`9kfi9@@(Cm-8!4Rz>Hd8A|479`Qpv-@s-MMw>Ev7O z-77@=bZ>7B|5}8lJ>JVRXXNR=T6er3Mp&+PGUg;SiP^cOaDq@@v{y+^hR7$r9yG+( zEwtt87u($+qmU}1uUAO$cfny)rJi@QJn+lR22p^a4wUc{g*%a8kPvD@m2hyJn}JM0 zY2emNi@12}0!4?&QYs3;+WD%Xhzt`#7SizMzz@BR8U52v_8MtWyTO^#A0NEpocSm( zzD^Ugy0jQz!~DmFD#oq>`@d(bm}FdRRnmXN#ru(RRYyDM`a+0n-z*x0Og(mbo!3Xt zzjzAjCr7HW3<`3Ft#~#1*F6d(}Ic z=%Ek{)$8&O-Y7YZmHA*XCB+6sA&z6-eE6#$bUuAHA6bU4Cc zLv{$q1#(17^rxpK$FD|yo^26vc_+1YE5xj~wAA&Rr1m|M1;DFh_ijqT14tGs{JZK6X+a#0HF2c_EEJhL^={YgCI z98LmG+i@o-zIMBw?|N{wql%J;vh0~D-QD0jqihYW(kv8L8+qCwywBkUZlTxf?AlwZNj|Z;2r(nw`ei zT_7cv-UnlcgD;x$4K9E!f0>w|*TJOt;G_t75?oDq>BZp_ue}tLmr05jA(T;~9iqf} zJSd1@{yt+&DdCR?1md0l{G$^+^J5i>ayg@pOS<)W@Zm}DmC;ezS0%>6^R}JFU4ZPi z5k8gDNQ!YfeDm@ z5_phD)yKZFvWtw_D1fvoL^W;m8*&IsY4C6LjvTLb!9~Xw177rJ=|+6 zC>j!rHkR3S1zLxrCy4Q-8#d5@1OhiOIPC*|Rh5)58g|tSamLc3RFrO|iQ)eM9n|r( zQf*UmOJN8qLV{DdF(M|ivVods4_k;?WzvNp6_rd#^#RA$X)L8qthN;jOcfa8%a6CZ zva*m^T9hTlCK3XMs82J@O!Dps z)sdv^BVrRh!X}$}jdCOg&?O{#P(S0ova*Mu#ifE078Xfd5!^rDTT2csD&;^DC0>~a z$9Sx)q$5gUVHW69iqf;yCKO~5zdCo!Q=u=klz>TzQPd9!pJ1%4raKI*G~0?xb@+ikE=m7qXGsPQL$1G|M~WdUMHWwgRp+H{W4jwvU&(?v(ATG;^zOa&x~)JY@S zD=R4tj=IX)Ot_?|5wEbFCw^4g5XzYkDYy$I97#RLeWTe~SwIcCf)b^Ll_p3jQ9BVl zJ=C;?DaMku5*=75P%u;B-C0>ckf~Q#8YfW%&Z*yiaZ2jh`NgFX)q~9YyQA4zSxjtU z4zEdVXHbnvo>Z0;n}s>02_-NFvB!T8_tsWWE03npDRs0eLW)X+D8Qy%xl1l?f_13G zE7|`58`f4(D~g1=lqCQFwCMzLs<|z zN5s?3TR+q(_FO_#Ndi+l^W#}rNCsMkt;tf>;zsKx36u43tU{L4MZ@TBbfl1}n3?BU zSwIR!xYU-MacWwEl$8||r`tR6rS&Okr1`*YwvN>p{J0XvNVNggv; z09#?iNPtwC+zq>o?^#(v8|XHI+FDYIO1B-Q9qT2CB(z9T;7m*tGw!UcpnMLYv|Ki$ z8>EEq<4&!R*i^F0ff`JW{A(*HV;ONMB|3oAsnY@k3URjOA$n62rCsDk)s>V8#H|Th zmbB~$kR!AP`_h!yb4nfUb%@l1zTNY^Wo0liETE|x5)-V24fu{5#CK9s8!EVHC(&@A zo@O@VJ62Xw-~_B7I9Y-Uq(to_#<5`_2g=qA`poY>6_u3G46>xW6cVi|DVfnKC)Ybt z*lo3`7Rd@Ek^$AE0%MTl#rdCkPD0xLo z?UwgQ1p7zqtgNImKmd{u0z~OZ1JT%;)2S^s9aiT^An`HltgN8`$U!O%4Jp^g2e|R$ zPL|YKTh5ZSqew{BMv>q+a;&VTBx2l4Whl|cv&iEU^A zwwBVZ<*;>6e&(MgA!QoZ2mxn-3hvvNva+&(F%6Zp*-B6~og|(#VGx1c?N&RG}ag?opAOf}ldmckkM=vY#Rv^MxTs*=kau zKupX6c~1((^@&hGP)4H(Dcp^wva*oSqNCLZ97Pw4J3kiZGd-mZ@BrS5`T&XFIfJ_6tc-B@^18lP?RDlFZ0G?xL?yRh=rEo|8*)F2? AH~;_u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/restoran.jpeg b/app/src/main/res/drawable/restoran.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6d8b007627ead274791e04b3d978ae79b10b4dd5 GIT binary patch literal 28662 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 JVXq^i|Jg=gtX2R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/tech.jpeg b/app/src/main/res/drawable/tech.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1cb501e5cb0fec98bb46152266319c42a7085799 GIT binary patch literal 295647 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%0Aon&s(Xl)E6oX5A~qdG6v|>r&q~v#ZPQ1b>d{fv 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\VMU=J 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 G{ri6{E4FC> literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..9a77d49 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..65291b9 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..65291b9 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..9b78a6c038cbc772bb155292774a3f79e73200de GIT binary patch literal 1618 zcmV-Y2Cey0Nk&FW1^@t8MM6+kP&iCJ1^@srN5Byf^@f48ZCd}bxBV6(Vgi`1vl)aB z4o6jhV%yrX<%#H2Jkcy^XE+RjDYy;bCs}g$2G!l|`~7|Y?|Jd`E}FZ$TXL5#p_%*> zf7;j3!XT0)C;fpOR3HHfxWWMj@Db(l3fi_|vD+P|)wV6m`TfV;sU+XPB8Nz(vjUam zlH4WzKQq_>x{lop+qQ8;UHc!Ptsv>PwqtKnn76>8+?Bu z{?=35x@z0DZ8!F)Zoehz+9pG?a%>wb+xE<=&unemwz;xxUEBCwQ<)JN;XslkC5|U< z#{%c>ZvAKEwv8j|x@Fq#BY4j{C4v%}Npl8JB63E331u8g%1W9_`bxS=dZ?MUrw8fd zi!1RfISU}Q1AdagxduOF%yBMok=pn$Nvh!nhpzN8rtD;~p($p@PA1#FIt$F0n5jTy$rp_f04PC1mJ(lWtKuF zMqf!;fF|e|zWUx-|RCF}q~tTt$ni1PQ`$ZJXK5cdWfHQEiKV+dW}P&({( zpt=K+7lgPi&^R6?()@?zGlfj1+5|%nxI8A zAM@<(()tT!XXf5mSHQ_{m9lNLbcGm&$wwnRa74I%gm}%+G*-q^Gi?+oV(ym4e+1Mi zMCd{D&7qKqmfslb|8hi_0qje@0h1ght7Y&blBowP!3*C{0hndY#t~u|y1yFaixcPn zJ0W%}G)$191^^887G{vn?-(YYtVH=-_W+bMnpu(+oIP5Zp&yK5M&%7MmubY*9>IS?35`WPtS;dD^=() zQI#y@8{DniC|;6!whl36DTd}T(w70NkK#)53UOLZu?M2rR%D5B+27S66xQ>K2P!Av z&#r5bsrCdI1#b({P3-6ALIFY?4Hpots4V$lRuE@NVOs(x#c|q%+BC2(ttZ<%QVn1j z=Xr2GO(dAgaRHoV$7NOQisG~#DX7mDadq9brqO&6b)mY1 zp4QW$jt*-?t0=>8%5PYF`Oo5b1m`!L%jedLdhEz}P2~irh+|tX?;DVg3Hvx|hb~;Z zmyZTI4CCCjd^VsU9ZT)48=ra**KA#ZYc$AMWR59j?C@U--$yW|sbfP-2x}?Q5rg6NZ zE`??RYY{7n6UWADIOnLPyAhoAqtcanR>Fb7jj49A)NT+LjQPSG5vRwMQ~6qx59UGS zS$%XHi9V>rtJi`g60&_%k5HCh^w&Z|x$N4_# zvr^2IolG_~rOepx0Jk^!EMAq+3^ID}RglcvozkZ-GAHMZ4n%>R9}NY^SWZzGF_@a7 zG5h;X+WP_wK&XQ;#bEp^IIdqUIAP%wfZ&J~2m=Wq38c{b*at#3*o>T-BZ@O_NBlMf Q(Yskb;s#}85br_70ZS$cQ2+n{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..c9bfa1811beebb4d56edcc5eb31bd3a2bb6bab4b GIT binary patch literal 1810 zcmV+t2krP$Nk&Er2LJ$9MM6+kP&iEf1^@srp+G1Q;!xbSZ6xo%cJ8EoN5lm1kIGt5 zv{oB=vu4VXwQbpxYyZnmzVCh`-$$E!7)+w-QuE+0rIyqT zHIo_0k!{;bQa2u^{`Kx&1*ju)BH#c3Kroq+ZQHhO+qS#xx@_CFZQHhO%YoZSisT&Q zGJJuKZEcICtOkPfJ|FHAVE(hBySiYpE^ddcaEHvD%-!V$GS`rCxVsmzJGpZgsk^)X z?vg`}BuSCfLM(QAF8}tqy7QrCawAD{BxyuD7K2WY!w;yJ<3)!9006;c%C>FWwr$(C zZQHhOT()i7b}?|zjX3lXcgO>z;qhc_2k4fq7+lQ{hN4m@>fK;T(H zt!<8UL5)mqOk{2Y@dll zO)Qc(j4VnwPb2i-ozWhT)fR67d)L)cHfOiYba=i$9(s4A!Z*gLjI z>un*46&(&0WZCAhbRaS_T2_vqTJUdN@PT8S@#rD@yR6`Focx5$&q;?>`ux}3;c^3PqZ>NF++u)76&c(rH3HXp&ZJR&jTa-G7D|wUD_Px;BQb#OI zAf8!7Osu(sKy9|o0{`$$;d~UW?+{gJGn5myNhly_87W~UZ;5S2`3G0KSpC?!Pmy|) z6|?HLwb}@-)I~n~z(WcX368jR-humRP88V`WvuOO zkv>u9hJWExwGH;M1KTWX!I5-;!(ZTYOuVEpiGZThapi8V^4}}xw>c4W(svtp0E??B zwY!33K($7jLS}w6{+i4_5m(CkYx=^}i@Ps7uqq)$Ul%hF-7n7aVAd1#0asftfX8L@BdhAs7fy?TQke3us?W3r~<{Gl?p(cK#ZELEf{ ziX|@#*PJbb6;8!MOZF*XmovV9kymO}_o>JaWd?+uhbe&Q%D{0F%2Vjd_nBNkWgqfQrG z4$%PPT+t6ecPo2xHWWpi%_+I~DPvSIviPIo#eYbIT7ZkkGN(|AGV-mW-4!*z7Wzrt zc#tCiWDSV?7GrvmDHwoXMQ2`Ay4aeU$Z~kydnd@NQrwM#tU%da9PZZ15DyK8X*0#U z-_6Gy4dEY+z}h9{ZipsYzSHL=AXDYKt5U-J#GFY7_tAh|zL85EUQmDk{d@z`7GiLGcp;JvlGy+?dxf_`?vA$F6bZg2$xsFpDi*Iof^2*YnbRYC- zW!JCRgqI}iW(kV-;N63oiQn{C2M#Pd*f?xKmTzbnE4M!D#uK~Ywe;=_X#0zzGK z0fvh&@gF*em|*gNU2b8FCAW$qLF@}TssJG*j@&H#CM()pbmX!iYrj{nANT-PW&VF2 zWO?4{C{q=~W&6qqFxRE!UpTwduV&enKx?NlzZM>wY$pR5j~L1Wb+#z_ZUB}v19xfz zXY<{+yQw9IZJ3;2#+d7#jT7;J@ZR0J}GC A`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..c5aa8f33f873ce75767346374deac520bcbf9f71 GIT binary patch literal 3038 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..7b9251f1239107def898647d2c7b1c6882a14734 GIT binary patch literal 1258 zcmVMY#}Oy<|3>T+$oU`E z+T$PV+SeF+xBH20r?PF^>1^B1h@H+@*Q&zKsqFl*ZMRM;R*)mxR;}F7iHE7n-D`gv zl88HJpRYh@B*~E!WbVzHs-By-K%UP-R{#J2@&Et-|NsC0|Ns9va2rXHoMk$OH#kl; z!GGg7JObq(;Mn*CW9SA<0}HRm8lt0E7a$)75Johc0C}*FL39FA4*u&Q__9P>zy}tN z!8Af_K~#gqz)k_Koq!Z)Si+Tws+0nbfz~GtfE5U90DMaUcNj_+Ao&>tTa2QN35;MY zIm{dj&S3=LwUmOzcL9=}!7yZrwA2E>+i(x74l%|2bD*{i8O2CC087ts2TdlTk_DbH zZ!SQoV#bJ11`z{)wY!5=bpV!}`9&V!m4?8pE({^bGEJncD7Iz6lA~~g5R!tn!c})IaT!t#0K2d+@`BzV|P6c%rKKX z7Jag0fue4F=d*(8K496rEwJSGhrH>EYySExaC%_T%PzYt-@O;Y)GAQg@SV>RCD^d3 z$3Sl>NWh_B9N{txLjjMa-oBr-3B>+g?+2NPkfmY%0buIOA|XH+)Y=f{p54D~5H`Ef z#|{(M;4qFuF%ZY!G5Ebo`$GW|Hf=2!q38!t>WHq?kCElO3{s_vqwghX-_J+q%g zwJ{R*-6Gvh8HdOWrtK6?|9rrxrk=Lclch#grmEaU+8l{pbPFP_8|hagFXL>61|1Wf5a&qeFttxj@*TT}Y-NccUMm0Fn&WBdd zd=lwu#;B2w^fS`=8#ekc(nQ@L(x0g0uh)r{X?}0ojUz458`AiO^Oi_|PpgaFlXByf zI@V3|^Ny^MC`bAgT^FO95$V?S;{dZiCH3;KO@n;m-niRVZj^eKBE6rs-Z71&^r0%z z7~~UorIS2qp<}1{DOuDooD%6+RgsJygGeW%$9rVx{-gxwq)0NCctKN-_7SG>0N*5~ z6-zu5>2=CdY1P4fe~H!aM(O*do&NcN>8I%-m|}cl^bfjK-(N9RZ@j+mzdYI6{W+#z UZ$ursqRYHfRk3$;oN5B@1p0w+{Qv*} literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..e8ad75a44c2c4a8ceca7af7e97e28bad7850adc2 GIT binary patch literal 1930 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..8f725fa64026fb5928f8f8f99c3fe9c4437ffa22 GIT binary patch literal 2430 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b86db66bc4298a5775a6a4fc8e8b3665a65141c5 GIT binary patch literal 4188 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..775cc6147216f1cf10a24e2213b8f7d7f455bd35 GIT binary patch literal 4632 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 O4OjY$q(IoFT!aCnF{N?< literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..c97eb19ea65774e88215de1b8db34e778fc78187 GIT binary patch literal 4888 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-in/plurals.xml b/app/src/main/res/values-in/plurals.xml new file mode 100644 index 0000000..bfbb431 --- /dev/null +++ b/app/src/main/res/values-in/plurals.xml @@ -0,0 +1,6 @@ + + + %d produk favorit + %d produk favorit + + diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml new file mode 100644 index 0000000..09bcc83 --- /dev/null +++ b/app/src/main/res/values-in/strings.xml @@ -0,0 +1,529 @@ + + INA Trading + INA Trading v2.4.0 + Karya Anak Bangsa + + + Beranda + Jelajahi + Produk + Profil + + + Menu + Scan RFID + Keranjang + Notifikasi + Menunggu Scan RFID + Dekatkan tag RFID produk ke bagian belakang perangkat Anda untuk memulai pemindaian. + Batal + Perangkat ini tidak mendukung NFC. + NFC sedang nonaktif. Aktifkan terlebih dahulu. + Tag RFID tidak valid untuk INA Trading. + RFID terdeteksi: %1$s + + + Selamat Datang di INA Trading + Akses penuh ke fitur belanja terbaik untuk UMKM dan produk lokal pilihan. + Masuk atau Daftar + Kenapa Bergabung? + Keuntungan + Pantau pesanan Anda + Pantau status pengiriman pesanan Anda secara real-time dari Sabang sampai Merauke. + Simpan produk favorit + Simpan produk UMKM favorit Anda dan dapatkan notifikasi saat ada promo menarik. + Transaksi aman + Setiap transaksi dilindungi oleh sistem keamanan berlapis untuk kenyamanan berbelanja Anda. + Informasi & Bantuan + + + Member Premium + Pesanan Saya + Lihat Semua + Bayar + Dikirim + Diterima + Ulasan + Pengaturan & Info + Edit\nProfil + Alamat\nPengiriman + Ganti Kata\nSandi + Favorit Saya + Metode Pembayaran + Keluar + Koleksi Tersimpan + Simpan produk yang Anda sukai di satu tempat dan buka kembali kapan saja. + Belum ada produk favorit + Ketuk ikon hati pada produk untuk menyimpannya di sini agar mudah diakses nanti. + Lihat Produk + Pengaturan Personal + Edit Profile + Nama Lengkap + Masukkan nama lengkap + Email + Nomor Telepon + 08123456789 + Keamanan Akun + Gunakan informasi asli untuk memudahkan verifikasi transaksi UMKM Anda. + Simpan Perubahan + Pembaruan profil akan segera diterapkan di seluruh ekosistem INA Trading. + Gagal memuat profil + Ubah Foto Profil + Pilih sumber gambar yang ingin digunakan untuk foto profil Anda. + Pilih dari Galeri + Ambil dari Kamera + Keamanan Akun + Ganti Kata Sandi + Demi keamanan akun Anda, gunakan kombinasi kata sandi yang kuat dan tidak dipakai di layanan lain. + Kata Sandi Lama + Masukkan kata sandi saat ini + Kata Sandi Baru + Min. 8 karakter, kombinasi huruf dan angka + Konfirmasi Kata Sandi Baru + Ulangi kata sandi baru Anda + Lemah + Cukup + Baik + Kuat + Tips Keamanan + Hindari menggunakan nama, tanggal lahir, atau informasi pribadi yang mudah ditebak untuk kata sandi Anda. + Simpan Perubahan + Kata sandi berhasil diperbarui. + Kata sandi lama wajib diisi. + Kata sandi baru wajib diisi. + Kata sandi baru minimal 8 karakter. + Kata sandi baru harus berbeda dari kata sandi lama. + Konfirmasi kata sandi tidak cocok. + Tujuan Pengiriman + Kelola Hub\nPengiriman Anda + Utama + Rumah + Kantor + Alamat %1$d + Detail penerima akan segera tersedia. + Detail telepon akan segera tersedia. + Zona Cakupan Aktif + "Mengantarkan karya terbaik Nusantara langsung ke tujuan Anda dengan pelacakan prioritas." + Tambah Alamat Baru + Gagal memuat alamat + Belum ada alamat pengiriman + Simpan tujuan pengiriman utama Anda di sini agar checkout lebih cepat dan pengiriman lebih rapi. + Lokasi Baru + Tambah Alamat + Lengkapi informasi pengiriman Anda secara presisi agar proses kirim produk artisan Indonesia berjalan lancar. + Label Alamat + Rumah + Kantor + Gudang + Lainnya + Label Kustom + Masukkan nama label + Nama Penerima + Nama lengkap + Nomor Telepon + 81234567890 + Negara + Indonesia + Indonesia + Lainnya + Nama Negara + Masukkan nama negara + Provinsi + Masukkan provinsi + Kota / Kabupaten + Pilih kota + Kode Pos + 5 digit kode + Detail Alamat Lengkap + Nama jalan, nomor bangunan, unit, dan catatan pengiriman lainnya + Tandai di Peta + Jadikan Alamat Utama + Alamat default untuk checkout berikutnya + Simpan Alamat + Memuat provinsi... + Memuat kota... + Pilih provinsi terlebih dahulu + Gunakan lokasi saat ini: %1$.5f, %2$.5f + Mengambil lokasi saat ini... + Ketuk area peta untuk memakai lokasi perangkat saat ini. + Izin lokasi diperlukan untuk mengisi pin point otomatis. + Izin lokasi dibutuhkan untuk memakai posisi saat ini. + Layanan lokasi tidak tersedia di perangkat ini. + Aktifkan lokasi perangkat terlebih dahulu. + Lokasi saat ini belum berhasil didapatkan. + Pengaturan Akun + Edit Alamat + Perbarui detail pengiriman Anda untuk memastikan paket sampai dengan aman ke tangan yang tepat. + Informasi Penerima + Detail Lokasi + Koordinat: %1$.4f, %2$.4f + Simpan Perubahan + Hapus Alamat + Inspirasi Produk\nTerbaik + Kembali + Buat Koleksi Baru + Buat + Ubah Nama Koleksi + Edit + Simpan + Hapus + Hapus \"%1$s\" dari koleksi Anda? + Opsi lainnya + DEFAULT + Nama koleksi + Buat koleksi pertama untuk mengelompokkan produk favorit berdasarkan tema, ruangan, atau rencana belanja. + Muat Ulang Koleksi + Koleksi Terpilih + Ringkasan Grup + Total Item + Detail Produk + Belum ada produk di koleksi ini + Simpan produk ke koleksi ini untuk dilihat kembali nanti. + Hapus dari favorit + Batal + + + Tentang INA Trading + Pusat Bantuan + Kebijakan Privasi + Syarat & Ketentuan + + + Registrasi + Daftar Akun + Bergabunglah dengan ekosistem perdagangan UMKM Indonesia. + Nama Lengkap + Nama Lengkap + Nomor Handphone + +62 8xx xxxx xxxx + Kata Sandi + Konfirmasi Kata Sandi + Konfirmasi Kata Sandi + Daftar Sekarang + Atau daftar dengan Google + Sudah punya akun? Masuk di sini + Dengan mendaftar, Anda menyetujui Syarat & Ketentuan serta Kebijakan Privasi INA Trading untuk mendukung pertumbuhan UMKM Nasional. + Kata sandi tidak cocok + Kata sandi minimal 8 karakter + Format email tidak valid + Nama lengkap wajib diisi + Nomor handphone wajib diisi + + + Selamat Datang Kembali + Eksplorasi\nProduk Unggulan. + Alamat Email + nama@email.com + Kata Sandi + •••••••• + Lupa Password? + Masuk Sekarang + Atau masuk dengan + Google + Belum punya akun? Daftar di sini + Keamanan Terjamin oleh INA Trading + Tampilkan kata sandi + Sembunyikan kata sandi + + + Lupa Password + Masukkan email terdaftar dan kami akan mengirimkan tautan reset. + Kirim Tautan Reset + Kembali ke Login + + + © 2024 INA Trading. Editorial Excellence for Indonesian MSMEs. + Bantuan + Syarat & Ketentuan + + + Tentang Visi Kami + Memberdayakan + Pengrajin Indonesia + ke Panggung Global. + INA Trading lebih dari sekadar platform; ini adalah jembatan yang menghubungkan UMKM lokal ke pasar internasional melalui integrasi yang aman dan keunggulan logistik premium. + Transaksi Aman + Enkripsi end-to-end dan gateway pembayaran terverifikasi memastikan setiap perdagangan terlindungi oleh standar keamanan internasional. + Integrasi Digital + Infrastruktur cloud-native untuk manajemen inventaris dan pesanan yang mulus. + Jangkauan Global + Memperluas warisan Indonesia ke lebih dari 40+ negara di Eropa dan Amerika Utara. + "Menjembatani kerajinan tradisional dengan kecepatan digital." + Misi Kami + Kami percaya UMKM Indonesia adalah tulang punggung perekonomian kita. Misi kami adalah menghilangkan kompleksitas ekspor, memberikan pengrajin lokal alat, modal, dan jaringan yang mereka butuhkan untuk bersaing di skala global sambil mempertahankan identitas budaya unik mereka. + Pelajari Lebih Lanjut + UMKM Aktif + Pengiriman Global + Bermitra dengan kami + Siap membawa bisnis kamu ke level global? + Bergabunglah dengan ribuan bisnis Indonesia yang sudah mengekspor produk berkualitas tinggi mereka dengan INA Trading. + Daftar sebagai Seller + Hubungi Support + + + Dokumen Hukum + Syarat & + Ketentuan + Selamat datang di INA Trading. Ketentuan ini mengatur penggunaan marketplace kami dan mendefinisikan standar profesional ekosistem pengrajin modern kami. + Perjanjian Pengguna + Dengan mengakses atau menggunakan marketplace INA Trading, kamu setuju untuk terikat dengan Syarat dan Ketentuan ini. Platform kami dirancang untuk memberdayakan UMKM Indonesia melalui lingkungan digital yang aman dan transparan. + Pembuatan akun memerlukan dokumentasi bisnis yang autentik untuk penjual dan identitas terverifikasi untuk pelanggan demi menjaga integritas jaringan pengrajin kami. + Aturan Transaksi + Semua transaksi yang diproses melalui INA Trading bersifat final setelah pemenuhan. Pembayaran ditahan dalam escrow yang aman untuk memastikan kualitas pengiriman sebelum pembayaran ke merchant. + Komisi tetap 2,5% untuk pemeliharaan platform. + Jendela sengketa 24 jam setelah pengiriman. + Tanggung Jawab & Batasan + INA Trading bertindak sebagai fasilitator perdagangan antara UMKM dan pembeli. Meskipun kami memberikan keamanan dan vetting tingkat tinggi, kami tidak bertanggung jawab atas kegagalan logistik langsung merchant-ke-pelanggan di luar kebijakan perlindungan yang ditentukan. + Pengguna bertanggung jawab untuk menjaga kerahasiaan kredensial mereka dan semua aktivitas yang terjadi di bawah identitas digital unik mereka. + Ada pertanyaan? + Hubungi tim kepatuhan hukum kami untuk klarifikasi. + Hubungi Support + TERAKHIR DIPERBARUI: 24 OKTOBER 2023 • VERSI 2.4.0 + + + Registrasi Berhasil! + Akun kamu telah berhasil dibuat.\nSilakan login menggunakan email dan password kamu. + Login Sekarang + + + Privasi + Privasi Anda Adalah Prioritas Kami + INA Trading berkomitmen untuk melindungi data pribadi Anda dan transparan tentang cara kami mengumpulkan serta menggunakannya. + Terakhir diperbarui: 24 Oktober 2023 + Data Apa yang Kami Kumpulkan + Kami hanya mengumpulkan data yang diperlukan untuk menyediakan layanan marketplace kami, termasuk detail akun, riwayat transaksi, dan informasi pengiriman. + Informasi akun + nama, email, dan nomor telepon yang digunakan untuk autentikasi dan komunikasi. + Data transaksi + riwayat pesanan dan detail pembayaran yang diproses melalui sistem escrow aman kami. + Infrastruktur Keamanan + Data Anda dilindungi dengan enkripsi end-to-end dan disimpan sesuai dengan standar perlindungan data internasional. + Enkripsi AES-256 • Sesuai ISO 27001 + Berbagi Data ke Pihak Ketiga + Kami hanya berbagi data Anda dengan mitra terpercaya yang diperlukan untuk memenuhi pesanan Anda. Kami tidak pernah menjual data pribadi Anda. + Logistik + Pembayaran + Kepatuhan + Hak Privasi Anda + Anda berhak mengakses, mengoreksi, atau menghapus data pribadi Anda kapan saja. Hubungi kami atau kelola preferensi langsung di aplikasi. + Kelola Preferensi Privasi + Ada pertanyaan? + Tim privasi kami siap menjawab pertanyaan tentang cara kami menangani data Anda. + Email Tim Privasi + Baca Syarat & Ketentuan Lengkap + Support Center + Ada yang bisa kami bantu? + Cari bantuan, pengiriman, pengembalian dana, atau pembayaran + Support Categories + Orders + Payment + Shipping + Account + Butuh Bantuan Lebih? + Tim dukungan kami siap membantu sepanjang waktu untuk kendala pesanan, pembayaran, dan akun Anda. + WhatsApp Support + Email Support + Kategori Utama + Pesanan & Pengiriman + Lacak pesanan, cek proses seller, atau tinjau riwayat transaksi aktif Anda. + Pembayaran + Metode pembayaran, transaksi gagal, waktu settlement, dan pengembalian dana. + Pengiriman + Status delivery, estimasi kirim, masalah alamat, dan koordinasi kurir. + Akun & Keamanan + Reset kata sandi, verifikasi, sesi login, dan pengaturan privasi akun. + Panduan Merchant + Manajemen katalog, kesiapan inventaris, dan praktik terbaik untuk seller. + Pertanyaan Sering Diajukan + Bagaimana cara melacak pesanan? + Buka riwayat pesanan Anda lalu pilih transaksi aktif. Halaman detail pesanan akan menampilkan status proses seller dan pembaruan pengiriman jika sudah tersedia. + Metode pembayaran apa saja yang tersedia? + Metode yang tersedia bergantung pada merchant dan alur transaksi aktif, namun umumnya mencakup transfer bank dan kanal pembayaran digital yang didukung. + Berapa lama proses pengembalian dana? + Durasi refund bergantung pada metode pembayaran dan validasi merchant, namun biasanya memerlukan beberapa hari kerja setelah permintaan refund disetujui. + Bagaimana cara mengubah alamat pengiriman? + Untuk pesanan yang belum masuk tahap persiapan kirim, Anda bisa segera menghubungi support atau merchant untuk meminta penyesuaian alamat. + Masih butuh jawaban yang lebih spesifik? + Jelajahi pusat panduan lengkap atau eskalasi kendala Anda langsung ke tim support. + Pusat Panduan Lengkap + © 2024 INA Trading. Solusi Digital untuk UMKM Indonesia. + + + Segera Hadir + + + Kurasi Heritage + Jelajahi + Nusantara. + Temukan destinasi, merchant, dan pengalaman pilihan dari berbagai kota di Indonesia. + %1$d dimuat dari %2$d lokasi + Cari pengalaman... + Filter + Pilihan Premium + Sorotan Utama + Unggulan + Rekomendasi Terdekat + Daftar berikut akan terus termuat otomatis saat Anda scroll ke bawah. + Memuat lokasi + Menyiapkan daftar eksplorasi pilihan untuk Anda. + Gagal memuat lokasi + Coba Lagi + Lokasi tidak ditemukan + Coba ubah kata kunci pencarian atau muat ulang halaman untuk melihat lokasi lain. + Deskripsi lokasi belum tersedia. + Lokasi + Lokasi terverifikasi + Aksi tas belanja + Warisan Heritage Indonesia + Eksplor Koleksi + Kontak + Status + Buka setiap hari + Tidak tersedia + Merchant ID + Kunjungi Lokasi + Buka di Maps + Signature Prints + Galeri %1$d + Data lokasi belum tersedia. Buka kembali dari halaman Explore. + + + Detail Produk + Total Harga + Tambah ke Keranjang + Beli Sekarang + Produk + Penjual + Stok + %1$d tersedia + Lokasi gudang tidak tersedia + Merek + Berat + Dimensi + SKU + Garansi + Kapasitas Baterai + Kategori + Asal Wilayah + Asal: %1$s + Nama Model + Detail Produk + Spesifikasi Lengkap + Deskripsi produk belum tersedia. + Produk memenuhi syarat untuk pasar ekspor. + Produk baru di katalog saat ini. + Produk pre-order dengan waktu persiapan %1$d hari. + Produk tersedia sebagai pre-order. + Alamat gudang: %1$s + Kata Kunci + Gagal memuat produk + Muat Ulang + Memuat produk + BARU + EKSPOR + PREORDER + Peringatan Keamanan + Produk berhasil ditambahkan ke keranjang + Ringkasan Pesanan + Keranjang Belanja + Gagal memuat keranjang + Coba Lagi + Keranjang Anda masih kosong + Produk yang Anda tambahkan dari halaman detail akan muncul di sini dan dikelompokkan per seller. + Lihat Produk + Masuk untuk melihat keranjang + Masuk terlebih dahulu agar produk pilihan Anda tersimpan dan bisa ditinjau sebelum checkout. + Merchant + Merchant Terverifikasi + Produk + Stok tersedia + Hapus item + Kurangi jumlah + Tambah jumlah + Total Pembayaran + Checkout + Checkout siap untuk tahap berikutnya + Update jumlah dan aksi hapus akan diaktifkan setelah flow cart yang memperhitungkan stok selesai disambungkan. + + + Apa itu + INA Trading? + Ekosistem khusus yang dirancang untuk menjawab kompleksitas perdagangan lintas negara bagi bisnis lokal Indonesia. + Platform Hybrid B2B & D2C + Kami menghilangkan peran perantara dengan strategi dua kanal. Baik untuk penjualan grosir dalam jumlah besar maupun produk spesial satuan, platform ini tumbuh bersama kebutuhan bisnis Anda. + Dashboard Logistik + RFID + BLOCKCHAIN + Memastikan keaslian produk Indonesia dengan RFID & Blockchain untuk kepatuhan perdagangan Eropa, didukung oleh: PERURI Digital Security, PERURI Smart Card, PUNDI Tech & EQBR + MERCHANT TERVERIFIKASI + Jangkauan Global + Akses instan ke pembeli internasional tanpa setup lokal yang rumit. Kami menangani pintu masuk pasar untuk Anda. + Integrasi Digital + Sinkronisasi inventaris yang mulus di berbagai marketplace dengan pembayaran lokal dan pelacakan logistik. + Transaksi Aman + Sistem escrow berlapis dan verifikasi blockchain untuk memastikan keamanan pembayaran bagi penjual dan pembeli. + Kerajinan + Antarmuka Teknologi + Siapa yang menggunakan + UMKM + Agregator + Eksportir + Pemilik Usaha + STUDI KASUS + Contoh Nyata + Pendopo Indonesia + Rumah bagi UMKM lokal, Pendopo telah berkolaborasi dengan lebih dari 300 mitra. Kami mengkurasi lebih dari 12.000 produk dalam empat kategori: Kerajinan, Fesyen, Kuliner, serta Kecantikan & Kebugaran. + Pendopo Indonesia + Startup Hub + Pusat kolaborasi, inovasi, dan akselerasi bagi startup, UKM, dan komunitas di seluruh Indonesia + Startup Hub + Berita Terkini + Lihat Semua + Belum ada berita tersedia. + + + Gagal memuat pembaruan + Belum ada artikel + Pembaruan editorial terbaru akan muncul di sini setelah newsroom menerbitkan cerita baru. + NEWSROOM + Berita & Wawasan + Pembaruan editorial, kisah merchant, dan sinyal perdagangan dari ekosistem INA Trading. + Editorial + Sinyal Dagang + Kisah Merchant + Pembaruan Terbaru + Buka artikel lengkap untuk membaca pembaruan terbaru dari INA Trading. + Ketuk untuk membuka cerita lengkap. + Baca feature story terbaru dari newsroom. + Lihat pembaruan + Baca detail lengkap pada artikel berita ini. + Pembaruan Terbaru + Lihat detail + PELIPUT + + + Jelajahi — %1$s + Memuat produk + Sedang menyiapkan katalog UMKM terbaik untuk Anda. + Katalog tidak tersedia + Produk belum ditemukan + Coba ubah kategori atau kata kunci pencarian Anda. + EDISI TERBATAS + Karya Lokal,\nKualitas Global. + Jelajahi katalog UMKM terkurasi dengan pengiriman lintas pasar dan kualitas yang siap tampil di tingkat global. + Dimuat + Katalog + Cari produk UMKM... + Filter + Harga + Marketplace + Stok %1$d + Habis + Umum + Katalog + Harga hubungi kami + Simpan ke Favorit + Pilih koleksi untuk produk ini, atau buat koleksi baru terlebih dahulu. + %1$d produk + Produk berhasil ditambahkan ke favorit + Produk berhasil dihapus dari favorit + diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..5e54687 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c8524cd --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/font_certs.xml b/app/src/main/res/values/font_certs.xml new file mode 100644 index 0000000..3d67572 --- /dev/null +++ b/app/src/main/res/values/font_certs.xml @@ -0,0 +1,19 @@ + + + + @array/com_google_android_gms_fonts_certs_dev + @array/com_google_android_gms_fonts_certs_prod + + + + + MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UEChMKR29vZ2xlIEluYzEVMBMGA1UECxMMQW5kcm9pZCBUZWFtMRwwGgYDVQQDExNBbmRyb2lkIERlYnVnIFJvb3QwHhcNMTMwMjA2MTcwMzE2WhcNMjMwMjA0MTcwMzE2WjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xEzARBgNVBAoTCkdvb2dsZSBJbmMxFTATBgNVBAsTDEFuZHJvaWQgVGVhbTEcMBoGA1UEAxMTQW5kcm9pZCBEZWJ1ZyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1LGGJGlE7hcBXMNe7D7OFKjU3kFriZNmcWnBrPBjjNQMoB2DPIVdSqEY + + + + + + MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJsXYcGRXHuntAJhNo3QAQBO2c6PoW8xZxkJnKWDYCCBNGGLTgH3RRSekNMNDKHlLR8ZFwFKXkHQ09ZJRqMbNgcFIKjyH6EhJCRVRFGcBcO3IRtR0xb6T8IsBJCPBTjx7yzreFlgVTbXJBvlNNrQQ2HBwXOYhpTRxKpOCaqUGbzNuYcPHzNl7c0z5fNSOXMiMwBJ+SWScBWDHQfkBHOjHYWPkzLuA7a68ZhGwjM/CALhMGh2PZ4EhFQM5EbMDKFHHU61MSsxdPbYZ4F3NM0MAAIB + + + diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/plurals.xml b/app/src/main/res/values/plurals.xml new file mode 100644 index 0000000..561989a --- /dev/null +++ b/app/src/main/res/values/plurals.xml @@ -0,0 +1,6 @@ + + + %d favorite product + %d favorite products + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..44d7ee6 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,529 @@ + + INA Trading + INA Trading v2.4.0 + Karya Anak Bangsa + + + Home + Explore + Products + Profile + + + Menu + Scan RFID + Cart + Notifications + Waiting for RFID Scan + Bring the product RFID tag close to the back of your device to start scanning. + Cancel + This device does not support NFC. + NFC is disabled. Please enable it first. + RFID tag is not valid for INA Trading. + RFID detected: %1$s + + + Welcome to INA Trading + Get full access to the best shopping features for MSMEs and selected local products. + Login or Register + Why Join? + Benefits + Track your orders + Monitor your shipment status in real-time from coast to coast. + Save favorite products + Save your favorite MSME products and get notified of exciting promotions. + Secure transactions + Every transaction is protected by a multi-layered security system for your peace of mind. + Information & Help + + + Premium Member + My Orders + View All + To Pay + To Ship + To Receive + Review + Settings & Info + Edit\nProfile + Shipping\nAddresses + Change\nPassword + My Favorites + Payment Methods + Logout + Saved Collection + Keep the products you love in one place and revisit them anytime. + No favorite products yet + Tap the heart icon on any product to save it here for quick access later. + Browse Products + Personal Settings + Edit Profile + Full Name + Enter full name + Email + Phone Number + 08123456789 + Account Security + Use accurate information to simplify verification across your INA Trading transactions. + Save Changes + Profile updates will be reflected across the INA Trading ecosystem. + Unable to load profile + Change Profile Photo + Choose the image source you want to use for your profile photo. + Choose from Gallery + Take Photo + Account Security + Change Password + For your account security, use a strong password combination that you do not reuse on other services. + Current Password + Enter your current password + New Password + Min. 8 characters, mix letters and numbers + Confirm New Password + Re-enter your new password + Weak + Fair + Good + Strong + Security Tip + Avoid using names, birth dates, or other personal details that are easy to guess. + Save Changes + Password updated successfully. + Current password is required. + New password is required. + New password must be at least 8 characters. + New password must be different from the current password. + Password confirmation does not match. + Your Destinations + Manage Your\nDelivery Hubs + Primary + Home + Office + Address %1$d + Recipient details will be available soon. + Phone details will be available soon. + Live Coverage Zone + "Delivering the best of Nusantara\'s crafts directly to your doorstep with priority tracking." + Add New Address + Unable to load addresses + No shipping addresses yet + Save your primary delivery destinations here to speed up checkout and keep shipments organized. + New Location + Add Address + Provide your precise shipping information to ensure a seamless delivery experience for your Indonesian artisanal goods. + Label Address + Home + Office + Warehouse + Other + Custom Label + Enter label name + Recipient Name + Full name + Phone Number + 81234567890 + Country + Indonesia + Indonesia + Other + Country Name + Enter country name + Province + Enter province + City / District + Select city + Postal Code + 5-digit code + Full Address Details + Street name, building number, unit number, and other delivery notes + Pin Point on Map + Set as Primary Address + Default address for all future checkouts + Save Address + Loading provinces... + Loading cities... + Select province first + Use current location: %1$.5f, %2$.5f + Getting current location... + Tap the map teaser to use your current location. + Location permission is needed to set the pin point automatically. + Location permission is required to use the current position. + Location service is not available on this device. + Enable device location first. + Current location could not be determined yet. + Account Settings + Edit Address + Update your delivery details to ensure every package arrives safely at the right destination. + Recipient Information + Location Details + Coordinates: %1$.4f, %2$.4f + Save Changes + Delete Address + Best Product\nInspiration + Back + Create New Collection + Create + Edit Collection Name + Edit + Save + Delete + Delete \"%1$s\" from your collections? + More options + DEFAULT + Collection name + Create your first collection to organize favorite products by theme, room, or shopping plan. + Refresh Collections + Selected Collection + Group Summary + Total Items + Product Detail + No products in this collection yet + Save products to this collection to review them later. + Remove from favorites + Cancel + + + About INA Trading + Help Center + Privacy Policy + Terms & Conditions + + + Registration + Create Account + Join the Indonesian MSME trading ecosystem. + Full Name + Full Name + Mobile Phone + +62 8xx xxxx xxxx + Password + Confirm Password + Confirm Password + Register Now + Or register with Google + Already have an account? Login here + By registering, you agree to the Terms & Conditions and Privacy Policy of INA Trading to support National MSME growth. + Passwords do not match + Password must be at least 8 characters + Invalid email format + Full name is required + Phone number is required + + + Welcome Back + Explore\nFeatured Products. + Email Address + name@email.com + Password + •••••••• + Forgot Password? + Login Now + Or login with + Google + Don\'t have an account? Register here + Secured by INA Trading + Show password + Hide password + + + Forgot Password + Enter your registered email and we\'ll send a reset link. + Send Reset Link + Back to Login + + + © 2024 INA Trading. Editorial Excellence for Indonesian MSMEs. + Help + Terms & Conditions + + + About Our Vision + Empowering + Indonesian Artisans + for the Global Stage. + INA Trading is more than a platform; it\'s a bridge connecting local MSMEs (UMKM) to international markets through secure integration and premium logistical excellence. + Secure Transactions + End-to-end encryption and verified payment gateways ensure that every trade is protected by international standards of security. + Digital Integration + Cloud-native infrastructure for seamless inventory and order management. + Global Reach + Expanding Indonesian heritage to over 40+ countries across Europe and North America. + "Bridging traditional craftsmanship with digital speed." + Our Mission + We believe that Indonesian MSMEs are the backbone of our economy. Our mission is to eliminate the complexities of export, providing local artisans with the tools, capital, and network they need to compete on a global scale while maintaining their unique cultural identity. + Learn More + Active MSMEs + Global Shipments + Partner with us + Ready to take your business global? + Join thousands of Indonesian businesses already exporting their high-quality products with INA Trading. + Register as Seller + Contact Support + + + Legal Document + Terms & + Conditions + Welcome to INA Trading. These terms govern your use of our marketplace and define the professional standards of our modern artisan ecosystem. + User Agreements + By accessing or using the INA Trading marketplace, you agree to be bound by these Terms and Conditions. Our platform is designed to empower Indonesian MSMEs through a secure and transparent digital environment. + Account creation requires authentic business documentation for vendors and verified identity for customers to maintain the integrity of our artisanal network. + Transaction Rules + All transactions processed through INA Trading are final upon fulfillment. Payments are held in secure escrow to ensure quality delivery before merchant payout. + Fixed commission of 2.5% for platform maintenance. + 24-hour dispute window post-delivery. + Liability & Limits + INA Trading acts as a facilitator for trade between MSMEs and buyers. While we provide high-level security and vetting, we are not liable for direct merchant-to-customer logistics failures beyond our specified protection policies. + Users are responsible for maintaining the confidentiality of their credentials and all activities occurring under their unique digital identity. + Have questions? + Reach out to our legal compliance team for clarifications. + Contact Support + LAST UPDATED: OCTOBER 24, 2023 • VERSION 2.4.0 + + + Registration Successful! + Your account has been created.\nYou can now login with your email and password. + Login Now + + + Privacy + Your Privacy Matters to Us + INA Trading is committed to protecting your personal data and being transparent about how we collect and use it. + Last updated: October 24, 2023 + What Data We Collect + We collect only the data necessary to provide our marketplace services, including account details, transaction history, and shipping information. + Account information + name, email, and phone number used for authentication and communications. + Transaction data + order history and payment details processed through our secure escrow system. + Security Infrastructure + Your data is protected with end-to-end encryption and stored in compliance with international data protection standards. + AES-256 Encryption • ISO 27001 Compliant + Third-Party Sharing + We share your data only with trusted partners necessary to fulfill your orders. We never sell your personal data. + Logistics + Payment + Compliance + Your Privacy Rights + You have the right to access, correct, or delete your personal data at any time. Contact us or manage your preferences directly in the app. + Manage Privacy Preferences + Have questions? + Our privacy team is available to answer any questions about how we handle your data. + Email Privacy Team + Read Full Terms & Conditions + Support Center + How can we help? + Search help topics, shipping, refunds, or payments + Support Categories + Orders + Payment + Shipping + Account + Need More Help? + Our support team is ready to assist you around the clock for urgent order, payment, and account issues. + WhatsApp Support + Email Support + Main Categories + Orders & Delivery + Track orders, check seller processing, or review active order history. + Payments + Payment methods, failed transactions, settlement timing, and refunds. + Shipping + Delivery status, shipping windows, address issues, and courier coordination. + Account & Security + Password reset, verification, login sessions, and account privacy settings. + Merchant Guide + Catalog management, inventory readiness, and best practices for sellers. + Frequently Asked Questions + How do I track my order? + Open your order history and select the active transaction. The order detail page will show seller processing status and shipment updates when available. + What payment methods are available? + Available methods depend on the merchant and active transaction flow, but commonly include bank transfer and other supported digital payment channels. + How long does the refund process take? + Refund timing depends on the payment method and merchant validation, but we recommend allowing several business days after the refund request is approved. + How can I change my shipping address? + For orders that have not entered shipping preparation, you can contact support or the merchant as soon as possible to request an address adjustment. + Still need a clearer answer? + Browse the full guidance hub or escalate your issue directly to the support team. + Full Guide Center + © 2024 INA Trading. Digital solutions for Indonesian MSMEs. + + + Coming Soon + + + Curated Heritage + Explore + Nusantara. + Temukan destinasi, merchant, dan pengalaman pilihan dari berbagai kota di Indonesia. + %1$d loaded of %2$d locations + Search experiences... + Filter + Premium Selection + Featured Highlights + Featured + Recommended Nearby + Daftar berikut akan terus memuat otomatis saat Anda scroll ke bawah. + Loading locations + Menyiapkan daftar eksplorasi pilihan untuk Anda. + Failed to load locations + Retry + No locations found + Coba ubah kata kunci pencarian atau muat ulang halaman untuk melihat lokasi lain. + Deskripsi lokasi belum tersedia. + Location + Verified location + Explore shopping bag + The Legacy of Indonesian Heritage + Explore Collection + Contact + Status + Open Daily + Unavailable + Merchant ID + Visit The Atelier + Open in Maps + Signature Prints + Gallery Item %1$d + Data lokasi belum tersedia. Buka kembali dari halaman Explore. + + + Product Detail + Total Price + Add to Cart + Buy Now + Product + Seller + Stock + %1$d available + Warehouse location unavailable + Brand + Weight + Dimensions + SKU + Warranty + Battery Capacity + Category + Region of Origin + Origin: %1$s + Model Name + Product Details + Detailed Specifications + No product description available. + Eligible for export market. + New item in the current catalog. + Pre-order item with %1$d days preparation. + Available as pre-order item. + Warehouse address: %1$s + Keywords + Unable to load product + Retry + Loading product + NEW + EXPORT + PREORDER + Safety Warning + Product added to cart + Order Summary + Shopping Cart + Failed to load cart + Retry + Your cart is still empty + Products you add from the detail page will appear here and be grouped by seller. + Browse Products + Login to view your cart + Sign in first so your selected products can be saved and reviewed before checkout. + Merchant + Verified Merchant + Product + Available stock + Remove item + Decrease quantity + Increase quantity + Total Payment + Checkout + Checkout is ready for the next phase + Quantity update and delete action will be activated after the stock-aware cart flow is connected. + + + What is + INA Trading? + A specialized ecosystem designed to solve the complexities of cross-border commerce for local Indonesian businesses. + Hybrid B2B & D2C Platform + We eliminate the middleman by providing a dual-channel strategy. Whether you are selling bulk containers to wholesalers or single specialty items, our platform scales with your needs. + Logistics Dashboard + RFID + BLOCKCHAIN + Ensuring Indonesian Product Authenticity with RFID & Blockchain for European Trade Compliance, powered by : PERURI Digital Security, PERURI Smart Card, PUNDI Tech & EQBR + VERIFIED MERCHANTS + Global Reach + Instant access to international buyers without complex localized setups. We handle the market entry for you. + Digital Integration + Seamless inventory sync across multiple marketplaces with localized payment gateways and logistics tracking. + Secure Transaction + Multi-layered escrow systems and blockchain verification ensuring payment security for both vendors and buyers. + Craftsmanship + Tech Interface + Who uses + MSMEs + Aggregators + Exporters + Business Owners + CASE STUDIES + Real World Examples + Pendopo Indonesia + A home for local MSMEs, Pendopo has collaborated with over 300 partners. We curate more than 12,000 products across four categories: Craft, Fashion, Culinary, and Beauty & Wellness. + Pendopo Indonesia + Startup Hub + Collaborative, innovative, and acceleration hub for startups, SMEs, and communities throughout Indonesia + Startup Hub + Latest News + View All + No news available yet. + + + Unable to load updates + No articles yet + Latest editorial updates will appear here once the newsroom publishes new stories. + NEWSROOM + News & Insights + Editorial updates, merchant stories, and trade signals from the INA Trading ecosystem. + Editorial + Trade Signals + Merchant Stories + Latest Updates + Open the full article to read the latest update from INA Trading. + Tap to open the full story. + Read the latest feature story from the newsroom. + Explore the update + Read the full details in the news article. + Latest Update + View details + REPORTER + + + Explore — %1$s + Loading products + Preparing the best MSME catalog for you. + Catalog unavailable + No products found + Try changing your category or search keyword. + LIMITED EDITION + Local Creations,\nGlobal Quality. + Explore a curated MSME catalog with cross-market shipping and quality ready for the global stage. + Loaded + Catalog + Search MSME products... + Filter + Price + Marketplace + Stock %1$d + Out of stock + General + Catalog + Contact us for price + Save to Favorite + Choose a collection for this product, or create a new one first. + %1$d products + Product added to favorites + Product removed from favorites + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..731066c --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + +