def salvar_correcao()

in IAC/temp/function-source/src/dbconector.py [0:0]


    def salvar_correcao(self, id_requisicao, resultado, validacao,
                    nota_enem, notas_competencias, 
                    datetime_inicio_correcao, 
                    plagio=None):
        
        print(f"{id} Salvando")
        #try:
        session = self.create_session()

        # Inicializa a data de término com o timezone
        finished_at = datetime.now(pytz.timezone("America/Sao_Paulo"))

        # Lista de competências para processar dinamicamente
        competencias = ['competencia_2', 'competencia_3', 'competencia_4', 'competencia_5']
        competencia_dados = {}
        
        # Extrai e prepara os dados de cada competência
        for comp in competencias:
            competencia = resultado.get(comp, {})
            competencia_dados[f"{comp}_nota"] = str(competencia.get('notas', ""))
            competencia_dados[f"{comp}_justificativa"] = json.dumps(competencia.get('descricoes', ""))

        # Criação do objeto de correção com dados dinâmicos
        nova_correcao = CorrecaoModel(
            id_requisicao=id_requisicao,
            started_at=datetime_inicio_correcao,
            finished_at=finished_at,

            # Atribui as notas e justificativas de forma dinâmica
            competencia_2_nota=int(notas_competencias[0]),
            competencia_2_justificativa=competencia_dados.get('competencia_2_justificativa'),
            competencia_3_nota=int(notas_competencias[1]),
            competencia_3_justificativa=competencia_dados.get('competencia_3_justificativa'),
            competencia_4_nota=int(notas_competencias[2]),
            competencia_4_justificativa=competencia_dados.get('competencia_4_justificativa'),
            competencia_5_nota=int(notas_competencias[3]),
            competencia_5_justificativa=competencia_dados.get('competencia_5_justificativa'),

            # Justificativa final
            justificativa_final_nota=nota_enem,
            justificativa_final_justificativa=resultado.get('sumarizacao'),

            status="DONE",
            Plagio=plagio,
            Validacao=validacao
        )

        session.add(nova_correcao)
        session.commit()
        print(f"Correção para UUID {id} salva com sucesso.")

        query = select(CorrecaoModel).where(CorrecaoModel.id_requisicao == id_requisicao)
        result = session.execute(query).scalars().first()

        if result:
            print("Resultado", result)

        '''
        except Exception as e:
            logging.error(f"Erro ao salvar correção: {e}")

        finally:
            session.close()'''