# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:android)

platform :android do
  desc "Runs all the tests"
  lane :test do
    gradle(task: "test")
  end

  desc "Submit a new Beta Build to Crashlytics Beta"
  lane :beta do
    gradle(task: "clean assembleRelease")
    crashlytics
  
    # sh "your_script.sh"
    # You can also use other beta testing services here
  end

  desc "Deploy a new version to the Google Play"
  lane :deploy do
    # Build ONLY the stable flavor. bundleRelease alone builds both stable +
    # beta AABs and upload_to_play_store then picks the beta one, which the
    # Play Store rejects with 'APK has the wrong package name' because the
    # store listing is for com.a4a.g8invoicing (stable), not
    # com.a4a.g8invoicing.beta.
    gradle(task: "clean bundleStableRelease")
    upload_to_play_store(
      aab: "app/build/outputs/bundle/stableRelease/app-stable-release.aab"
    )
  end

  desc "Push store listing only (texts + screenshots + changelogs), no build"
  lane :metadata do
    # supply needs an explicit version_code to know which release the
    # changelog files belong to when we're not uploading a new AAB.
    # Read it from build.gradle.kts so it stays in sync with each release.
    version_code = File.read("../app/build.gradle.kts")
      .match(/versionCode\s*=\s*(\d+)/)[1].to_i
    upload_to_play_store(
      version_code: version_code,
      skip_upload_apk: true,
      skip_upload_aab: true,
      skip_upload_changelogs: false,
      skip_upload_metadata: false,
      skip_upload_images: false,
      skip_upload_screenshots: false
    )
  end
end
