|
|
- <?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');
- }
- }
|