feat: implement barangay system phases 2-14
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

Complete adaptation from BukidBountyApp to Philippine barangay governance:

- Barangay models: Resident, Household, HouseholdMember, Blotter, BlotterHearing,
  DocumentRequest, RequestPayment, RequestType, BarangayProject, BarangayBudget
- Controllers: ResidentController, HouseholdController, BlotterController,
  BlotterHearingController, DocumentRequestController, RequestTypeController,
  ProjectController, BudgetController, QRPHController, AdminConsoleController,
  UserController, FileController, ChapterController, LoginController
- Vue pages: Home, ManageResidents, ResidentProfile, ManageHouseholds, ManageBlotters,
  BlotterDetail, RequestDocument, ManageDocumentRequests, DocumentRequestDetail,
  ManageRequestTypes, ManageProjects, BudgetLedger, AdminConsole
- Barangay roles: PunongBarangay, Kagawad, Secretary, Treasurer, SK, Tanod, BHW, Staff, Resident
- UserPermissions matrix rewritten with barangay-specific permission mappings
- VueRouteMap replaced with barangay SPA routes
- UserActions enum references corrected across all controllers
- Removed all market/cooperative/POS/subscription code and models
This commit is contained in:
Jonathan Sykes
2026-06-07 03:09:09 +08:00
parent 19fec0933b
commit fbb7e3ff37
234 changed files with 5582 additions and 39457 deletions

View File

@@ -11,9 +11,6 @@ use App\Enums\UserActions;
use App\Models\Chapter;
use App\Models\ChapterMember;
use App\Models\User;
use App\Models\Market\UserInfo;
use App\Models\Market\CooperativeMember;
use App\Models\Market\Organization;
use App\Models\SystemSetting;
use App\Support\IslandGroupHelper;
use App\Support\SystemSettingsHelper;
@@ -41,10 +38,10 @@ class ChapterController
private function isAdminCaller($acctType): bool
{
return in_array($acctType, [
UserTypes::ULTIMATE,
UserTypes::SUPER_OPERATOR,
UserTypes::OPERATOR,
UserTypes::COORDINATOR,
UserTypes::SUPER_ADMIN,
UserTypes::PUNONG_BARANGAY,
UserTypes::KAGAWAD,
UserTypes::SECRETARY,
], true);
}
@@ -566,7 +563,7 @@ class ChapterController
];
// COOP_MEMBER: own chapter + officers only, no children/member lists.
if ($acctType === UserTypes::COOP_MEMBER) {
if ($acctType === UserTypes::RESIDENT) {
return response()->json(['own_chapter' => $ownChapter, 'children' => []]);
}
@@ -810,8 +807,8 @@ class ChapterController
}
// 3. Upgrade acct_type if currently a plain coop member.
if ($member->acct_type === UserTypes::COOP_MEMBER) {
$member->acct_type = UserTypes::COOP_OFFICER;
if ($member->acct_type === UserTypes::RESIDENT) {
$member->acct_type = UserTypes::KAGAWAD;
$member->save();
}
@@ -930,7 +927,7 @@ class ChapterController
$validated = $validator->validated();
$parentUser = User::where('id', $chapter->created_by)->first()
?? User::where('acct_type', UserTypes::COORDINATOR->value)->first()
?? User::where('acct_type', UserTypes::SECRETARY->value)->first()
?? User::orderBy('id')->first();
if (!$parentUser) {
return response()->json(['success' => false, 'message' => 'No valid parent user found'], 500);
@@ -942,7 +939,7 @@ class ChapterController
$user->mobile_number = $validated['mobile_number'];
$user->password = Hash::make($validated['password']);
$user->parentuid = $parentUser->id;
$user->acct_type = UserTypes::COOP_MEMBER;
$user->acct_type = UserTypes::RESIDENT;
$user->active = true;
if ($cooperative) {
$settings = $user->settings ?? [];