Просмотр исходного кода

feat(student_contracts): adiciona logica de descongelar contrato.

ebagabee 1 месяц назад
Родитель
Сommit
9d4d594e8b

+ 6 - 0
app/Http/Controllers/StudentContractController.php

@@ -57,6 +57,12 @@ public function updateStatus(Request $request, int $id): JsonResponse
         return $this->successResponse(payload: new StudentContractResource($item), message: __('messages.updated'));
     }
 
+    public function unfreeze(int $id): JsonResponse
+    {
+        $item = $this->service->unfreeze($id);
+        return $this->successResponse(payload: new StudentContractResource($item), message: __('messages.updated'));
+    }
+
     public function destroy(int $id): JsonResponse
     {
         $this->service->delete($id);

+ 12 - 0
app/Services/StudentContractService.php

@@ -82,6 +82,18 @@ public function updateStatus(int $id, string $status): ?StudentContract
         return $model->fresh();
     }
 
+    public function unfreeze(int $id): ?StudentContract
+    {
+        $model = $this->findById($id);
+
+        if (!$model) {
+            return null;
+        }
+
+        $model->update(['status' => 'active']);
+        return $model->fresh();
+    }
+
     public function delete(int $id): bool
     {
         $model = $this->findById($id);

+ 2 - 0
routes/authRoutes/student_contract.php

@@ -16,5 +16,7 @@
 
     Route::patch('/{id}/status', 'updateStatus');
 
+    Route::post('/{id}/unfreeze', 'unfreeze');
+
     Route::delete('/{id}', 'destroy');
 });