- Add resend() method to WorkspaceInvitation that regenerates the token,
resets expiry to configured days, and re-sends the notification (#23)
- Create WorkspaceMemberRole backed enum (PHP 8.1+) with label() and
colour() helpers; deprecate ROLE_* string constants on WorkspaceMember
and update internal references to use the enum (#24)
- Replace hardcoded 7-day invitation expiry with
config('tenant.invitation_expiry_days', 7) in both Workspace::invite()
and WorkspaceInvitation::resend() (#25)
Fixes#23Fixes#24Fixes#25
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added declare(strict_types=1) to 27 files that were missing it.
Ran Pint to fix PSR-12 issues (import ordering, operator spacing, brace
positioning) across 33 files.
Co-Authored-By: Virgil <virgil@lethean.io>
Simplifies the namespace hierarchy by removing the intermediate Mod
segment. Updates all 118 files including models, services, controllers,
middleware, tests, and composer.json autoload configuration.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>