Przeglądaj źródła

feat(request): validacoes

ebagabee 1 tydzień temu
rodzic
commit
af99ff3506

+ 28 - 0
app/Http/Requests/FnmBaseBracketRequest.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FnmBaseBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'description' => ['required', 'string', 'max:150'],
+            'start_month' => ['required', 'integer', 'min:1'],
+            'end_month'   => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'  => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'description.required' => 'A descrição é obrigatória.',
+            'start_month.required' => 'O mês inicial é obrigatório.',
+            'end_month.gte'        => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'  => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 31 - 0
app/Http/Requests/FranchiseeFnmBracketRequest.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FranchiseeFnmBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'franchisee_id' => ['required', 'integer', 'exists:franchisees,id'],
+            'description'   => ['required', 'string', 'max:150'],
+            'start_month'   => ['required', 'integer', 'min:1'],
+            'end_month'     => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'    => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'franchisee_id.required' => 'O franqueado é obrigatório.',
+            'franchisee_id.exists'   => 'Franqueado não encontrado.',
+            'description.required'   => 'A descrição é obrigatória.',
+            'start_month.required'   => 'O mês inicial é obrigatório.',
+            'end_month.gte'          => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'    => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 31 - 0
app/Http/Requests/FranchiseeMaintenanceBracketRequest.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FranchiseeMaintenanceBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'franchisee_id' => ['required', 'integer', 'exists:franchisees,id'],
+            'description'   => ['required', 'string', 'max:150'],
+            'start_month'   => ['required', 'integer', 'min:1'],
+            'end_month'     => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'    => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'franchisee_id.required' => 'O franqueado é obrigatório.',
+            'franchisee_id.exists'   => 'Franqueado não encontrado.',
+            'description.required'   => 'A descrição é obrigatória.',
+            'start_month.required'   => 'O mês inicial é obrigatório.',
+            'end_month.gte'          => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'    => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 31 - 0
app/Http/Requests/FranchiseeRoyaltiesBracketRequest.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FranchiseeRoyaltiesBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'franchisee_id' => ['required', 'integer', 'exists:franchisees,id'],
+            'description'   => ['required', 'string', 'max:150'],
+            'start_month'   => ['required', 'integer', 'min:1'],
+            'end_month'     => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'    => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'franchisee_id.required' => 'O franqueado é obrigatório.',
+            'franchisee_id.exists'   => 'Franqueado não encontrado.',
+            'description.required'   => 'A descrição é obrigatória.',
+            'start_month.required'   => 'O mês inicial é obrigatório.',
+            'end_month.gte'          => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'    => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 43 - 0
app/Http/Requests/FranchiseeTbrRequest.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FranchiseeTbrRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'franchisee_id'                  => ['required', 'integer', 'exists:franchisees,id'],
+            'contract_id'                    => ['required', 'integer', 'exists:franchisee_contracts,id'],
+            'inhabitant_classification_id'   => ['required', 'integer', 'exists:inhabitant_classifications,id'],
+            'year'                           => ['required', 'integer', 'min:2000', 'max:2100'],
+            'tbr_value'                      => ['required', 'numeric', 'min:0'],
+            'start_date'                     => ['required', 'date'],
+            'invoice_due_day'                => ['required', 'integer', 'min:1', 'max:31'],
+            'base_royalties_percentage'      => ['required', 'numeric', 'min:0', 'max:1'],
+            'base_fnm_percentage'            => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'franchisee_id.required'                => 'O franqueado é obrigatório.',
+            'franchisee_id.exists'                  => 'Franqueado não encontrado.',
+            'contract_id.required'                  => 'O contrato é obrigatório.',
+            'contract_id.exists'                    => 'Contrato não encontrado.',
+            'inhabitant_classification_id.required' => 'A classificação de habitantes é obrigatória.',
+            'inhabitant_classification_id.exists'   => 'Classificação de habitantes não encontrada.',
+            'year.required'                         => 'O ano é obrigatório.',
+            'tbr_value.required'                    => 'O valor da TBR é obrigatório.',
+            'start_date.required'                   => 'A data de início é obrigatória.',
+            'invoice_due_day.required'              => 'O dia de vencimento do boleto é obrigatório.',
+            'invoice_due_day.min'                   => 'O dia de vencimento deve ser entre 1 e 31.',
+            'invoice_due_day.max'                   => 'O dia de vencimento deve ser entre 1 e 31.',
+            'base_royalties_percentage.required'    => 'O percentual base de royalties é obrigatório.',
+            'base_fnm_percentage.required'          => 'O percentual base do FNM é obrigatório.',
+        ];
+    }
+}

