Google's Android maven2 artifacts (AGP, androidx, Kotlin) 404 from Iran like
pub.dev does. Route Gradle resolution through the reachable Aliyun mirrors:
- android/settings.gradle.kts (pluginManagement) + build.gradle.kts (allprojects)
now list maven.aliyun.com/repository/{gradle-plugin,google,central} before the
originals (kept as fallback).
- BUILD_IRAN.md documents the full setup incl. the machine-local GRADLE_USER_HOME
init.gradle needed for Flutter's included flutter_tools/gradle build.
Verified: dependency resolution now succeeds via the mirrors (AGP + kotlin-compiler
download from Aliyun). The APK build itself is currently blocked only by low disk
space on this machine, not configuration.
Connectivity fixed: pub.dev/googleapis are 403 under sanctions, so PUB_HOSTED_URL
+ FLUTTER_STORAGE_BASE_URL now point at the reachable Flutter mirror
(pub.flutter-io.cn / storage.flutter-io.cn) — set persistently on the build machine.
- `flutter create --platforms=android,web --org ir.meezi` generated android/ + web/
(#33). `flutter build web` succeeds; `flutter analyze` errors all cleared.
- pubspec: intl ^0.19.0 → ^0.20.2 (SDK pins 0.20.2 via flutter_localizations).
- Fixed 3 pre-existing compile errors (app had never been built):
* attendance: JalaliFormatter.yyyyMMdd() removed → build the date from year/month/day.
* qr_scan: dropped a call to a non-existent CartNotifier.setTable (table context is
already set via tableContextProvider just above).
* widget_test: default counter test referenced MyApp → minimal MeeziApp smoke test.
- discover_screen: drop redundant foundation import; value → initialValue (non-deprecated).
Verified: flutter build web ✓. (Android packaging still needs a Gradle/Maven mirror.)
Enhances the café detail screen toward web-Koja parity. Parsing verified against
the real backend DTOs (CafePublicDto / WorkingHoursPublicDto), still unbuilt (pub blocked).
- Cover image hero (coverImageUrl), open/closed badge (isOpenNow).
- Photo gallery (galleryUrls) horizontal strip.
- Working hours rendered from the day-keyed WorkingHoursPublicDto ({sat..fri} of
{isOpen,open,close}), Sat→Fri with Persian day labels.
Brings the Flutter discover screen toward web-Koja parity. Unverified (pub blocked).
- DiscoverFilters is now a copyWith class so the many optional filters set safely.
- Adds an "open now" chip, rating chips, sort, and a taxonomy-driven filter sheet
(themes/vibes/occasions/space-features as multi-select chips + price tier),
feeding the rich discover() query. Active-filter badge + pull-to-refresh.
- Café cards show open/closed status.
Head-start on the Koja-Flutter build while pub access is unavailable (pub.dev 403
under sanctions). NOT yet built/verified — needs `flutter create` + `pub get` once
package access is restored.
- core/theme/app_theme.dart: centralized MeeziTheme (brand green #0F6E56, Material 3,
filled/outlined buttons, inputs), wired into main.dart (was a brown seed, no theme).
- public_api.dart: discover() gains the full filter set (themes/vibes/occasions/
spaceFeatures/noise/priceTier/size/openNow) + discoverNearby/nlpParse/discoverTaxonomy,
matching the web Koja's backend surface. Follows the existing dio pattern.