| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace App\Http\Requests;
- use App\ValueObjects\Cpf;
- use Illuminate\Foundation\Http\FormRequest;
- class UnitRequest extends FormRequest
- {
- public function rules(): array
- {
- $isCreate = $this->isMethod('POST');
- $rules = [
- 'name' => 'sometimes|required|string|max:255',
- 'fantasy_name' => 'sometimes|nullable|string|max:255',
- 'social_reason' => 'sometimes|required|string|max:255',
- 'cnpj' => 'sometimes|required|string|max:20',
- 'state_registration' => 'sometimes|nullable|string|max:50',
- 'name_responsible' => 'sometimes|required|string|max:255',
- 'street' => 'sometimes|required|string|max:255',
- 'address_number' => 'sometimes|nullable|string|max:20',
- 'postal_code' => 'sometimes|required|string|max:9',
- 'neighborhood' => 'sometimes|required|string|max:255',
- 'complement' => 'sometimes|nullable|string|max:255',
- 'city_id' => 'sometimes|required|integer|exists:cities,id',
- 'state_id' => 'sometimes|required|integer|exists:states,id',
- 'email' => 'sometimes|required|email|max:255',
- 'secondary_email' => 'sometimes|nullable|email|max:255',
- 'phone_number' => 'sometimes|nullable|string|max:20',
- 'cell_number' => 'sometimes|required|string|max:20',
- 'avatar' => 'sometimes|nullable|image|max:20480',
- 'contracts' => 'sometimes|nullable|array',
- 'contracts.*' => 'file|mimes:pdf|max:20480',
- 'partners' => 'sometimes|nullable|array',
- 'partners.*.name' => 'required|string|max:255',
- 'partners.*.cpf' => ['required', 'string', 'max:20', Cpf::rule()],
- 'partners.*.social_name' => 'nullable|string|max:255',
- 'partners.*.role' => 'nullable|string|max:100',
- 'partners.*.rg' => 'nullable|string|max:30',
- 'partners.*.birth_date' => 'nullable|date',
- 'partners.*.participation' => 'nullable|numeric|min:0|max:100',
- 'partners.*.email' => 'nullable|email|max:255',
- 'partners.*.secondary_email' => 'nullable|email|max:255',
- 'partners.*.phone_number' => 'nullable|string|max:20',
- 'partners.*.cell_number' => 'nullable|string|max:20',
- 'partners.*.postal_code' => 'nullable|string|max:9',
- 'partners.*.street' => 'nullable|string|max:255',
- 'partners.*.address_number' => 'nullable|string|max:20',
- 'partners.*.neighborhood' => 'nullable|string|max:255',
- 'partners.*.complement' => 'nullable|string|max:255',
- 'partners.*.city_id' => 'nullable|integer|exists:cities,id',
- 'partners.*.state_id' => 'nullable|integer|exists:states,id',
- 'partners.*.avatar' => 'nullable|image|max:2048',
- ];
- if ($isCreate) {
- $required = [
- 'name',
- 'social_reason',
- 'cnpj',
- 'name_responsible',
- 'street',
- 'postal_code',
- 'neighborhood',
- 'city_id',
- 'state_id',
- 'email',
- 'cell_number',
- ];
- foreach ($required as $field) {
- $rules[$field] = str_replace('sometimes|required', 'required', $rules[$field]);
- }
- }
- return $rules;
- }
- }
|