| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace App\Http\Requests;
- use Illuminate\Foundation\Http\FormRequest;
- class PaymentRequest extends FormRequest
- {
- public function authorize(): bool
- {
- return true;
- }
- public function rules(): array
- {
- $rules = [
- 'schedule_id' => ['sometimes', 'integer', 'exists:schedules,id'],
- 'client_id' => ['sometimes', 'integer', 'exists:clients,id'],
- 'provider_id' => ['nullable', 'integer', 'exists:providers,id'],
- 'client_payment_method_id' => ['nullable', 'integer', 'exists:client_payment_methods,id'],
- 'gateway_provider' => ['sometimes', 'string', 'max:255'],
- 'gateway_entity_reference' => ['nullable', 'string', 'max:255'],
- 'gateway_entity_label' => ['nullable', 'string', 'max:255'],
- 'gateway_operation_reference' => ['nullable', 'string', 'max:255'],
- 'gateway_operation_label' => ['nullable', 'string', 'max:255'],
- 'payment_method' => ['sometimes', 'in:credit_card,pix,boleto'],
- 'status' => ['sometimes', 'in:pending,processing,authorized,paid,failed,cancelled'],
- 'gross_amount' => ['sometimes', 'numeric', 'min:0'],
- 'gateway_fee_amount' => ['sometimes', 'numeric', 'min:0'],
- 'platform_fee_amount' => ['sometimes', 'numeric', 'min:0'],
- 'net_amount' => ['sometimes', 'numeric', 'min:0'],
- 'currency' => ['sometimes', 'string', 'size:3'],
- 'installments' => ['sometimes', 'integer', 'min:1', 'max:24'],
- 'authorized_at' => ['nullable', 'date'],
- 'paid_at' => ['nullable', 'date'],
- 'failed_at' => ['nullable', 'date'],
- 'cancelled_at' => ['nullable', 'date'],
- 'expires_at' => ['nullable', 'date'],
- 'failure_code' => ['nullable', 'string', 'max:255'],
- 'failure_message' => ['nullable', 'string'],
- 'gateway_payload' => ['nullable', 'array'],
- 'metadata' => ['nullable', 'array'],
- ];
- if ($this->isMethod('POST')) {
- $rules['schedule_id'] = ['required', 'integer', 'exists:schedules,id'];
- $rules['client_id'] = ['required', 'integer', 'exists:clients,id'];
- $rules['payment_method'] = ['required', 'in:credit_card,pix,boleto'];
- $rules['gross_amount'] = ['required', 'numeric', 'min:0'];
- $rules['net_amount'] = ['required', 'numeric', 'min:0'];
- }
- return $rules;
- }
- }
|