Improvements: fix duplicate seeder, add missing seeders, remove redundant $with, add migration down(), optimize queries

This commit is contained in:
root
2026-06-08 18:33:24 +02:00
parent 9bb2e4246b
commit 6eeb85fcf2
9 changed files with 35 additions and 15 deletions
@@ -22,7 +22,7 @@ class ContentApiController extends Controller
public function settings(): JsonResponse public function settings(): JsonResponse
{ {
$settings = Cache::remember('api_all_settings', 60, fn () => WebsiteSetting::all()->pluck('value', 'key')); $settings = Cache::remember('api_all_settings', 60, fn () => WebsiteSetting::pluck('value', 'key'));
return response()->json(['data' => $settings]); return response()->json(['data' => $settings]);
} }
@@ -29,6 +29,8 @@ class ArticleController extends Controller
public function show(WebsiteArticle $article): View public function show(WebsiteArticle $article): View
{ {
$article->load('user:id,username,look');
$reactions = $article->reactions() $reactions = $article->reactions()
->with('user:id,username') ->with('user:id,username')
->get(); ->get();
@@ -111,7 +111,8 @@ class InstallationController extends Controller
private function getSettingsForStep(int $step): Collection private function getSettingsForStep(int $step): Collection
{ {
$settingsData = array_chunk(WebsiteSetting::all()->pluck('key')->toArray(), (int) ceil(WebsiteSetting::count() / 4)); $allKeys = WebsiteSetting::pluck('key')->toArray();
$settingsData = array_chunk($allKeys, (int) ceil(count($allKeys) / 4));
$settings = match ($step) { $settings = match ($step) {
1 => $settingsData[0] ?? [], 1 => $settingsData[0] ?? [],
-4
View File
@@ -44,10 +44,6 @@ class WebsiteArticle extends Model
use BelongsToUser; use BelongsToUser;
use HasSlug, \Illuminate\Database\Eloquent\Factories\HasFactory, SoftDeletes; use HasSlug, \Illuminate\Database\Eloquent\Factories\HasFactory, SoftDeletes;
/** @var array<int, string> */
#[\Override]
protected $with = ['user'];
protected static function newFactory() protected static function newFactory()
{ {
return WebsiteArticleFactory::new(); return WebsiteArticleFactory::new();
@@ -41,10 +41,6 @@ class WebsiteHelpCenterTicket extends Model
#[\Override] #[\Override]
protected $guarded = ['id', 'created_at', 'updated_at', 'user_id', 'status', 'subject', 'category_id']; protected $guarded = ['id', 'created_at', 'updated_at', 'user_id', 'status', 'subject', 'category_id'];
/** @var array<int, string> */
#[\Override]
protected $with = ['user', 'category'];
#[\Override] #[\Override]
public $timestamps = false; public $timestamps = false;
-4
View File
@@ -13,10 +13,6 @@ class RadioShout extends Model
use BelongsToUser; use BelongsToUser;
use HasFactory; use HasFactory;
/** @var array<int, string> */
#[\Override]
protected $with = ['user'];
#[\Override] #[\Override]
protected $fillable = [ protected $fillable = [
'user_id', 'user_id',
@@ -13,4 +13,12 @@ return new class extends Migration
$table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
}); });
} }
public function down(): void
{
Schema::table('website_articles', function (Blueprint $table) {
$table->dropForeign(['user_id']);
$table->string('user_id')->change();
});
}
}; };
@@ -12,4 +12,11 @@ return new class extends Migration
$table->text('value')->change(); $table->text('value')->change();
}); });
} }
public function down(): void
{
Schema::table('website_settings', function (Blueprint $table) {
$table->string('value')->change();
});
}
}; };
+15 -1
View File
@@ -31,13 +31,27 @@ class DatabaseSeeder extends Seeder
WebsiteRuleCategorySeeder::class, WebsiteRuleCategorySeeder::class,
WebsiteRuleSeeder::class, WebsiteRuleSeeder::class,
WebsiteHelperCenterCategorySeeder::class, WebsiteHelperCenterCategorySeeder::class,
WebsiteHelperCenterCategorySeeder::class,
// Values // Values
WebsiteRareValuesCategorySeeder::class, WebsiteRareValuesCategorySeeder::class,
// Housekeeping permissions // Housekeeping permissions
HousekeepingPermissionSeeder::class, HousekeepingPermissionSeeder::class,
// Features
WebsiteArticleFeatureSeeder::class,
// Games
GameRankSeeder::class,
DailyChallengeSeeder::class,
// Radio
RadioSettingsSeeder::class,
RadioContestSeeder::class,
RadioGiveawaySeeder::class,
RadioListenerPointSeeder::class,
RadioSongRequestSeeder::class,
RadioSongVoteSeeder::class,
]); ]);
// \App\Models\User::factory(10)->create(); // \App\Models\User::factory(10)->create();