<?php
require_once __DIR__.'/../../_bootstrap.php';
require_once ROOT_PATH.'/includes/match_functions.php';
$u=afApiOuSessaoUsuario($pdo);
$sessao=preg_replace('/[^a-f0-9]/','',strtolower((string)($_GET['s']??'')));
if(strlen($sessao)!==48) jsonResponse(['ok'=>false,'erro'=>'Sessão inválida.'],422);
$p=afBuscarPartidaPorSessao($pdo,(int)$u['id'],$sessao);
if(!$p||$p['status']!=='finalizada') jsonResponse(['ok'=>false,'erro'=>'Resultado não encontrado.'],404);
$resultado=[
 'sessao_id'=>$p['sessao_id'],'status'=>$p['status'],'aura_gerada'=>(float)$p['aura_gerada'],
 'likes'=>(int)$p['likes_recebidos'],'superlikes'=>(int)$p['superlikes_recebidos'],
 'pontuacao_social'=>(float)$p['pontuacao_social'],'pontuacao_total'=>(float)$p['pontuacao_total'],
 'xp_ganho'=>(int)$p['xp_ganho'],'xp_base'=>(int)($p['xp_base']??0),'xp_bonus'=>(int)($p['xp_bonus']??0),'xp_detalhes'=>json_decode((string)($p['xp_detalhes']??'{}'),true),'novo_recorde'=>(bool)$p['novo_recorde'],
 'ranking'=>['diario'=>(int)$p['ranking_diario_posicao'],'semanal'=>(int)$p['ranking_semanal_posicao'],'mensal'=>(int)$p['ranking_mensal_posicao'],'global'=>(int)$p['ranking_global_posicao']],
 'metricas'=>['precisao'=>(float)$p['precisao_media'],'fluidez'=>(float)$p['fluidez_media'],'originalidade'=>(float)$p['originalidade_media'],'dificuldade'=>(float)$p['dificuldade_media'],'movimentos'=>(int)$p['movimentos_reconhecidos'],'combo_maximo'=>(int)$p['combo_maximo']],
 'duracao_segundos'=>(int)$p['duracao_real_segundos'],'finalizada_em'=>$p['finalizada_em'],
 'share_url'=>SITE_URL.'/pages/compartilhar.php?t='.$p['share_token'],
 'replay_url'=>SITE_URL.'/pages/replay.php?t='.$p['share_token'],
 'desafio_viral_id'=>(int)($p['desafio_viral_id']??0),
 'nivel_aura'=>afNivelAuraVisual((float)$p['aura_gerada']),'progressao'=>afResumoProgressao($pdo,(int)$u['id'])
];
jsonResponse(['ok'=>true,'resultado'=>$resultado]);
