ldc-crm/app/Http/Requests/Api/V2/StoreCustomerRequest.php
Jérémy Munsch 260d5fd259 - Arcadia separate routes on v2
- fix optin v2
- customer validation password
- full working v2 tests
2021-08-06 15:57:48 +02:00

80 lines
2 KiB
PHP

<?php
namespace App\Http\Requests\Api\V2;
use App\Enums\Country;
use Illuminate\Validation\Rules\Password;
class StoreCustomerRequest extends BaseApiRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'firstname' => [
'required',
'string',
'min:2'
],
'lastname' => [
'required',
'string',
'min:2'
],
'email' => [
'required',
'email:rfc,dns,spoof,filter'
],
'password' => [
'required',
Password::min(10)
->mixedCase()
->letters()
->numbers()
->symbols()
->uncompromised()
],
'birth_date' => [
'required',
'date_format:Y-m-d'
],
'address' => [
'required',
'string'
],
'address2' => [
'sometimes',
'string'
],
'phone' => [
'sometimes',
'string'
],
'country' => [
'sometimes',
//phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
function ($attribute, $value, $fail) {
if (!\in_array($value, Country::toValues())) {
$fail('notInList');
}
}
],
'city' => [
'required',
'string'
],
'postcode' => [
'required',
'string'
],
'opt_in' => [
'required',
'boolean'
],
];
}
}