create or replace procedure proc_26ai_info_cases( p_language in varchar2 default 'pt-BR',
                                                  p_app_user in varchar2 ,
                                                  p_industry in varchar2 ,
                                                  p_result out clob ,
                                                  p_comp_id in varchar2 ,
                                                  p_oci_cred in varchar2 default 'OCI_CRED',
                                                  p_flag_has_audio in varchar2 default 'N'
                                                )
as
  v_clob clob;
  v_prompt clob;
  v_language varchar2(200) := p_language; -- ["pt-BR","en-US","es-ES","cmn-CN"]
  v_text2speech clob;
begin

	for r1 in ( 
			SELECT JSON_OBJECT(
					 'case_name'      VALUE c.case_name,
					 'case_desc'      VALUE c.case_desc,
					 'technologies'   VALUE c.technologies,
					 'industry_name'  VALUE i.industry_name
				   ) AS case_json
			FROM demo_case c
			JOIN demo_industry i 
			  ON c.industry_id = i.industry_id 
			WHERE upper(i.industry_name) = upper(p_industry) ) loop

		v_clob := v_clob || r1.case_json;

	end loop;

	v_prompt := 'Casos de uso da indústria ' || p_industry || ' neste portal APEX, chamado de 26ai Demo Hub: ' || v_clob;

	v_text2speech := FNC_26ai_rag(p_ai_prompt => '#O que esta plataforma mostra?
-Como IA nativa do Oracle 26ai reduz custos
-Como acelerar operações
-Como automatizar tarefas críticas
-Como melhorar a experiência do cliente
-Como acelerar inovação

#Conteúdo: ' || v_prompt || '.

#Cite "Histórias de Transformação", contendo dados da indústria de ' || p_industry || ':
✔ Problema real
✔ Como a IA do Oracle poderia atuar
✔ Resultados estimados ou conhecidos

#Adicione no topo de cada indústria:
Headline de negócio: Um mini storytelling de 20 linhas explicando o antes/depois com IA

#Nosso objetivo de perceção: não é "um APEX com telas", é uma plataforma de valor. 

#REGRAS
  O retorno deste RAG deve ser gerado OBRIGATORIAMENTE em ' || v_language || '.',
								  p_oci_cred => p_oci_cred,
								  p_comp => p_comp_id);

    p_result :=  v_text2speech;

    if p_flag_has_audio = 'Y' then                             

	  pck_26ai_apis.api_text2speech(p_text => v_text2speech, 
								   p_filename => replace( lower( p_app_user ),'@oracle.com','_') || to_char(sysdate,'rrrrmmddhh24miss') || '.mp3', 
								   p_bucket => 'https://objectstorage.us-phoenix-1.oraclecloud.com/p/lK6O6NVuxHZK3S86Vn1E_9PYh2k7t1EcTYmhFuB2WqHa66CaXed1iziydQyGpyQE/n/idi1o0a010nx/b/bucket-26ai-demo-hub-text2speech/o/' , 
								   p_comp_id => p_comp_id, 
								   p_credential => p_oci_cred,
								   p_language_code => v_language) ;

    end if;                               

end;
/