ldc-crm/app/Http/Requests/Api/V2/SendArchadiaMailRequest.php
2021-07-28 14:18:47 +02:00

68 lines
2 KiB
PHP

<?php
namespace App\Http\Requests\Api\V2;
use App\Enums\ArcadiaMailType;
use App\Enums\ArcadiaOrderType;
use ArondeParon\RequestSanitizer\Sanitizers\RemoveNonNumeric;
use ArondeParon\RequestSanitizer\Sanitizers\Trim;
use ArondeParon\RequestSanitizer\Traits\SanitizesInputs;
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
class SendArchadiaMailRequest extends BaseApiRequest
{
use SanitizesInputs;
protected $sanitizers = [
'type' => Trim::class,
'state_order' => Trim::class,
'operation' => Trim::class,
'support_code' => Trim::class,
'order_date' => Trim::class,
'order_num' => RemoveNonNumeric::class,
'package_unit_weight' => RemoveNonNumeric::class,
'code_unique' => Trim::class
];
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'type' => [
'required',
new EnumIsValidRule(ArcadiaMailType::class)
],
'operation' => 'required|int',
'support_code' => 'required|int',
'label_type_support' => 'required|string',
'order_date' => 'required|date',
// IF default
'order_num' => [
'required_if:type,' . ArcadiaMailType::default()->value,
'numeric',
'digits:9'
],
'state_order' => [
'required_if:type,' . ArcadiaMailType::default()->value,
new EnumIsValidRule(ArcadiaOrderType::class)
],
'package_unit_weight' => [
'required_if:type,' . ArcadiaMailType::default()->value,
'integer'
],
// IF game
'code_unique' => [
'required_if:type,' . ArcadiaMailType::game()->value,
'string'
],
'code_on_pack' => [
'sometimes',
'string'
]
];
}
}