<?php
|
|
namespace App;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use App\Events\NewTweetEvent;
|
|
use DB;
|
|
|
|
class Tweet extends Model
|
|
{
|
|
protected $fillable = [
|
|
'tweet_id', 'player_id', 'team_id', 'text', 'photo', 'claimed_at', 'processed', 'mission_id', 'tweet_date',
|
|
'm1_transit_line_id', 'm1_non_trimet',
|
|
'm2_transit_center_id', 'm2_with_other_team',
|
|
'm3_complete', 'm4_complete', 'm5_complete', 'm5_tip',
|
|
'm6_complete', 'm7_document_id'
|
|
];
|
|
|
|
public function team() {
|
|
return $this->belongsTo('\App\Team');
|
|
}
|
|
|
|
public function player() {
|
|
return $this->belongsTo('\App\Player');
|
|
}
|
|
|
|
public function mission() {
|
|
return $this->belongsTo('\App\Mission');
|
|
}
|
|
|
|
public static function claimed_timeout() {
|
|
// time out tweets if they aren't processed after the specified time
|
|
$timeout = 520;
|
|
$tweets = Tweet::where('claimed_at', '<', date('Y-m-d H:i:s', time()-$timeout))->get();
|
|
foreach($tweets as $tweet) {
|
|
$tweet->claimed_at = null;
|
|
$tweet->save();
|
|
event(new NewTweetEvent($tweet));
|
|
}
|
|
}
|
|
|
|
public static function queued() {
|
|
return Tweet::whereNull('claimed_at')->where('processed', 0)->where('mission_id', '>', 0)->orderBy('tweet_date', 'asc');
|
|
}
|
|
}
|