Quellcode durchsuchen

feat(treasury): add validation to launch request

Validates account_id, transaction_type (entrada/saida), description and positive amount.
ebagabee vor 1 Monat
Ursprung
Commit
5cf9681b9c
1 geänderte Dateien mit 10 neuen und 21 gelöschten Zeilen
  1. 10 21
      app/Http/Requests/TreasuryLaunchRequest.php

+ 10 - 21
app/Http/Requests/TreasuryLaunchRequest.php

@@ -3,32 +3,21 @@
 namespace App\Http\Requests;
 namespace App\Http\Requests;
 
 
 use Illuminate\Foundation\Http\FormRequest;
 use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Validation\Rule;
 
 
 class TreasuryLaunchRequest extends FormRequest
 class TreasuryLaunchRequest extends FormRequest
 {
 {
     public function rules(): array
     public function rules(): array
     {
     {
-        $rules = [
-            // Add your validation rules here
-            //'field' => 'sometimes|string|max:255',
-        ];
-
-        // Different rules for creation
-        //if ($this->isMethod('POST')) {
-            // Make fields required if needed
-            // $rules['field'] = 'required|string|max:255';
-        //}
+        $isCreate = $this->isMethod('POST');
 
 
-        return $rules;
+        return [
+            'account_id'                => [$isCreate ? 'required' : 'sometimes', 'integer', 'exists:treasury_accounts,id'],
+            'transaction_type'          => [$isCreate ? 'required' : 'sometimes', 'string', Rule::in(['entrada', 'saida'])],
+            'description'               => [$isCreate ? 'required' : 'sometimes', 'string', 'max:1000'],
+            'amount'                    => [$isCreate ? 'required' : 'sometimes', 'numeric', 'gt:0'],
+            'launch_date'               => ['sometimes', 'date'],
+            'financial_plan_account_id' => ['nullable', 'integer', 'exists:financial_plan_accounts,id'],
+        ];
     }
     }
-
-    /**
-    * Add custom messages when needed
-    * public function messages(): array
-    * {
-    *   return [
-    *        'field.required' => __('message.algo'),
-    *    ];
-    * }
-    */
 }
 }