#!/bin/bash

#CURSOS DE ENTRADA DE DADOS: SE PRECISAR FAZER ALTERAÇÕES DEFINITIVAS, FAÇA NESTE CURSOS
#cursos_senac_1.csv
#cursos_ifsp_1.csv 
#cursos_ifsp_2.csv 
#cursos_ifsp_3.csv 
#cursos_ifsp_3.csv 
#cursos_senar_1.csv 
#cursos_escola_trabalhador.csv 
#cursos_ifb.csv 
#cursos_senai_2025.csv

#CABECALIOS DOS CURSOS:
#SENAC|segmento|tipo_de_curso|codigo_do_curso|titulo_do_curso|AC|AL|AM|AP|BA|CE|DF|ES|GO|MA|MG|MS|MT|PA|PB|PE|PI|PR|RJ|RN|RO|RR|RS|SC|SE|SP|TO|total_geral
#SENAR|codigo_do_curso|título_do_curso|carga_horaria|duracao|proxima_turma|tipo_de_curso|presencial_remoto|estado
#IFSP1|tipo_de_curso|campus|titulo_do_curso|tipo_de_tecnico|quantidade_de_vagas_resolução_ppc|turno|semestre_do_ano_que_ocorre_a_oferta|periodicidade_da_oferta|modalidade_de_oferta|confirme_se_o_curso_sera_ofertado_no_processo_seletivo_de_ingresso_em_2025_1
#IFSP2|tipo_de_curso|campus|titulo_do_curso|vagas|periodo|duracao
#IFSP3|tipo_de_curso|campus|titulo_do_curso|perido|vagas|duracao
#MTE|codigo_da_trilha|nome_da_trilha|segmento|titulo_do_curso|carga_horaria|tipo_de_curso|presencial_remoto|estado
#IFB|tipo_de_curso|campus|estado|cidade|titulo_do_curso|tipo_de_tecnico|quantidade_de_vagas|turno|modalidade_de_oferta|cbo|regime_de_matrícula|eixo_tecnologico|carga_horaria
#SENAI|estado|cidade|codigo_municipio|escola|local_de_realizacao_curso|curso|area_tecnologica|codigo_turma|tipo_de_curso|tipo_oferta|turno|data_inicio|data_fim|periodo_de_matricula|carga_horaria|quantidade_de_vagas|URL|endereco_escola|telefone_contato_escola|e-mail_contato_escola

SECONDS=0

echo "Gerando banco de dados Qualificação Brasil"
echo "Convertendo TXT para CSV"
#php converte_senar_csv_2.php
echo "Ajustando o arquivo da SENAC para individualizar os cursos por estado, criando arquivo cursos_senac_estado_1.csv a partir de cursos_senac_1.csv"
php converte_estados_senac.php cursos_senac_1.csv  cursos_senac_estado_1.csv

echo "Criando scripts SQL de inserção para SENAR"
echo "Colocando as cidades no cursos do ifsp"
./converte_cursos_ifsp_com_cidades.bash

#abaixo estão os arquivos de entrada para converte_cursos_ifsp_com_cidades.bash
#cat cursos_ifsp_1.csv | sed "s/|Campus|/|Campus|Estado|Cidade|/g" > cursos_ifsp_1_cidade.csv
#cat cursos_ifsp_2.csv | sed "s/|Campus|/|Campus|Estado|Cidade|/g" > cursos_ifsp_2_cidade.csv
#cat cursos_ifsp_3.csv | sed "s/|Campus|/|Campus|Estado|Cidade|/g" > cursos_ifsp_3_cidade.csv


echo "Limpando os enters do arquivo cursos_senai_2025.csv"
php limpa_enters_csv3.php cursos_senai_2025.csv saida_cursos_senai_2025.csv

echo "Colocando capitais no SENAC:"
php coloca_capitais_na_senac.php

php cria_inserts_cursos_metadados_spaCy.php cursos_senac_estado_1_capitais.csv saida_cursos_senac_estado_1.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_senar_1.csv saida_cursos_senar_1.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_ifsp_1_cidade.csv saida_cursos_ifsp_1_cidade.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_ifsp_2_cidade.csv saida_cursos_ifsp_2_cidade.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_ifsp_3_cidade.csv saida_cursos_ifsp_3_cidade.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_escola_trabalhador.csv saida_cursos_escola_trabalhador.sql
php cria_inserts_cursos_metadados_spaCy.php cursos_ifb.csv saida_cursos_ifb.sql
php cria_inserts_cursos_metadados_spaCy.php saida_cursos_senai_2025.csv saida_cursos_senai_2025.sql 

echo "Criando banco de dados qualifica_brasil"
mysql -u root -ptoninho13 qualifica_brasil < cria_banco_cursos.sql
echo "Terminou de criar o banco"
echo "Inserindo dados gerais de cidades, estados, países, etc."
mysql -u root -ptoninho13 qualifica_brasil < insert_dados.sql

echo "Inserindo classificação de tokens"

mysql -u root -ptoninho13 qualifica_brasil < insert_classificacao_token.sql

