Files
boursecu_server/app/Http/Controllers/Customer/DigipayInstallmentController.php
T

54 lines
1.3 KiB
PHP
Raw Normal View History

2026-10-20 10:11:03 -04:00
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller;
use App\Services\DigipayInstallmentService;
use Illuminate\Http\Request;
class DigipayInstallmentController extends Controller
{
public function __construct(private DigipayInstallmentService $service)
{
}
public function show()
{
$this->ensureEnabled();
return response()->json($this->service->statusFor((int) auth('customer')->id()));
}
public function start()
{
$this->ensureEnabled();
$this->service->markStarted((int) auth('customer')->id());
return response()->json($this->service->statusFor((int) auth('customer')->id()));
}
public function buy(Request $request)
{
$this->ensureEnabled();
$data = $request->validate([
'plan' => 'required|integer|in:4,12',
'amount_toman' => 'required|integer|min:1000',
]);
$result = $this->service->buy(
(int) auth('customer')->id(),
(int) $data['plan'],
(int) $data['amount_toman']
);
return response()->json($result);
}
private function ensureEnabled(): void
{
if (! $this->service->enabled()) {
abort(403, 'خرید اقساطی فعال نیست');
}
}
}