Initial commit: Animexe Laravel platform
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Analytics;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
|
||||
class AiQuery extends Model
|
||||
{
|
||||
public $timestamps = false;
|
||||
|
||||
protected $table = 'analytics_ai_queries';
|
||||
|
||||
protected $fillable = [
|
||||
'user_id', 'query_type', 'query_text', 'created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function user() { return $this->belongsTo(User::class); }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Analytics;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class BotLog extends Model
|
||||
{
|
||||
protected $table = 'analytics_bot_logs';
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'ip', 'user_agent', 'path', 'method', 'action', 'bot_name', 'created_at',
|
||||
];
|
||||
|
||||
protected $casts = ['created_at' => 'datetime'];
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Analytics;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
use App\Models\Anime;
|
||||
|
||||
class PageView extends Model
|
||||
{
|
||||
public $timestamps = false;
|
||||
|
||||
protected $table = 'analytics_pageviews';
|
||||
|
||||
protected $fillable = [
|
||||
'user_id', 'session_id', 'url', 'page_type',
|
||||
'anime_id', 'episode_id', 'ip', 'country', 'city',
|
||||
'device', 'browser', 'referrer', 'is_bot', 'user_agent',
|
||||
'time_on_page', 'created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function user() { return $this->belongsTo(User::class); }
|
||||
public function anime() { return $this->belongsTo(Anime::class); }
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Analytics;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
|
||||
class VisitorSession extends Model
|
||||
{
|
||||
protected $table = 'analytics_sessions';
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'session_id', 'user_id', 'ip', 'country', 'city',
|
||||
'device', 'browser', 'referrer', 'landing_page',
|
||||
'pages_visited', 'total_seconds', 'is_bot', 'bot_type',
|
||||
'user_agent', 'started_at', 'last_seen_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'is_bot' => 'boolean',
|
||||
'started_at' => 'datetime',
|
||||
'last_seen_at'=> 'datetime',
|
||||
];
|
||||
|
||||
public function user() { return $this->belongsTo(User::class); }
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Analytics;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
use App\Models\Anime;
|
||||
use App\Models\Episode;
|
||||
|
||||
class WatchEvent extends Model
|
||||
{
|
||||
public $timestamps = false;
|
||||
|
||||
protected $table = 'analytics_watch_events';
|
||||
|
||||
protected $fillable = [
|
||||
'user_id', 'session_id', 'anime_id', 'episode_id',
|
||||
'season_number', 'episode_number',
|
||||
'seconds_watched', 'total_seconds', 'percent_complete',
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'created_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function user() { return $this->belongsTo(User::class); }
|
||||
public function anime() { return $this->belongsTo(Anime::class); }
|
||||
public function episode() { return $this->belongsTo(Episode::class); }
|
||||
}
|
||||
Reference in New Issue
Block a user