11<?php
22
3+ declare (strict_types=1 );
4+
35namespace App \Http \Controllers ;
46
7+ use App \Models \LegalCase ;
8+ use App \Models \CaseType ;
59use Illuminate \Http \Request ;
10+ use Inertia \Inertia ;
11+ use Illuminate \Http \RedirectResponse ;
12+ use Illuminate \Support \Facades \Redirect ;
613use Illuminate \Support \Facades \Log ;
714
8- class LegalCaseController extends Controller
15+ final class LegalCaseController extends Controller
916{
1017 /**
1118 * Display a listing of the resource.
1219 */
1320 public function index ()
1421 {
15- //
22+ $ legalCases = LegalCase::with (['caseType ' , 'individuals ' , 'legalEntities ' ])
23+ ->orderBy ('created_at ' , 'desc ' )
24+ ->get ();
25+
26+ return Inertia::render ('LegalCases/Index ' , [
27+ 'legalCases ' => $ legalCases ,
28+ ]);
1629 }
1730
1831 /**
1932 * Show the form for creating a new resource.
2033 */
2134 public function create ()
2235 {
23- //
36+ $ caseTypes = CaseType::orderBy ('name ' )->get ();
37+ return Inertia::render ('LegalCases/Create ' , [
38+ 'caseTypes ' => $ caseTypes ,
39+ ]);
2440 }
2541
2642 /**
2743 * Store a newly created resource in storage.
2844 */
29- public function store (Request $ request )
45+ public function store (Request $ request ): RedirectResponse
3046 {
31- //
47+ $ validated = $ request ->validate ([
48+ 'code ' => 'required|string|max:255|unique:legal_cases ' ,
49+ 'entry_date ' => 'required|date ' ,
50+ 'case_type_id ' => 'required|exists:case_types,id ' ,
51+ ]);
52+
53+ LegalCase::create ($ validated );
54+
55+ return Redirect::route ('legal-cases.index ' )
56+ ->with ('success ' , 'Expediente creado exitosamente. ' );
3257 }
3358
3459 /**
3560 * Display the specified resource.
3661 */
3762 public function show (string $ id )
3863 {
39- $ legalCase = \ App \ Models \ LegalCase::with (['caseType ' , 'individuals ' , 'legalEntities ' ])->findOrFail ($ id );
64+ $ legalCase = LegalCase::with (['caseType ' , 'individuals ' , 'legalEntities ' ])->findOrFail ($ id );
4065 $ events = $ legalCase ->events ()->with ('user ' )->orderByDesc ('date ' )->get ();
4166
4267 // Obtener la próxima fecha importante directamente de la base de datos
@@ -63,7 +88,7 @@ public function show(string $id)
6388 ];
6489 })->toArray ());
6590
66- return \ Inertia \ Inertia::render ('LegalCases/Show ' , [
91+ return Inertia::render ('LegalCases/Show ' , [
6792 'legalCase ' => $ legalCase ,
6893 'events ' => $ events ,
6994 'nextImportantDate ' => $ nextImportantDate ? [
@@ -79,31 +104,52 @@ public function show(string $id)
79104 */
80105 public function edit (string $ id )
81106 {
82- //
107+ $ legalCase = LegalCase::with (['caseType ' ])->findOrFail ($ id );
108+ $ caseTypes = CaseType::orderBy ('name ' )->get ();
109+
110+ return Inertia::render ('LegalCases/Edit ' , [
111+ 'legalCase ' => $ legalCase ,
112+ 'caseTypes ' => $ caseTypes ,
113+ ]);
83114 }
84115
85116 /**
86117 * Update the specified resource in storage.
87118 */
88- public function update (Request $ request , string $ id )
119+ public function update (Request $ request , string $ id ): RedirectResponse
89120 {
90- //
121+ $ legalCase = LegalCase::findOrFail ($ id );
122+
123+ $ validated = $ request ->validate ([
124+ 'code ' => 'required|string|max:255|unique:legal_cases,code, ' . $ id ,
125+ 'entry_date ' => 'required|date ' ,
126+ 'case_type_id ' => 'required|exists:case_types,id ' ,
127+ ]);
128+
129+ $ legalCase ->update ($ validated );
130+
131+ return Redirect::route ('legal-cases.index ' )
132+ ->with ('success ' , 'Expediente actualizado exitosamente. ' );
91133 }
92134
93135 /**
94136 * Remove the specified resource from storage.
95137 */
96- public function destroy (string $ id )
138+ public function destroy (string $ id ): RedirectResponse
97139 {
98- //
140+ $ legalCase = LegalCase::findOrFail ($ id );
141+ $ legalCase ->delete ();
142+
143+ return Redirect::route ('legal-cases.index ' )
144+ ->with ('success ' , 'Expediente eliminado exitosamente. ' );
99145 }
100146
101147 /**
102148 * Obtener historial de estatus del expediente.
103149 */
104150 public function statuses (string $ id )
105151 {
106- $ legalCase = \ App \ Models \ LegalCase::findOrFail ($ id );
152+ $ legalCase = LegalCase::findOrFail ($ id );
107153 $ statuses = $ legalCase ->statuses ()->orderByDesc ('created_at ' )->get ();
108154 return response ()->json ($ statuses );
109155 }
@@ -117,7 +163,7 @@ public function setStatus(Request $request, string $id)
117163 'status ' => 'required|string|max:255 ' ,
118164 'reason ' => 'nullable|string|max:1000 ' ,
119165 ]);
120- $ legalCase = \ App \ Models \ LegalCase::findOrFail ($ id );
166+ $ legalCase = LegalCase::findOrFail ($ id );
121167 $ legalCase ->setStatus ($ request ->input ('status ' ), $ request ->input ('reason ' ));
122168 return response ()->json (['success ' => true ]);
123169 }
0 commit comments