. */ namespace Plugins\ComponentiImpianti; use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; use Modules\Articoli\Articolo; use Modules\Impianti\Impianto; use Modules\Interventi\Intervento; /* * Classe per la gestione dei Componenti degli Impianti. * * @since 2.4.25 */ class Componente extends Model { use SimpleModelTrait; protected $table = 'my_componenti'; protected $dates = [ 'data_registrazione', 'data_sostituzione', 'data_installazione', 'data_rimozione', ]; /** * Crea un nuovo Componente per Impianti. * * @param $data_registrazione * * @return self */ public static function build(Impianto $impianto, Articolo $articolo, $data_registrazione) { $model = new static(); $model->impianto()->associate($impianto); $model->articolo()->associate($articolo); $model->data_registrazione = $data_registrazione; $model->save(); return $model; } // Relazioni Eloquent public function articolo() { return $this->belongsTo(Articolo::class, 'id_articolo'); } public function impianto() { return $this->belongsTo(Impianto::class, 'id_impianto'); } public function sostituzione() { return $this->hasMany(self::class, 'id_sostituzione'); } public function intervento() { return $this->hasMany(Intervento::class, 'id_intervento'); } }