+ 28 - 0
app/Http/Requests/InhabitantClassificationRequest.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class InhabitantClassificationRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        $id = $this->route('id');
+
+        return [
+            'description' => ['required', 'string', 'max:150'],
+            'acronym'     => ['required', 'string', 'max:2', "unique:inhabitant_classifications,acronym,{$id}"],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'description.required' => 'A descrição é obrigatória.',
+            'acronym.required'     => 'A sigla é obrigatória.',
+            'acronym.max'          => 'A sigla deve ter no máximo 2 caracteres.',
+            'acronym.unique'       => 'Esta sigla já está em uso.',
+        ];
+    }
+}

+ 28 - 0
app/Http/Requests/MaintenanceBaseBracketRequest.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class MaintenanceBaseBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'description' => ['required', 'string', 'max:150'],
+            'start_month' => ['required', 'integer', 'min:1'],
+            'end_month'   => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'  => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'description.required' => 'A descrição é obrigatória.',
+            'start_month.required' => 'O mês inicial é obrigatório.',
+            'end_month.gte'        => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'  => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 28 - 0
app/Http/Requests/RoyaltiesBaseBracketRequest.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class RoyaltiesBaseBracketRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'description' => ['required', 'string', 'max:150'],
+            'start_month' => ['required', 'integer', 'min:1'],
+            'end_month'   => ['nullable', 'integer', 'min:1', 'gte:start_month'],
+            'percentage'  => ['required', 'numeric', 'min:0', 'max:1'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'description.required' => 'A descrição é obrigatória.',
+            'start_month.required' => 'O mês inicial é obrigatório.',
+            'end_month.gte'        => 'O mês final deve ser maior ou igual ao mês inicial.',
+            'percentage.required'  => 'O percentual é obrigatório.',
+        ];
+    }
+}

+ 30 - 0
app/Http/Requests/TbrCalculationRequest.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class TbrCalculationRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        return [
+            'unit_id'                  => ['required', 'integer', 'exists:units,id'],
+            'revenue_value'            => ['required', 'numeric', 'min:0'],
+            'contract_month_reference' => ['required', 'integer', 'min:1', 'max:60'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'unit_id.required'                  => 'A unidade é obrigatória.',
+            'unit_id.exists'                    => 'Unidade não encontrada.',
+            'revenue_value.required'            => 'O valor do faturamento é obrigatório.',
+            'revenue_value.min'                 => 'O faturamento não pode ser negativo.',
+            'contract_month_reference.required' => 'O mês de referência do contrato é obrigatório.',
+            'contract_month_reference.min'      => 'O mês de referência deve ser entre 1 e 60.',
+            'contract_month_reference.max'      => 'O mês de referência deve ser entre 1 e 60.',
+        ];
+    }
+}

+ 27 - 0
app/Http/Requests/TbrRequest.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class TbrRequest extends FormRequest
+{
+    public function rules(): array
+    {
+        $tbrId = $this->route('id');
+
+        return [
+            'year'      => ['required', 'integer', 'min:2000', 'max:2100', "unique:tbrs,year,{$tbrId}"],
+            'tbr_value' => ['required', 'numeric', 'min:0'],
+        ];
+    }
+
+    public function messages(): array
+    {
+        return [
+            'year.required'      => 'O ano é obrigatório.',
+            'year.unique'        => 'Já existe uma TBR para este ano.',
+            'tbr_value.required' => 'O valor da TBR é obrigatório.',
+        ];
+    }
+}