2323use API \Services ;
2424use Carbon \Carbon ;
2525use Hooks \Manager ;
26- use Models \Cache ;
2726use Models \Module ;
2827
2928class ServicesHook extends Manager
@@ -36,20 +35,24 @@ public function response()
3635 $ limite_scadenze = (new Carbon ())->addDays (60 );
3736 $ message = '' ;
3837
39- $ cache = Cache::where ('name ' , 'Informazioni su Services ' )->first ();
38+ // Recupera le risorse attive una sola volta dalla cache
39+ $ risorse = Services::getRisorseAttive ();
4040
41- if (empty ($ cache ->content )) {
42- $ services = Services::getInformazioni (true );
43- } else {
44- $ services = $ cache ->content ;
41+ // Risorse scadute (expiration_at nel passato o credits < 0)
42+ $ risorse_scadute = $ risorse ->filter (fn ($ item ) => is_array ($ item ) && ((isset ($ item ['expiration_at ' ]) && Carbon::parse ($ item ['expiration_at ' ])->lessThan (Carbon::now ())) || (isset ($ item ['credits ' ]) && $ item ['credits ' ] < 0 )));
43+
44+ if ($ risorse_scadute ->isNotEmpty ()) {
45+ $ message .= tr ('I seguenti servizi sono scaduti:<ul><li> _LIST_ ' , [
46+ '_LIST_ ' => implode ('</li><li> ' , $ risorse_scadute ->pluck ('name ' )->toArray ()),
47+ ]).'</ul> ' ;
4548 }
4649
47- // Filtra i risultati che hanno expiration_at fra oggi e $limite_scadenze
48- $ servizi_in_scadenza = array_filter ( $ services , fn ($ service ) => is_array ($ service ) && isset ($ service ['expiration_at ' ]) && Carbon::parse ($ service ['expiration_at ' ])->between (Carbon::now (), $ limite_scadenze ));
50+ // Risorse in scadenza nei prossimi 60 giorni (o credits < 100)
51+ $ risorse_in_scadenza = $ risorse -> filter ( fn ($ item ) => is_array ($ item ) && (( isset ($ item ['expiration_at ' ]) && Carbon::parse ($ item ['expiration_at ' ])->greaterThan (Carbon::now ()) && Carbon:: parse ( $ item [ ' expiration_at ' ])-> lessThan ( $ limite_scadenze)) || ( isset ( $ item [ ' credits ' ]) && $ item [ ' credits ' ] >= 0 && $ item [ ' credits ' ] < 100 ) ));
4952
50- if (! empty ( $ servizi_in_scadenza )) {
53+ if ($ risorse_in_scadenza -> isNotEmpty ( )) {
5154 $ message .= tr ('I seguenti servizi sono in scadenza:<ul><li> _LIST_ ' , [
52- '_LIST_ ' => implode ('</li><li> ' , array_column ( $ servizi_in_scadenza , 'name ' )),
55+ '_LIST_ ' => implode ('</li><li> ' , $ risorse_in_scadenza -> pluck ( 'name ' )-> toArray ( )),
5356 ]).'</ul> ' ;
5457 }
5558 }
0 commit comments