class CreateAssistantJob < ApplicationJob
  queue_as :default

  def perform(respondent_category_id, user_id)
    cat = RespondentCategory.find(respondent_category_id)
    if SystemTask.where(running: true).where(task_class: "LLM").count.positive?
      status = "queued"
      running = false
    else
      status = "running"
      running = true
    end

    metadata = {
      respondent_category_id: cat.id
    }

    task = SystemTask.create!(
      status:,
      running:,
      metadata:,
      user_id:,
      task_type: "GenerateAssistant",
      task_class: "LLM"
    )

    return unless running

    task.execute!
  end
end
