feat(order): wait for colleague callback before settling wallet

Keep cover orders pending until colleague sts 2/4/6 via callback or 35s poll. Nightly prices:prune also drops old log tables.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-02 15:55:03 +03:30
co-authored by Cursor
parent e9674d6571
commit 0b1e5c687b
13 changed files with 1093 additions and 105 deletions
+9 -1
View File
@@ -12,7 +12,8 @@ use App\Http\Controllers\Single\BankAccountController;
use \App\Http\Controllers\Customer\FundController;
use \App\Http\Controllers\pay\paypingController;
use App\Http\Controllers\pay\WalletPaymentController;
use \App\Http\Controllers\Single\SingleOrderController;
use App\Http\Controllers\Single\SingleOrderController;
use App\Http\Controllers\Customer\ColleagueOrderCallbackController;
use App\Http\Controllers\Admin\ProductController as AdminProductController;
use App\Http\Controllers\Customer\ProductController;
use App\Http\Controllers\Admin\TahesabController;
@@ -37,6 +38,9 @@ Route::post('/wallet/payment/webhook/{provider}', [WalletPaymentController::clas
Route::get('/wallet/external-payment/return', [WalletPaymentController::class, 'returnLegacy']);
Route::post('/wallet/external-payment/webhook', [WalletPaymentController::class, 'webhookLegacy']);
// کالبک وضعیت سفارش همکار — بدون لاگین مشتری
Route::post('/colleague/order/callback/{order?}', [ColleagueOrderCallbackController::class, 'callback']);
$isStore = app(ConfigService::class)->isStore();
Route::middleware('validation')->group(function () {
@@ -123,10 +127,14 @@ Route::middleware(['auth:customer', 'customer.active'])->group(function () use (
//-----------------order
Route::post('order/table', [OrderController::class, 'table']);
Route::get('order/pending', [SingleOrderController::class, 'pendingColleague']);
Route::get('order/{id}/status', [SingleOrderController::class, 'colleagueStatus']);
Route::post('order', [OrderController::class, 'store']);
//-----------------single order
Route::post('single/order/table', [SingleOrderController::class, 'table']);
Route::get('single/order/pending', [SingleOrderController::class, 'pendingColleague']);
Route::get('single/order/{id}/status', [SingleOrderController::class, 'colleagueStatus']);
// Route::post('single/order', [SingleOrderController::class, 'storeBackUp']);
Route::post('single/order', [SingleOrderController::class, 'store']);