Rezzy
TypeScript
Pull Request Opened
PR #76 opened: Add event invite system with lineup display (Issues 4.4, 4.5, 4.6)
Summary
- Issue 4.5 - EventInvite Model: Created
EventInvitemodel withpending/accepted/declinedstatus tracking, relationships to Event, Act, and inviting User - Issue 4.6 - Send Invite Flow: Event admins can search public acts, send invites, and revoke pending invites via a dedicated management page
- Issue 4.4 - Lineup Display: Event show page displays the confirmed lineup (accepted invites ordered by position), and lineup members can view private events they're performing at
New Files (15)
| File | Purpose |
|---|---|
app/Enums/EventInviteStatus.php | Pending/Accepted/Declined status enum |
app/Models/EventInvite.php | Invite model with HasUid trait |
database/migrations/*_create_event_invites_table.php | Migration with unique constraint |
database/factories/EventInviteFactory.php | Factory with status states |
app/DataTransferObjects/EventInviteData.php | Full invite DTO |
app/DataTransferObjects/ActSearchData.php | Search result DTO |
app/DataTransferObjects/LineupActData.php | Lineup display DTO |
app/Actions/Event/SendInvite.php | Create invite action |
app/Actions/Event/RevokeInvite.php | Delete pending invite action |
app/Http/Requests/EventInvite/StoreEventInviteRequest.php | Validation |
app/Http/Controllers/EventInviteController.php | CRUD controller |
app/Policies/EventInvitePolicy.php | Authorization |
resources/js/pages/events/invites/index.tsx | Invite management UI |
tests/Feature/Models/EventInviteTest.php | 29 model tests |
tests/Feature/Http/Controllers/EventInviteControllerTest.php | 20 controller tests |
Modified Files (10)
app/Models/Event.php- Added invite relationships (invites(),acceptedInvites(),isOnLineup())app/Models/Act.php- Added invite relationships (eventInvites(),upcomingGigs())app/DataTransferObjects/EventData.php- Addedlineuparray propertyapp/Policies/EventPolicy.php- Lineup members can view private published eventsapp/Http/Controllers/EventController.php- Load lineup in show methodapp/Providers/AppServiceProvider.php- Register EventInvitePolicyroutes/web.php- Add invite routesresources/js/pages/events/edit.tsx- "Manage Lineup" buttonresources/js/pages/events/show.tsx- Lineup section displayresources/js/types/generated.d.ts- TypeScript types
Test plan
- 49 EventInvite tests pass (model + controller)
- 38 existing EventController tests pass
- Pint formatting passes
- Manual: Create event, navigate to invites page, search and invite an act
- Manual: View event page, verify lineup displays with avatars linked to profiles
- Manual: Test private event visibility for lineup members
Stu Mason + AI [email protected]
+2078
additions
-30
deletions
31
files changed