Files
WMS/Modules/Platform/app/Http/Controllers/LicenseKeyController.php
T
2026-09-21 10:14:57 +01:00

42 lines
1.3 KiB
PHP
Executable File

<?php
namespace Modules\Platform\app\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\Company\Models\Company;
use Modules\Platform\app\Models\LicenseKey;
class LicenseKeyController extends Controller
{
/**
* Display licence keys.
*/
public function index()
{
return view('platform::licenses.index', [
'companies' => Company::orderBy('name')->get(),
'licenses' => LicenseKey::with('company')->latest()->paginate(20),
'plainKey' => session('plain_license_key'),
]);
}
/**
* Issue a new licence key.
*/
public function store(Request $request)
{
$data = $request->validate([
'company_id' => ['required', 'exists:companies,id'],
'label' => ['required', 'string', 'max:255'],
'plan' => ['required', 'in:standard,professional,enterprise'],
'max_users' => ['required', 'integer', 'min:1', 'max:10000'],
]);
$company = Company::findOrFail($data['company_id']);
$plainKey = LicenseKey::issueFor($company, $data['label'], $data['plan'], (int) $data['max_users']);
return back()->with('plain_license_key', $plainKey)->with('status', 'Licence key issued. Copy it now.');
}
}