first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
<?php namespace App\Services;
use App\Models\Channel;
use App\Models\Episode;
use App\Models\NewsArticle;
use App\Models\Person;
use App\Models\Season;
use App\Models\Title;
use App\Models\Video;
use Common\Admin\Sitemap\BaseSitemapGenerator;
use Common\Core\Contracts\AppUrlGenerator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class SitemapGenerator extends BaseSitemapGenerator
{
protected function getAppQueries(): array
{
return [
app(Title::class)
->where(function (Builder $query) {
$query->where('fully_synced', true)->orWhereNull('tmdb_id');
})
->whereNotNull('name')
->select(['id', 'name', 'updated_at']),
app(Person::class)
->where('fully_synced', true)
->orWhereNull('tmdb_id')
->select(['id', 'name', 'updated_at']),
app(Episode::class)
->whereHas('title')
->with(['title' => fn($q) => $q->compact()])
->select([
'id',
'name',
'title_id',
'season_number',
'episode_number',
'updated_at',
]),
app(Season::class)
->whereHas('title')
->with(['title' => fn($q) => $q->compact()])
->select(['id', 'title_id', 'number']),
Video::select(['id', 'name', 'updated_at']),
Channel::where('public', true)
->where('internal', false)
->select(['id', 'name', 'slug', 'updated_at']),
app(NewsArticle::class)->select([
'id',
'title',
'slug',
'updated_at',
]),
];
}
protected function getAppStaticUrls(): array
{
return ['series', 'movies', 'people', 'news'];
}
protected function addTitleLine(
string $url,
string $updatedAt,
string $name,
) {
$this->addNewLine($url, $updatedAt, $name);
$this->addNewLine("$url/full-credits", $updatedAt, $name);
}
protected function getModelUrl(Model $model): string
{
if ($model instanceof Season) {
return app(AppUrlGenerator::class)->season($model, $model->title);
}
if ($model instanceof Episode) {
return app(AppUrlGenerator::class)->episode($model, $model->title);
}
return parent::getModelUrl($model);
}
}