getLatestRateInfo('AED', 'IRR'); $usdInfo = $service->getLatestRateInfo('USD', 'IRR'); $aedChangePercent = $aedInfo['change_percent']; $usdChangePercent = $usdInfo['change_percent']; $aedChart = $service->getRateChart('AED', 'IRR', 7); $usdChart = $service->getRateChart('USD', 'IRR', 7); return [ Stat::make('نرخ درهم (AED)', ifnex_format_number($aedInfo['current_rate'] ?? 0)) ->description( $aedChangePercent !== null ? sprintf('%s %s — %s', $aedChangePercent > 0 ? '↑' : ($aedChangePercent < 0 ? '↓' : '—'), ifnex_persian_digits(number_format(abs((float) $aedChangePercent), 2)) . '%', ($aedInfo['changed_by'] ?? 'سیستم')) : 'آخرین تغییر: ' . ($aedInfo['last_updated']?->format('Y/m/d H:i') ?? '—') ) ->descriptionIcon( $aedChangePercent > 0 ? 'heroicon-m-arrow-trending-up' : ($aedChangePercent < 0 ? 'heroicon-m-arrow-trending-down' : 'heroicon-m-minus') ) ->icon('heroicon-o-currency-dollar') ->color( $aedChangePercent > 0 ? 'danger' : ($aedChangePercent < 0 ? 'success' : 'gray') ) ->chart(!empty($aedChart) ? $aedChart : [0]), Stat::make('نرخ دلار (USD)', ifnex_format_number($usdInfo['current_rate'] ?? 0)) ->description( $usdChangePercent !== null ? sprintf('%s %s — %s', $usdChangePercent > 0 ? '↑' : ($usdChangePercent < 0 ? '↓' : '—'), ifnex_persian_digits(number_format(abs((float) $usdChangePercent), 2)) . '%', ($usdInfo['changed_by'] ?? 'سیستم')) : 'آخرین تغییر: ' . ($usdInfo['last_updated']?->format('Y/m/d H:i') ?? '—') ) ->descriptionIcon( $usdChangePercent > 0 ? 'heroicon-m-arrow-trending-up' : ($usdChangePercent < 0 ? 'heroicon-m-arrow-trending-down' : 'heroicon-m-minus') ) ->icon('heroicon-o-banknotes') ->color( $usdChangePercent > 0 ? 'danger' : ($usdChangePercent < 0 ? 'success' : 'gray') ) ->chart(!empty($usdChart) ? $usdChart : [0]), Stat::make('تغییرات امروز', ifnex_persian_digits(number_format( ExchangeRateHistory::whereDate('created_at', today())->count() )) ) ->description('تغییرات نرخ ثبت‌شده در امروز') ->descriptionIcon('heroicon-m-arrow-path') ->icon('heroicon-o-arrow-path') ->color('info'), Stat::make('در انتظار تأیید', ifnex_persian_digits(number_format($service->getPendingCount())) ) ->description('نرخ‌های پیشنهادی API — منتظر تأیید مدیر') ->descriptionIcon('heroicon-m-clock') ->icon('heroicon-o-clock') ->color('warning'), ]; } }