42 lines
2.3 KiB
PHP
42 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Position;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class PositionSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Seed default election staffing positions.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$positions = [
|
|
['code' => 'PPM', 'name' => 'Penyelia Pusat Mengundi', 'scope' => 'pusat', 'is_public_applyable' => false, 'is_assignable' => true, 'allows_dual_role' => true, 'sort_order' => 10],
|
|
['code' => 'KTM', 'name' => 'Ketua Tempat Mengundi', 'scope' => 'saluran', 'is_public_applyable' => true, 'is_assignable' => true, 'allows_dual_role' => true, 'sort_order' => 20],
|
|
['code' => 'KPDP', 'name' => 'Kerani Penyemak Daftar Pemilih', 'scope' => 'saluran', 'is_public_applyable' => true, 'is_assignable' => true, 'allows_dual_role' => false, 'sort_order' => 30],
|
|
['code' => 'KP', 'name' => 'Kerani Pengundian', 'scope' => 'saluran', 'is_public_applyable' => true, 'is_assignable' => true, 'allows_dual_role' => false, 'sort_order' => 40],
|
|
['code' => 'PAPM', 'name' => 'Penolong Penyelia Pusat Mengundi', 'scope' => 'pusat', 'is_public_applyable' => true, 'is_assignable' => true, 'allows_dual_role' => false, 'sort_order' => 50],
|
|
['code' => 'POLIS', 'name' => 'Polis Pengiring', 'scope' => 'external', 'is_public_applyable' => false, 'is_assignable' => false, 'allows_dual_role' => false, 'sort_order' => 60],
|
|
['code' => 'KKM', 'name' => 'Wakil KKM', 'scope' => 'external', 'is_public_applyable' => false, 'is_assignable' => false, 'allows_dual_role' => false, 'sort_order' => 70],
|
|
['code' => 'JKM', 'name' => 'Wakil JKM', 'scope' => 'external', 'is_public_applyable' => false, 'is_assignable' => false, 'allows_dual_role' => false, 'sort_order' => 80],
|
|
['code' => 'CALON_SIMPANAN', 'name' => 'Calon Simpanan', 'scope' => 'saluran', 'is_public_applyable' => false, 'is_assignable' => true, 'allows_dual_role' => false, 'sort_order' => 90],
|
|
];
|
|
|
|
foreach ($positions as $position) {
|
|
Position::query()->updateOrCreate(
|
|
['code' => $position['code']],
|
|
$position,
|
|
);
|
|
}
|
|
|
|
Position::query()
|
|
->where('code', 'CALON_SIMPANAN')
|
|
->update([
|
|
'code' => 'CALON_TAMBAHAN',
|
|
'name' => 'Calon Tambahan',
|
|
]);
|
|
}
|
|
}
|