diff --git a/app/Imports/Sheets/PortfoliosSheet.php b/app/Imports/Sheets/PortfoliosSheet.php index 53aa030..39adfd7 100644 --- a/app/Imports/Sheets/PortfoliosSheet.php +++ b/app/Imports/Sheets/PortfoliosSheet.php @@ -50,8 +50,9 @@ class PortfoliosSheet implements ToCollection, WithValidation, WithHeadingRow, S 'title' => $portfolio['title'], 'wishlist' => $portfolio['wishlist'] ?? false, 'notes' => $portfolio['notes'], + 'owner_id' => $this->backupImport->user_id, ]); - + Artisan::queue(SyncDailyChange::class, ['portfolio_id' => $portfolio->id])->delay(30 + ($index * 10)); } } diff --git a/app/Models/Portfolio.php b/app/Models/Portfolio.php index 194b18b..07a5a02 100644 --- a/app/Models/Portfolio.php +++ b/app/Models/Portfolio.php @@ -22,9 +22,18 @@ class Portfolio extends Model 'wishlist', ]; + public static ?string $owner_id = null; + protected static function boot() { parent::boot(); + + static::creating(function ($portfolio) { + + // enable queued jobs to create portfolios with owners + static::$owner_id = auth()->user()?->id ?? $portfolio->attributes['owner_id']; + unset($portfolio->owner_id); + }); static::saved(function ($portfolio) { @@ -99,10 +108,10 @@ class Portfolio extends Model { // make sure we don't remove owner access if (!$portfolio->owner_id) { - $users[auth()->user()->id] = ['owner' => true]; + $owner[static::$owner_id ?? auth()->user()->id] = ['owner' => true]; // save - $portfolio->users()->sync($users); + $portfolio->users()->sync($owner); } }