lotteryAdmin(); abort_if($admin === null, 401); abort_if(! AdminAgentSettlementScope::billAccessible($admin, $settlement_bill), 404); $bill = DB::table('settlement_bills')->where('id', $settlement_bill)->first(); abort_if($bill === null, 404); $payments = DB::table('payment_records') ->where('settlement_bill_id', $settlement_bill) ->orderBy('id') ->get(); $rebateAllocations = DB::table('rebate_allocations') ->where('settlement_bill_id', $settlement_bill) ->orderBy('id') ->get(); $adjustments = DB::table('settlement_adjustments') ->where('original_bill_id', $settlement_bill) ->orderByDesc('id') ->get(); $meta = $bill->meta_json ?? null; $tierSettlements = null; if (is_string($meta) && $meta !== '') { $decoded = json_decode($meta, true); $tierSettlements = is_array($decoded) ? ($decoded['edge'] ?? $decoded['tier_settlements'] ?? null) : null; } return ApiResponse::success([ 'bill' => $bill, 'payments' => $payments, 'rebate_allocations' => $rebateAllocations, 'adjustments' => $adjustments, 'tier_edge' => $tierSettlements, ]); } }