41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Settings;
|
|
use Illuminate\Http\Request;
|
|
|
|
class AuditionSettings extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return view('admin.audition-settings');
|
|
}
|
|
|
|
public function save(Request $request)
|
|
{
|
|
$validData = $request->validate([
|
|
'auditionName' => ['required'],
|
|
'auditionAbbreviation' => ['required', 'max:8'],
|
|
'organizerName' => ['required'],
|
|
'organizerEmail' => ['required', 'email'],
|
|
'registrationCode' => ['required'],
|
|
'fee_structure' => ['required', 'in:oneFeePerEntry,oneFeePerStudent'], // Options should align with the boot method of InvoiceDataServiceProvider
|
|
'late_fee' => ['nullable', 'numeric', 'min:0'],
|
|
'school_fee' => ['nullable', 'numeric', 'min:0'],
|
|
]);
|
|
|
|
// Store currency values as cents
|
|
$validData['late_fee'] = $validData['late_fee'] * 100;
|
|
$validData['school_fee'] = $validData['school_fee'] * 100;
|
|
|
|
// TODO implement olympic scoring
|
|
foreach ($validData as $key => $value) {
|
|
Settings::set($key, $value);
|
|
}
|
|
|
|
return view('admin.audition-settings')->with('success', 'Settings Saved');
|
|
}
|
|
}
|