Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Config;
- use App\Services\ConfigService;
- use Jagr\Exceptions\AppException;
- abstract class InstansiConfig
- {
- /**
- * Kode instansi
- *
- * @var int
- */
- public int $kode;
- /**
- * Domain instansi
- *
- * @var string
- */
- public string $domain;
- /**
- * Kode propinsi dan kota instansi
- * Jika lingkup propinsi maka kotanya null
- * Jika lingkup nasional maka propinsinya juga null
- */
- public int|null $kPropinsi;
- public int|null $kKota;
- public string $timezonaSuffix;
- public string $timezonaName;
- public int $timezonaOffset;
- /**
- * Konfigurasi jenjang seleksi yang berisi jenjang asalnya dan tujuannya
- * <jenjang_id> => [
- * 'asal' => <k_jenjang>,
- * 'tujuan' => [<k_jenjang>,<k_jenjang>],
- * ]
- *
- * @var array<int, array{
- * asal: int,
- * tujuan: array<int>,
- * }>
- */
- public array $jenjangs;
- /**
- * Daftar jalur dijenjang
- * <jenjang_id> => [
- * <jalur_id>,
- * <jalur_id>,
- * ]
- *
- * @var array<int, array<int>>
- */
- public array $jalurs;
- /**
- * Daftar label tahap
- * <jenjang_id> => [
- * <jalur_id> => [
- * <tahap> => '<label>',
- * <tahap> => '<label>',
- * ],
- * <jalur_id> => [
- * <tahap> => '<label>',
- * ],
- * ]
- *
- * @var array<int, array<int, array<int, string>>>
- */
- public array $labelTahaps;
- /**
- * Daftar urutan seleksi
- * [
- * [<jenjangId>, <jalurId>, <tahap>],
- * ]
- *
- * @var array<int, array{0: int, 1: int, 2: int}>
- */
- public array $urutanSeleksi;
- /**
- * Daftar limpahan kuota
- * <jenjang_id_sumber> => [
- * <jalur_id_sumber> => [
- * <tahap_sumber> => [
- * 'jalur_id' => <jalur_id_tujuan>,
- * 'tahap' => <jalur_id_tujuan>,
- * 'kapasitas_id' => <kapasitas_id_tujuan,
- * 'is_realtime' => <bool>,
- * 'is_tambah' => <bool>,
- * 'is_simpan' => <bool>,
- * ]
- * ]
- * ]
- *
- * @var array<int, array<int, array<int, array{
- * jalur_id: int,
- * tahap: int,
- * kapasitas_id: int,
- * is_realtime: bool,
- * is_tambah: bool,
- * is_simpan: bool,
- * }>>>
- */
- public array $limpahanKuota;
- /**
- * Mmode update status seleksi di engine
- * null = ikut konfigurasi default
- * true = menggunakan update select
- * false = menggunakan loop update
- * mengoverride di default
- */
- public bool|null $batchUpdateStatusSeleksi;
- public int $tahun;
- /**
- * @var array<int, array{
- * k_jenjang: int,
- * jalur_id: int,
- * tahap: int,
- * }>
- */
- public array $urutanJalur = [];
- /**
- * Konfigurasi instansi yang sedang aktif
- *
- * @throws AppException
- */
- public static function current(): InstansiConfig
- {
- if (!app()->resolved(InstansiConfig::class)) {
- throw new AppException('Instansi belum disetup/aktifkan');
- }
- return app(InstansiConfig::class);
- }
- /**
- * Konfigurasi jalur berdasarkan kode/label jenjang, jalur dan tahap
- *
- * @throws AppException
- */
- public function jalurConfig(string|int $jenjang, string|int $jalur, int $tahap = 1): JalurConfig
- {
- return app(ConfigService::class)->jalur($this->domain, $jenjang, $jalur, $tahap);
- }
- /**
- * Konfigurasi jenjang berdasarkan kode/label jenjang
- *
- * @throws AppException
- */
- public function jenjangConfig(string|int $jenjangSekolah): JenjangConfig
- {
- return app(ConfigService::class)->jenjang($this->domain, $jenjangSekolah);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment