<?php namespace App\Jobs\ProfilePipeline; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App\Profile; use App\Status; use App\Services\AccountService; class DecrementPostCount implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $id; /** * Create a new job instance. * * @return void */ public function __construct($id) { $this->id = $id; } /** * Execute the job. * * @return void */ public function handle() { $id = $this->id; $profile = Profile::find($id); if(!$profile) { return 1; } if($profile->updated_at && $profile->updated_at->lt(now()->subDays(30))) { $profile->status_count = Status::whereProfileId($id)->whereNull(['in_reply_to_id', 'reblog_of_id'])->count(); $profile->save(); AccountService::del($id); } else { $profile->status_count = $profile->status_count ? $profile->status_count - 1 : 0; $profile->save(); AccountService::del($id); } return 1; } }