Skip to content

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.

php
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.

php
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.

php
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.