IdentifierAppService
File: app/Services/Common/IdentifierAppService.php
Layanan terpusat yang menjawab "dalam state apa aplikasi ini?". Setiap pengecekan middleware, keputusan wizard, dan redirect menggunakan layanan ini.
Kenapa Ada
Tanpa layanan ini, setiap controller dan middleware harus mengulang query database yang sama untuk menentukan apakah setup selesai. Layanan ini memusatkan pengecekan tersebut.
Method
setup(): array
Mengembalikan apakah super user (admin) ada.
public static function setup(): array
{
return ['superUser' => User::query()->exists()];
}Dipakai oleh: SetupMiddleware, SetupController::checks()
seeder(): array
Mengembalikan boolean individual untuk setiap dataset yang di-seed.
public static function seeder(): array
{
return [
'geographic' => Setting::query()->where('module', 'core')->where('group', 'location')->exists(),
'gender' => Gender::query()->exists(),
'ethnicity' => Ethnicity::query()->exists(),
'localization' => Localization::query()->exists(),
'religion' => Religion::query()->exists(),
];
}Dipakai oleh: MaintenanceMiddleware, SetupController::checks()
initial(): array
Mengembalikan kesiapan konten untuk setiap fitur publik.
public static function initial(): array
{
return [
'school' => School::query()->exists() && SchoolEducationLevel::query()->exists(),
'news' => Article::query()->exists(),
'ratings' => Rating::query()->exists(),
'banner' => Banner::query()->exists(),
'announcement' => Announcement::query()->exists(),
'faq' => Faq::query()->exists(),
];
}isSetup(): bool
Pengecekan master — semua kondisi harus lulus.
isSeeder(): bool
Sengaja kurang strict dari isSetup(). Begitu database punya data fundamental, user bisa di-redirect ke portal.
isMaintenance(): bool
Cek apakah mode maintenance aktif.