FLUTTER := flutter

.PHONY: help run-dev run-staging build-staging build-prod build-apk-dev clean gen gen-i18n

help:
	@echo "Flutter Flavor 构建命令："
	@echo ""
	@echo "  make run-dev        开发版调试运行（热重载，连 dev 服务器）"
	@echo "  make run-staging    测试版 Release 运行（连 test 服务器）"
	@echo "  make build-staging  打测试版 APK（给测试团队安装）"
	@echo "  make build-prod     打正式版 AAB（上 Play Store / 内部分发）"
	@echo "  make build-apk-dev  打开发版 APK（快速真机验证）"
	@echo "  make clean          清除构建缓存"
	@echo "  make gen            代码生成（build_runner）"
	@echo "  make gen-i18n       生成 i18n ARB → Dart"
	@echo ""
	@echo "注意：build-prod 需先复制 dart-defines/prod.json.template 为 dart-defines/prod.json 并填入真实密钥"

run-dev:
	$(FLUTTER) run --flavor dev \
		--dart-define-from-file=dart-defines/dev.json

run-staging:
	$(FLUTTER) run --flavor staging --release \
		--dart-define-from-file=dart-defines/staging.json

build-apk-dev:
	$(FLUTTER) build apk --flavor dev --debug \
		--dart-define-from-file=dart-defines/dev.json

build-staging:
	$(FLUTTER) build apk --flavor staging --release \
		--dart-define-from-file=dart-defines/staging.json
	@echo "APK 路径：build/app/outputs/flutter-apk/app-staging-release.apk"

build-prod:
	@test -f dart-defines/prod.json || \
		(echo "ERROR: dart-defines/prod.json 不存在！请从 prod.json.template 复制并填入真实密钥。" && exit 1)
	$(FLUTTER) build appbundle --flavor prod --release \
		--dart-define-from-file=dart-defines/prod.json
	@echo "AAB 路径：build/app/outputs/bundle/prodRelease/app-prod-release.aab"

clean:
	$(FLUTTER) clean

gen:
	dart run build_runner build --delete-conflicting-outputs

gen-i18n:
	dart run slang
