StoreBreakdownRequest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 14
c 1
b 0
f 0
dl 0
loc 21
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A authorize() 0 3 1
A rules() 0 14 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Squareetlabs\VeriFactu\Http\Requests;
6
7
use Illuminate\Foundation\Http\FormRequest;
8
use Illuminate\Validation\Rule;
9
use Squareetlabs\VeriFactu\Enums\TaxType;
10
use Squareetlabs\VeriFactu\Enums\RegimeType;
11
use Squareetlabs\VeriFactu\Enums\OperationType;
12
13
class StoreBreakdownRequest extends FormRequest
14
{
15
    public function authorize(): bool
16
    {
17
        return true;
18
    }
19
20
    public function rules(): array
21
    {
22
        return [
23
            'invoice_id' => ['required', 'exists:invoices,id'],
24
            'tax_type' => ['required', Rule::in(array_column(TaxType::cases(), 'value'))],
25
            'regime_type' => ['required', Rule::in(array_column(RegimeType::cases(), 'value'))],
26
            'operation_type' => ['required', Rule::in(array_column(OperationType::cases(), 'value'))],
27
            'tax_rate' => ['required', 'numeric', 'min:0'],
28
            'base_amount' => ['required', 'numeric', 'min:0'],
29
            'tax_amount' => ['required', 'numeric', 'min:0'],
30
            'equivalence_surcharge_rate' => ['nullable', 'numeric', 'min:0'],
31
            'equivalence_surcharge_amount' => ['nullable', 'numeric', 'min:0'],
32
            'exemption_code' => ['nullable', 'string', 'max:5'],
33
            'exemption_description' => ['nullable', 'string', 'max:255'],
34
        ];
35
    }
36
}