refactor: create WorkspaceMemberRole enum for type safety #24

Open
opened 2026-02-20 16:38:36 +00:00 by Clotho · 0 comments
Member

Problem

Models/WorkspaceMember.php uses string constants (ROLE_OWNER, ROLE_ADMIN, ROLE_MEMBER) for role values. PHP 8.1+ backed enums provide better type safety and IDE support.

Acceptance Criteria

  • Create Enums/WorkspaceMemberRole.php backed enum with cases: Owner, Admin, Member
  • Update WorkspaceMember model to cast role attribute to the enum
  • Update all role comparisons throughout the codebase to use enum cases
  • Ensure Eloquent can store/retrieve the enum correctly
  • Update WorkspaceTeamService::migrateExistingMembers() to use enum

Discovered during automated scan (issue #3)

## Problem `Models/WorkspaceMember.php` uses string constants (`ROLE_OWNER`, `ROLE_ADMIN`, `ROLE_MEMBER`) for role values. PHP 8.1+ backed enums provide better type safety and IDE support. ## Acceptance Criteria - Create `Enums/WorkspaceMemberRole.php` backed enum with cases: `Owner`, `Admin`, `Member` - Update `WorkspaceMember` model to cast `role` attribute to the enum - Update all role comparisons throughout the codebase to use enum cases - Ensure Eloquent can store/retrieve the enum correctly - Update `WorkspaceTeamService::migrateExistingMembers()` to use enum _Discovered during automated scan (issue #3)_
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
core/php-tenant#24
No description provided.