Initial commit: Animexe Laravel platform

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 00:01:48 +03:00
co-authored by Claude Opus 4.8
commit a63515cfc6
366 changed files with 74773 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class WatchParty extends Model
{
protected $fillable = [
'room_code', 'host_user_id', 'episode_id',
'current_sec', 'is_playing', 'synced_at',
'max_members', 'is_private', 'password',
];
protected $casts = [
'is_playing' => 'boolean',
'is_private' => 'boolean',
'current_sec'=> 'integer',
'synced_at' => 'datetime',
];
public function host() { return $this->belongsTo(User::class, 'host_user_id'); }
public function episode() { return $this->belongsTo(Episode::class); }
public function members() { return $this->hasMany(WatchPartyMember::class, 'party_id'); }
public function activeMembers()
{
return $this->members()->where('last_ping', '>=', now()->subSeconds(30));
}
public static function generateCode(): string
{
do {
$code = strtoupper(Str::random(6));
} while (self::where('room_code', $code)->exists());
return $code;
}
}