Files
sam-api/app/Http/Requests/Equipment/StoreEquipmentPhotoRequest.php

54 lines
1.3 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Requests\Equipment;
use App\Models\Commons\File;
use Illuminate\Foundation\Http\FormRequest;
class StoreEquipmentPhotoRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
$equipmentId = $this->route('id');
$currentCount = File::where('document_id', $equipmentId)
->where('document_type', 'equipment')
->whereNull('deleted_at')
->count();
$maxFiles = 10 - $currentCount;
return [
'files' => ['required', 'array', 'min:1', "max:{$maxFiles}"],
'files.*' => [
'required',
'file',
'mimes:jpg,jpeg,png,gif,bmp,webp',
'max:10240', // 10MB
],
];
}
public function attributes(): array
{
return [
'files' => '사진 파일',
'files.*' => '사진 파일',
];
}
public function messages(): array
{
return [
'files.required' => __('error.file.required'),
'files.max' => __('error.equipment.photo_limit_exceeded'),
'files.*.mimes' => __('error.file.invalid_type'),
'files.*.max' => __('error.file.size_exceeded'),
];
}
}