L'utente deve essere in grado di autenticarsi. (Nota, l'utente autenticato verrà considerato admin). >> metodo isVerifyed() creato nel model User, che controlla che email_verifyed_at non sia null; aggiunta di ['verify' => true] nelle Auth::routes(), aggiunta del middleware 'verified' nei vari controller (tranne in HomeController)
-
L'utente deve essere in grado di creare Clienti
-
L'utente deve essere in grado di creare Ordini ed associarli a Clienti
-
Quando un Ordine viene creato, viene automaticamente creato un Contratto associato al Cliente e all'Ordine. >> All'evento Order::created viene creato un contratto associato all'ordine e al cliente
-
Durante la creazione e modifica di un Ordine, quest'ultimo potrà essere associato ad uno o più Tags già presenti nel sistema >> tabella pivot order_tag e metodo sync sull'array di tags selezionati tramite un campo multi select
-
Quando viene cancellato un Ordine, viene cancellato il Contratto >> public static boot, all' Order::deleted parte la cancellazione del contratto
-
Quando viene cancellato un Cliente, vengono cancellati tutti gli Ordini e tutti i Contratti appartenenti a quel Cliente >> public static boot, al Customer::deleted parte un foreach di cancellazione degli ordini
-
Tutte le cancellazioni devono essere recuperabili >> soft deletes su tutte le tabelle; foreach di cancellazioni al posto di un delete on cascade, per rendere possibile il recupero dei dati cancellati; vista con i customers trashed e rotta restore per ripristinarli; ripristino a cascata degli ordini e contratti relativi
P.S.: fixato il tasto delete non funzionante nell'index dei clienti; fixato il nome del model errato nella relazione belongsTo customer() in App\Models\Order; fixato il protected $fillable mancante in App\Models\Order; fixato flash message non funzionante nel metodo update del Customer
N.B.: per testare il giro completo, oltre al db, va configurarato un MAIL_HOST funzionante nel file .env