#mysql -u root -ptoninho13 qualifica_brasil < insert_classificacao_senai.sql  este arquivo foi juntado com insert_classificacao_token.sql
echo "Insere códigos do SENAI"
mysql -u root -ptoninho13 qualifica_brasil < saida_novos_tokens_senai_codigo.sql #codigos complexos do SENAI 
echo "Inserindo cidades"
mysql -u root -ptoninho13 qualifica_brasil < inserts_cidades_id_estado_corrigido.sql 


echo "Inserindo dados de SENAC"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_senac_estado_1.sql
echo "Inserindo dados de SENAR"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_senar_1.sql 
echo "Inserindo dados de IFSP"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_ifsp_1_cidade.sql 
echo "Inserindo dados de IFSP"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_ifsp_2_cidade.sql 
echo "Inserindo dados de IFSP"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_ifsp_3_cidade.sql 
echo "Inserindo dados de Escola do Trabalhador"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_escola_trabalhador.sql 
echo "Inserindo dados de IFB"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_ifb.sql 
echo "Inserindo dados do SENAI"
mysql -u root -ptoninho13 qualifica_brasil < saida_cursos_senai_2025.sql
echo "Retira campos de buscas desnecessários"
mysql -u root -ptoninho13 qualifica_brasil < define_campos_busca.sql
echo "Terminou inserções principais"

mysql -u root -ptoninho13 qualifica_brasil < define_caracteres_antes_depois.sql # verificar se virgula está recebendo de classificacao_tokens PARA tokens 

echo "Número de linhas com problemas (faltando referência na tabela classificacoes_tokens- número apresentado tem repetições. O número efetivo é menor)"

./descobre_falta_classificacao.bash | grep -i xxxx  | wc -l

echo "Maior número de ocorrências"

echo "Gravando os tokens que não estão classificados na tabela classificacoes_tokens em resto_tokens.txt"

./descobre_falta_classificacao.bash | grep -iEo " [^[:space:]]+\[X+\]" | sort | uniq -c | sort -nr | sed 's/\[[X]*\]//I' | awk '{print $2;}' | sort > resto_tokens.txt 

cd tokens_fora_da_classificacao 

rm -f resto_tokens.txt 

cp -f ../resto_tokens.txt .

rm -f 50_resto_tokens_*

split -l 50 resto_tokens.txt 50_resto_tokens_


echo "Criando base de dados optimizada:"

mysql -u root -ptoninho13 qualifica_brasil < ../insere_base_optimizada.sql 
echo "Tempo de execução: $SECONDS segundos"

echo "Criando a base de dados CBO (demora)";

mysql -u root -ptoninho13 qualifica_brasil < ../cria_banco_cbo.sql

echo "Tokenizando CBO"

cd ..

python tokeniza_cbo2_nested_buffered.py  tokens_cbo.sql

mysql -u root -ptoninho13 qualifica_brasil < tokens_cbo.sql 

echo "Cria tabela de tokens relevantes"

mysql -u root -ptoninho13 -t   qualifica_brasil < cria_tokens_relevantes.sql

echo "Insere imagens trazidas dos repositorios na base, e relaciona aos tokens relevantes - este processo não traz as imagens do repositorio novamente, dado que é muito demorado. O processo foi realizado uma vez para colocar as imagens em ./imagens/crawler_imagens/imagens_tokens. insert_tokens_imagens_corrigido_manualmente.sql é um arquivo criado pelo crawler quando o crawler ainda tinha um defeiro, então teve que ser corrigido manualmente em 20250323 VPM"

mysql -u root -ptoninho13 qualifica_brasil < insert_tokens_imagens_corrigido_manualmente.sql

echo "Insere novas imagens e respectivos links com tokens relevantes 2"

mysql -u root -ptoninho13 qualifica_brasil < insert_tokens_imagens_2.sql

echo "Insere novas imagens e respectivos links com tokens relevantes 4"

mysql -u root -ptoninho13 qualifica_brasil < insert_tokens_imagens_4.sql

echo "Insere novas imagens e respectivos links com tokens relevantes 5"

mysql -u root -ptoninho13 qualifica_brasil < insert_tokens_imagens_5.sql

echo "Insere novas imagens e respectivos links com tokens relevantes 6"

mysql -u root -ptoninho13 qualifica_brasil < insert_tokens_imagens_6.sql

echo "Cria tabela de otimizacao de busca para apresentacao dos cads (html_cards), cruzando imagens atraves de tokens relevantes"

mysql -u root -ptoninho13 qualifica_brasil < retorna_html.sql

echo "Cria versão ORACLE e recria mysql"

php dump_creates_myoracle.php qualifica_brasil mysql_create.sql oracle_create.sql
php dump_inserts_myoracle3.php qualifica_brasil inserts_mysql.sql inserts_oracle.sql
echo "Verifica a versão do MySQL para decidir se vai ajustar as collations"

echo "Garantindo que o MySQL está com collation utf8mb4_general_ci"
./ajusta_collation_mysql8_para_mariadb_tabelas_colunas.sh

echo "Ajusta o banco para MariaDB"
mysql -u root -ptoninho13 qualifica_brasil < ajustes_gerados_converte_mysql8_mariadb.sql

echo "Gera JSON qualificacao_brasil.json"

mysql -u root -ptoninho13 -N qualifica_brasil < select_cursos_json_todos.sql | jq > qualifica_brasil.json

echo "fim";

