Example #1
0
 public static function trackBanner(Banner $banner, Stream $stream, StreamTimelog $streamTimelog)
 {
     $price = $streamTimelog->price();
     $duration = $streamTimelog->duration();
     $pivotBannerStream = BannerStream::whereBannerId($banner->id)->whereStreamId($stream->id)->first();
     $pivotBannerStream->minutes = $pivotBannerStream->minutes + $duration;
     $pivotBannerStream->viewers = $pivotBannerStream->viewers + $streamTimelog->viewers;
     $pivotBannerStream->amount = $pivotBannerStream->amount + $price;
     $pivotBannerStream->save();
     $client = $banner->client;
     $client->balance_blocked = $client->balance_blocked + $price;
     $client->save();
     $usedAmount = BannerStream::whereBannerId($banner->id)->sum('amount');
     if ($banner->amount_limit <= $usedAmount) {
         $banner->is_active = 0;
         $banner->status = 'finished';
         $banner->save();
         NotificationMapper::bannerFinished($banner);
     }
     if ($client->availableBalance() <= 0) {
         $banner->is_active = 0;
         $banner->status = 'finished';
         $banner->save();
         NotificationMapper::emptyBalance($banner);
     }
     return $pivotBannerStream;
 }
Example #2
0
 public function totalAmount()
 {
     $sum = BannerStream::whereBannerId($this->id)->sum('amount');
     return $sum;
 }
Example #3
0
 public static function getPivot(Banner $banner, Stream $stream)
 {
     return BannerStream::whereBannerId($banner->id)->whereStreamId($stream->id)->first();
 }