default_platform(:android)

def parse_version_code_option!(options)
  version_code = options[:version_code].to_i
  UI.user_error!("version_code must be numeric") if version_code <= 0
  version_code
end

platform :android do
  lane :upload_internal do |options|
    aab_path = options[:aab_path]
    upload_to_play_store(
      track: 'internal',
      aab: aab_path,
      skip_upload_metadata: true,
      skip_upload_changelogs: true,
      skip_upload_images: true,
      skip_upload_screenshots: true
    )
  end

  lane :upload_metadata do |options|
    version_code = parse_version_code_option!(options)

    supply(
      skip_upload_apk: true,
      skip_upload_aab: true,
      skip_upload_changelogs: true,
      sync_image_upload: true,
      version_code: version_code
    )
  end

  lane :promote do |options|
    version_code = parse_version_code_option!(options)

    supply(
      track: 'internal',
      track_promote_to: 'production',
      track_promote_release_status: 'inProgress',
      rollout: "0.001", # 0.1%
      version_code: version_code,
      skip_upload_metadata: true,
      skip_upload_changelogs: true,
      skip_upload_images: true,
      skip_upload_screenshots: true
    )
  end
end
