feat: Phase 1 bootstrap — adapt BukidBountyApp as BarangaySystem
Some checks failed
tests / PHP 8.2 (swoole-5.1.6) (push) Has been cancelled
tests / PHP 8.3 (swoole-5.1.6) (push) Has been cancelled
tests / PHP 8.4 (swoole-6.0) (push) Has been cancelled

- Replace UserTypes with barangay roles (super_admin, punong_barangay,
  kagawad, secretary, treasurer, sk_chairperson, sk_councilor, tanod,
  bhw, daycare_worker, staff, resident, audit)
- Replace UserActions with barangay-specific permissions (residents,
  households, blotters, documents, fee payments, projects, budget)
- Replace modules config with barangay modules (residents, households,
  blotters, documents, certificates, projects, budget, announcements,
  accounting, chapters, qr_payment, subscriptions, landing_pages)
- Update app name, seeders, and landing page to barangay defaults
- Add new enums: DocumentStatus, BlotterStatus, PaymentStatus
- Add 6 new migrations: residents, households, blotters, document
  requests, projects, budget
- Add RequestTypeSeeder with default certificate fee schedule
- Update README with BarangaySystem stack, roles, and remotes
This commit is contained in:
Jonathan Sykes
2026-06-06 18:47:20 +08:00
parent eb4a5731fb
commit 19fec0933b
19 changed files with 797 additions and 1096 deletions

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Enums\Barangay;
enum BlotterStatus: string
{
case FILED = 'FILED';
case FOR_HEARING = 'FOR_HEARING';
case SETTLED = 'SETTLED';
case RESOLVED = 'RESOLVED';
case DISMISSED = 'DISMISSED';
case ENDORSED = 'ENDORSED';
public function label(): string
{
return match($this) {
self::FILED => 'Filed',
self::FOR_HEARING => 'For Hearing',
self::SETTLED => 'Settled',
self::RESOLVED => 'Resolved',
self::DISMISSED => 'Dismissed',
self::ENDORSED => 'Endorsed to Higher Authority',
};
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Enums\Barangay;
enum DocumentStatus: string
{
case DRAFT = 'DRAFT';
case PENDING_PAYMENT = 'PENDING_PAYMENT';
case PAID = 'PAID';
case PROCESSING = 'PROCESSING';
case READY = 'READY';
case CLAIMED = 'CLAIMED';
case CANCELLED = 'CANCELLED';
public function label(): string
{
return match($this) {
self::DRAFT => 'Draft',
self::PENDING_PAYMENT => 'Pending Payment',
self::PAID => 'Paid',
self::PROCESSING => 'Processing',
self::READY => 'Ready for Pickup',
self::CLAIMED => 'Claimed',
self::CANCELLED => 'Cancelled',
};
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Enums\Barangay;
enum PaymentStatus: string
{
case PENDING = 'PENDING';
case PAID = 'PAID';
case REFUNDED = 'REFUNDED';
case WAIVED = 'WAIVED';
public function label(): string
{
return match($this) {
self::PENDING => 'Pending',
self::PAID => 'Paid',
self::REFUNDED => 'Refunded',
self::WAIVED => 'Waived',
};
}
}