ldc-crm/app/Http/Requests/Api/V2/StoreCustomerRequest.php
Jérémy Munsch 030d9698cd
bump to 2.2.1
Repair arcadia send methods + client with unit tests
2021-10-20 15:30:21 +02:00

76 lines
2.8 KiB
PHP

<?php
namespace App\Http\Requests\Api\V2;
use App\Enums\Country;
use Illuminate\Validation\Rules\Password;
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
class StoreCustomerRequest extends BaseApiRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'firstname' => 'required|string|min:1|max:255',
'lastname' => 'required|string|min:1|max:255',
'email' => 'required|email:rfc,dns,spoof,filter|max:255',
'password' => [
'required',
'max:255',
Password::min(8)
->mixedCase()
->letters()
->numbers()
->symbols()
->uncompromised()
],
'birth_date' => 'required|date_format:Y-m-d|max:255',
'address' => 'sometimes|required_with:address2|string|max:255',
'address2' => 'sometimes|string|max:255',
'phone' => 'sometimes|string|phone:FR,BE,LU',
'country' => [
'sometimes',
'numeric',
new EnumIsValidRule(Country::class),
sprintf(
'in:%s',
implode(',', [
Country::belgium()->value,
Country::luxembourg()->value,
Country::france()->value,
// DROM COM
Country::guadeloupe()->value,
Country::martinique()->value,
Country::frenchGuiana()->value,
Country::reunion()->value,
Country::saintPierreAndMiquelon()->value,
Country::mayotte()->value,
Country::saintBarthelemy()->value,
Country::saintMartinFrenchPart()->value,
Country::wallisAndFutuna()->value,
Country::frenchPolynesia()->value,
Country::newCaledonia()->value
])
)
],
'city' => 'sometimes|string|min:2|max:255',
'postcode' => 'sometimes|string|postal_code:FR,BE,LU',
'opt_in' => 'required|boolean',
];
}
public function messages()
{
return [
// phpcs:ignore Generic.Files.LineLength.TooLong
'phone.phone' => trans('Le champ :attribute est invalide, il accepte les numéros des pays suivants France, Belgique, Luxembourg.'),
// phpcs:ignore Generic.Files.LineLength.TooLong
'country.in' => trans('Le champ :attribute est invalide, il accepte les pays suivants France, Belgique, Luxembourg.')
];
}
}