@@ -44,14 +44,14 @@ public function handle(): void
4444 return ;
4545 }
4646
47- // Default to 1_year if retention_period is not set
48- $ retentionPeriod = $ process ->properties ['retention_period ' ] ?? '1_year ' ;
47+ // Default to one_year if retention_period is not set
48+ $ retentionPeriod = $ process ->properties ['retention_period ' ] ?? 'one_year ' ;
4949 $ retentionMonths = match ($ retentionPeriod ) {
5050 'six_months ' => 6 ,
5151 'one_year ' => 12 ,
5252 'three_years ' => 36 ,
5353 'five_years ' => 60 ,
54- default => 12 , // Default to 1_year
54+ default => 12 , // Default to one_year
5555 };
5656
5757 // Default retention_updated_at to now if not set
@@ -104,6 +104,19 @@ public function handle(): void
104104 ->all ();
105105
106106 if ($ requestIds === []) {
107+ // If no ProcessRequest has case_number matching these CaseNumber ids, still remove case_numbers and UI entries
108+ Log::warning ('CaseRetentionJob: No process requests found for case numbers, removing case_numbers and cases_started/participated ' , [
109+ 'case_numbers ' => $ caseNumbers ,
110+ 'process_id ' => $ this ->processId ,
111+ ]);
112+ DB ::transaction (function () use ($ caseNumbers ) {
113+ CaseNumber::whereIn ('id ' , $ caseNumbers )->delete ();
114+ foreach ($ caseNumbers as $ caseNumber ) {
115+ $ this ->deleteCasesStarted ((string ) $ caseNumber );
116+ $ this ->deleteCasesParticipated ((string ) $ caseNumber );
117+ }
118+ });
119+
107120 return ;
108121 }
109122
0 commit comments