'datetime', ]; public function getLangAttribute() { if(!empty($this->attributes['lang'])) { return trim($this->attributes['lang']); } return 'en'; } // ------------------------------------------------------------------------- // ----| Relations |-------------------------------------------------------- // ------------------------------------------------------------------------- /** * Documents added to user's collection. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function documents() { return $this->hasManyThrough(Bookmark::class, Folder::class); } /** * Highlights registered by this user. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function highlights() { return $this->hasMany(Highlight::class); } /** * Associated history entries. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function userHistoryEntries() { return $this->hasMany(HistoryEntry::class); } /** * Permissions affected to this user. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function permissions() { return $this->hasMany(Permission::class); } // ------------------------------------------------------------------------- // ----| Methods |---------------------------------------------------------- // ------------------------------------------------------------------------- /** * Get the user's preferred locale. * * @return string */ public function preferredLocale() { return $this->lang; } /** * Import initial set of data. */ public function importInitialData(Group $group) { $importer = new Importer(); $importer->forUser($this)->inGroup($group)->fromFile(resource_path('initial_data.json'))->import(); } }