krgm.so-manager-dev.com/app/Http/Requests/ParkRequest.php
kin.rinzen b13e91d592
All checks were successful
Deploy main / deploy (push) Successful in 22s
駐輪場マスタ規約修正
2026-02-05 19:10:07 +09:00

136 lines
5.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ParkRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
/**
* add / edit 用的 validation
*/
public function rules(): array
{
if (!$this->isMethod('post') && !$this->isMethod('put')) {
return [];
}
return [
// 必須
'city_id' => ['required', 'integer'],
'park_name' => ['required', 'string', 'max:255'],
// 文字系
'park_ruby' => ['nullable', 'string', 'max:255'],
'park_syllabary' => ['nullable', 'string', 'max:3'],
'park_adrs' => ['nullable', 'string', 'max:255'],
'price_memo' => ['nullable', 'string', 'max:1000'],
// フラグ / 種別系integer想定
'park_close_flag' => ['nullable', 'integer'],
'inverse_use_flag1' => ['nullable', 'integer'], // 逆利用フラグ(一覧)
'inverse_use_flag2' => ['nullable', 'integer'], // 逆利用フラグ(学生)
'parking_regulations_flag' => ['nullable', 'integer'], // 駐輪規定フラグ
'alert_flag' => ['nullable', 'integer'], // 残警告チェックフラグ
// ★ここexport/DB側は immediate_use_permit
'immediate_use_permit' => ['nullable', 'integer'], // 契約後即利用許可
'gender_display_flag' => ['nullable', 'integer'],
'bd_display_flag' => ['nullable', 'integer'],
'securityreg_display_flag' => ['nullable', 'integer'],
'park_fixed_contract' => ['nullable', 'integer'],
'park_temporary_contract' => ['nullable', 'integer'],
'park_available_time_flag' => ['nullable', 'integer'],
'park_manager_flag' => ['nullable', 'integer'],
'park_roof_flag' => ['nullable', 'integer'],
'park_issuing_machine_flag' => ['nullable', 'integer'],
'reduction_guide_display_flag' => ['nullable', 'integer'],
'overyear_flag' => ['nullable', 'integer'],
// 数値系
'print_number' => ['nullable', 'integer'],
'distance_twopoints' => ['nullable', 'integer'],
'reduction_age' => ['nullable', 'integer'],
'reduction_guide_display_start_month' => ['nullable', 'integer'],
// 日付/時刻系
'park_day' => ['nullable', 'date'],
'keep_alive' => ['nullable', 'date'],
'update_grace_period_start_date' => ['nullable', 'integer', 'between:1,31'],
'update_grace_period_start_time' => ['nullable', 'date_format:H:i'],
'update_grace_period_end_date' => ['nullable', 'integer', 'between:1,31'],
'update_grace_period_end_time' => ['nullable', 'date_format:H:i'],
'parking_start_grace_period' => ['nullable', 'integer', 'between:1,31'],
'reminder_type' => ['nullable', 'integer'],
'reminder_time' => ['nullable', 'date_format:H:i'],
'park_available_time_from' => ['nullable', 'date_format:H:i'],
'park_available_time_to' => ['nullable', 'date_format:H:i'],
'park_manager_resident_from' => ['nullable', 'date_format:H:i'],
'park_manager_resident_to' => ['nullable', 'date_format:H:i'],
// 緯度/経度/電話など
'park_latitude' => ['nullable', 'string', 'max:50'],
'park_longitude' => ['nullable', 'string', 'max:50'],
'park_tel' => ['nullable', 'string', 'max:50'],
// 備考/自由入力
'park_restriction' => ['nullable', 'string', 'max:50'],
'park_procedure' => ['nullable', 'string', 'max:50'],
'park_payment' => ['nullable', 'string', 'max:100'],
'park_using_method' => ['nullable', 'string', 'max:1000'],
'park_contract_renewal_term' => ['nullable', 'string', 'max:255'],
'park_reservation' => ['nullable', 'string', 'max:255'],
'park_reference' => ['nullable', 'string', 'max:1000'],
// ★ここexport/DB側は student_id_confirm_type
'student_id_confirm_type' => ['nullable', 'string', 'max:255'],
];
}
protected function prepareForValidation(): void
{
foreach ([
'park_available_time_from',
'park_available_time_to',
'park_manager_resident_from',
'park_manager_resident_to',
'update_grace_period_start_time',
'update_grace_period_end_time',
'reminder_time',
] as $key) {
if ($this->filled($key)) {
$v = (string) $this->input($key);
$this->merge([$key => substr($v, 0, 5)]); // HH:MM に統一
}
}
}
/**
* add / edit payload
*/
public function payload(): array
{
return $this->validated();
}
public function filters(): array
{
return [
'park_name' => $this->input('park_name'),
'city_id' => $this->input('city_id'),
'sort' => $this->input('sort'),
'sort_type' => $this->input('sort_type', 'asc'),
];
}
}