<?php
declare(strict_types=1);$sent=false;$label=$_SERVER['HTTP_X_CORE_CASE']??'UNKNOWN';try{require __DIR__.'/app.php';require __DIR__.'/observer.php';require __DIR__.'/data.php';require __DIR__.'/cases.php';require __DIR__.'/dto.php';$cases=cases();ck(isset($cases[$label]),'Exact approved label');[$method,$action,$query,$body]=$cases[$label];$tokens=json_decode(file_get_contents($runtime.'/tokens.json'),true);ck($_SERVER['REQUEST_METHOD']===$method&&parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH)==='/api/user.UserWeight/'.$action&&($_SERVER['QUERY_STRING']??'')===$query&&($_SERVER['HTTP_HOST']??'')==='owned-weight.invalid'&&($_SERVER['HTTP_PLATFORM']??'')==='POC'&&($_SERVER['HTTP_ACCESS_TOKEN']??'')===$tokens['U1']&&file_get_contents('php://input')===$body,'Exact request bytes/actor');ck(!file_exists($runtime.'/request-'.$label.'.json'),'Never replay request');saveOnce('request-'.$label.'.json',['method'=>$method,'action'=>$action,'query_raw'=>$query,'body_raw'=>$body,'access_token_sha256'=>hash('sha256',$tokens['U1']),'at'=>microtime(true)]);$_SERVER['SCRIPT_FILENAME']=$root.'/public/index.php';$_SERVER['SCRIPT_NAME']='/index.php';$_SERVER['PHP_SELF']='/index.php';$app=coreApp($label);$writer=$method==='POST';$used=count(file($runtime.'/sql-budget.jsonl'));$cap=$writer?($lane==='B'?100:180):($lane==='B'?50:90);ck($used+$cap+80<=1000,'Reserve request and final exact protection');$before=$writer?ownRows():[];if($writer)saveOnce('before-'.$label.'.json',['rows'=>$before,'decimal_text'=>decimals()]);if($label==='R5_STATUS_EXISTING_GOAL'){$g=readNative('AI','SELECT * FROM yoshop_user_weight_status WHERE user_id=? AND store_id=? AND delete_flag=0',[actor()['user_id'],10001]);ck(count($g)===1,'Existing valid own goal mandatory before status');}$start=microtime(true);$http=$app->http;$response=$http->run();$end=microtime(true);preserveSendObserve($response,static function($r)use($label){saveOnce('response-'.$label.'.json',$r);},static function()use($response,&$sent){$response->send();$sent=true;},static function($record)use($label,$writer,$before){$rows=[];if($writer){$rows=ownRows();saveOnce('after-'.$label.'.json',['rows'=>$rows,'decimal_text'=>decimals(),'counts'=>CoreGate::$counts,'generated'=>CoreGate::$generated,'main_committed'=>CoreGate::$mainCommitted]);if($label==='W1_MANUAL'){ck(count($rows['user_weight'])===1&&count($rows['user_health_metric_record'])===2&&count($rows['user_bind'])===1&&count($rows['user_score'])===1&&count($rows['user_score_log'])===1,'Mandatory main and two sidecar rows');saveOnce('flow-ids.json',['weight_id'=>$rows['user_weight'][0]['id']]);}else ck(count($rows['user_weight_status'])===1,'Exactly one goal');}else{foreach($label==='R5_STATUS_EXISTING_GOAL'?['user_weight_status','user_weight']:($label==='R3_INFO'?['staff','user_weight','user_weight_status']:($label==='R4_GOAL_INFO'?['user_weight_status']:['user_weight'])) as $t)$rows[$t]=readNative('AI','SELECT * FROM yoshop_'.$t.' WHERE user_id=? ORDER BY id',[actor()['user_id']]);saveOnce('read-rows-'.$label.'.json',$rows);}saveOnce('included-'.$label.'.json',['files'=>includedProof(),'native_count'=>CoreGate::$total,'counts'=>CoreGate::$counts]);checkDTO($label,$record,$rows);},static function($e)use($label){saveOnce('observer-error-'.$label.'.json',$e);},$start,$end);try{$http->end($response);}catch(Throwable $e){saveOnce('http-end-error-'.$label.'.json',['message'=>$e->getMessage(),'original_response_sent'=>true]);}}catch(Throwable $e){if(function_exists('saveOnce')&&!file_exists($runtime.'/harness-error-'.$label.'.json'))saveOnce('harness-error-'.$label.'.json',['class'=>get_class($e),'message'=>$e->getMessage(),'sent'=>$sent]);if(!$sent){http_response_code(500);echo json_encode(['harness_error'=>get_class($e),'message'=>$e->getMessage()]);}}
