module RubyLLM::Providers::Gemini::Images

def images_url

def images_url
  "models/#{@model}:predict"
end

def parse_image_response(response) # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength
def parse_image_response(response) # rubocop:disable Metrics/MethodLength
  data = response.body
  image_data = data['predictions']&.first
  unless image_data&.key?('bytesBase64Encoded')
    raise Error, 'Unexpected response format from Gemini image generation API'
  end
  # Extract mime type and base64 data
  mime_type = image_data['mimeType'] || 'image/png'
  base64_data = image_data['bytesBase64Encoded']
  Image.new(
    data: base64_data,
    mime_type: mime_type
  )
end

def render_image_payload(prompt, model:, size:) # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength
def render_image_payload(prompt, model:, size:) # rubocop:disable Metrics/MethodLength
  RubyLLM.logger.debug "Ignoring size #{size}. Gemini does not support image size customization."
  @model = model
  {
    instances: [
      {
        prompt: prompt
      }
    ],
    parameters: {
      sampleCount: 1
    }
  }
end