default_platform(:android)

platform :android do

  desc "Run tests"
  lane :test do
    gradle(task: "test")
  end

  desc "Build debug APK"
  lane :build_debug do
    gradle(
      task: "assembleDebug"
    )
  end

  desc "Build release APK"
  lane :build_release do
    gradle(
          task: "assembleRelease"
    )
  end

  desc "Increment version code"
  lane :bump_version do |options|
    version_name = options[:version] || "1.0"
    # Read current versionCode from build.gradle.kts
    build_gradle = File.read("../app/build.gradle.kts")
    current_code = build_gradle.match(/versionCode = (\d+)/)[1].to_i
    new_code = current_code + 1

    # Update versionCode
    new_content = build_gradle.gsub(
      /versionCode = \d+/,
      "versionCode = #{new_code}"
    )
    # Update versionName if provided
    new_content = new_content.gsub(
      /versionName = ".*"/,
      "versionName = \"#{version_name}\""
    )
    File.write("../app/build.gradle.kts", new_content)

    UI.success("✅ Bumped to versionCode=#{new_code}, versionName=#{version_name}")
  end

  desc "Trigger GitHub Action to auto-build Go Tunnel"
  lane :update_tunnel do
    UI.message("Triggering GitHub Action: update_tunnel.yml...")
    sh("gh workflow run update_tunnel.yml --ref main")
    UI.success("✅ Workflow triggered! Vui lòng chờ 2-3 phút cho Bot build xong, sau đó chạy 'git pull' nhé!")
  end
end
