Implement academy analytics, billing, and web stories updates

This commit is contained in:
2026-05-26 07:27:29 +02:00
parent 456c3d6bb0
commit 0b33a1b074
177 changed files with 27360 additions and 2685 deletions

View File

@@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Carbon;
@@ -197,6 +198,16 @@ class World extends Model
return $this->hasMany(WorldRewardGrant::class)->orderByDesc('granted_at')->orderByDesc('id');
}
public function webStories(): HasMany
{
return $this->hasMany(WorldWebStory::class)->orderByDesc('published_at')->orderByDesc('id');
}
public function publishedWebStory(): HasOne
{
return $this->hasOne(WorldWebStory::class)->visible()->latest('published_at')->latest('id');
}
public function scopePublished(Builder $query): Builder
{
return $query