. */ namespace Modules\Emails; use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Models\Module; use Models\PrintTemplate; use Traits\LocalPoolTrait; use Traits\RecordTrait; class Template extends Model { use SimpleModelTrait; use LocalPoolTrait; use SoftDeletes; use RecordTrait; protected $table = 'em_templates'; protected static $translated_fields = [ 'title', 'body', 'subject', ]; public function getVariablesAttribute() { $dbo = $database = database(); // Lettura delle variabili del modulo collegato $variables = include $this->module->filepath('variables.php'); return (array) $variables; } public static function build($id_module = null, $id_account = null, $name = null) { $model = new static(); $model->id_module = $id_module; $model->id_account = $id_account; $model->name = $name; $model->save(); return $model; } /* Relazioni Eloquent */ public function module() { return $this->belongsTo(Module::class, 'id_module'); } public function account() { return $this->belongsTo(Account::class, 'id_account')->withTrashed(); } public function prints() { return $this->belongsToMany(PrintTemplate::class, 'em_print_template', 'id_template', 'id_print'); } public function translations() { return $this->hasMany(TemplateLang::class, 'id'); } public function getModuleAttribute() { return $this->belongsTo(Module::class, 'id_module')->first(); } public static function getTranslatedFields() { return self::$translated_fields; } }