fix(settings): honor per-day trading hours and refresh SuperAdmin overlay

Use trading_hours_by_day for close_price gates, prefer public SuperAdmin fetch, and add refresh endpoint/command so stale last-good cache no longer keeps switches like enable_automation off.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-24 21:22:44 +03:30
co-authored by Cursor
parent d2469dc253
commit 7e8979d78d
9 changed files with 437 additions and 27 deletions
@@ -78,6 +78,31 @@ class SettingsController extends Controller
return response()->json($rows);
}
/**
* پاک کردن کش overlay و خواندن دوباره از سوپرادمین
* (سوییچ‌هایی مثل enable_automation بعد از تغییر در پنل سوپرادمین).
*/
public function refreshSuperAdminOverlay()
{
$result = app(SuperAdminProgramSettingsOverlay::class)->refreshFromSuperAdmin();
if (! ($result['ok'] ?? false)) {
return response()->json([
'message' => 'ارتباط با سوپرادمین برقرار نشد؛ کش پاک شد و در درخواست بعدی دوباره تلاش می‌شود',
'ok' => false,
'count' => 0,
], 502);
}
return response()->json([
'message' => 'تنظیمات پیشرفته از سوپرادمین همگام شد',
'ok' => true,
'count' => (int) ($result['count'] ?? 0),
'enable_automation' => $result['enable_automation'] ?? null,
'source' => $result['source'] ?? 'superadmin',
]);
}
public function edit(Request $request)
{
$key = trim((string) $request->key);