56 lines
2.1 KiB
PHP
56 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Order;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class OrderRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'server_name' => 'required|string|max:255|unique:order__order_item,server_name',
|
|
'product_id' => 'required|integer',
|
|
'product_type' => 'required|integer',
|
|
'months' => 'required|integer',
|
|
'cart_id' => 'required|integer|exists:carts,id',
|
|
'os_id' => 'required|integer|exists:os,id',
|
|
'addons' => 'nullable|array',
|
|
'addons.*.qty' => 'nullable|integer|min:0',
|
|
'addons.*.price' => 'nullable|integer|min:0',
|
|
'totalPrice' => 'required|integer|min:0',
|
|
];
|
|
}
|
|
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'server_name.required' => 'Vui lòng bổ sung thêm tên miền!',
|
|
'server_name.string' => 'Tên miền phải là chuỗi ký tự.',
|
|
'server_name.max' => 'Tên miền không được vượt quá 255 ký tự.',
|
|
'server_name.unique' => 'Tên miền này đã được sử dụng, vui lòng chọn tên khác.',
|
|
|
|
'product_type.required' => 'Loại sản phẩm là bắt buộc.',
|
|
'product_type.integer' => 'Loại sản phẩm phải là số nguyên.',
|
|
|
|
'os_id.required' => 'Vui lòng chọn hệ điều hành!',
|
|
'os_id.integer' => 'Hệ điều hành phải là số nguyên.',
|
|
'os_id.exists' => 'Hệ điều hành không tồn tại.',
|
|
|
|
'addons.*.qty.min' => 'Số lượng addon phải lớn hơn hoặc bằng 0.',
|
|
'addons.*.price.min' => 'Giá addon phải lớn hơn hoặc bằng 0.',
|
|
|
|
'cart_id.required' => 'Mã giỏ hàng là bắt buộc',
|
|
|
|
'totalPrice.required' => 'Tổng giá là bắt buộc.',
|
|
'totalPrice.integer' => 'Tổng giá phải là số nguyên.',
|
|
'totalPrice.min' => 'Tổng giá phải lớn hơn hoặc bằng 0.',
|
|
];
|
|
}
|
|
}
|