default_platform(:android)

platform :android do
  desc "Build, test, and deploy to Google Play"
  lane :internal do
    module_name = ENV["MODULE"]
    # Read local versionCode
    project_root = File.expand_path("..", __dir__)
    gradle_path = File.join(project_root, module_name, "build.gradle.kts")
    UI.message("Gradle file resolved at: #{gradle_path}")
    gradle_file = File.read(gradle_path)
    gradle_version = gradle_file[/versionCode\s*=\s*(\d+)/, 1].to_i

    # Read Play Store versionCode (track internal)
    play_version = google_play_track_version_codes(
      track: "internal"
    ).max.to_i

    if gradle_version <= play_version
      UI.user_error!("VersionCode #{gradle_version} should be higher than Play Store version (#{play_version}). Aborting upload.")
    end

    gradle(task: "testDebugUnitTest")
    gradle(task: "clean :#{module_name}:bundleRelease")
    upload_to_play_store(
      track: "internal",
      aab: "#{module_name}/build/outputs/bundle/release/#{module_name}-release.aab"
    )
  end
end