class Api::V1::Accounts::Captain::AssistantsController < Api::V1::Accounts::BaseController before_action :fetch_assistant, only: [:show, :update, :destroy, :playground, :test_webhook] def index @assistants = current_account.captain_assistants.order(created_at: :desc) render json: @assistants end def show render json: @assistant end def create @assistant = current_account.captain_assistants.new(assistant_params) if @assistant.save render json: @assistant else render_error_response(@assistant) end end def update if @assistant.update(assistant_params) render json: @assistant else render_error_response(@assistant) end end def destroy @assistant.destroy head :ok end def playground # TODO: Implement playground logic render json: { message: 'Playground not implemented yet' }, status: :ok end def test_webhook # TODO: Implement webhook test logic render json: { message: 'Webhook test not implemented yet' }, status: :ok end private def fetch_assistant @assistant = current_account.captain_assistants.find(params[:id]) end def assistant_params params.require(:assistant).permit( :name, :description, :llm_provider, :llm_model, :api_key, config: {}, response_guidelines: [], guardrails: [], handoff_webhook_config: {} ) end end