generated sotries
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Story 7.1: Client Dashboard Overview
|
||||
|
||||
## Epic Reference
|
||||
**Epic 7:** Client Dashboard
|
||||
|
||||
## User Story
|
||||
As a **client**,
|
||||
I want **a dashboard showing my key information at a glance**,
|
||||
So that **I can quickly see upcoming consultations and case updates**.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
### Welcome Section
|
||||
- [ ] Welcome message with client name
|
||||
|
||||
### Upcoming Consultations Widget
|
||||
- [ ] Next consultation date/time
|
||||
- [ ] Type (free/paid)
|
||||
- [ ] Status
|
||||
- [ ] Quick link to details
|
||||
|
||||
### Active Cases Widget
|
||||
- [ ] Count of active timelines
|
||||
- [ ] Latest update preview
|
||||
- [ ] Link to full list
|
||||
|
||||
### Recent Updates Widget
|
||||
- [ ] Last 3 timeline updates (across all cases)
|
||||
- [ ] Case name and date
|
||||
- [ ] Link to full timeline
|
||||
|
||||
### Booking Status Widget
|
||||
- [ ] Pending booking requests
|
||||
- [ ] Daily booking limit indicator
|
||||
- [ ] Quick book button
|
||||
|
||||
### Design
|
||||
- [ ] Clean, card-based layout
|
||||
- [ ] Mobile-first responsive
|
||||
- [ ] Bilingual content
|
||||
|
||||
## Technical Notes
|
||||
|
||||
```php
|
||||
new class extends Component {
|
||||
public function with(): array
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
return [
|
||||
'upcomingConsultation' => $user->consultations()
|
||||
->approved()
|
||||
->upcoming()
|
||||
->first(),
|
||||
'activeTimelinesCount' => $user->timelines()->active()->count(),
|
||||
'recentUpdates' => TimelineUpdate::whereHas('timeline', fn($q) => $q->where('user_id', $user->id))
|
||||
->latest()
|
||||
->take(3)
|
||||
->with('timeline')
|
||||
->get(),
|
||||
'pendingBookings' => $user->consultations()->pending()->count(),
|
||||
'canBookToday' => !$user->consultations()
|
||||
->whereDate('scheduled_date', today())
|
||||
->whereIn('status', ['pending', 'approved'])
|
||||
->exists(),
|
||||
];
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
## Definition of Done
|
||||
- [ ] All widgets display correctly
|
||||
- [ ] Data scoped to logged-in user
|
||||
- [ ] Mobile responsive
|
||||
- [ ] Bilingual
|
||||
- [ ] Tests pass
|
||||
|
||||
## Estimation
|
||||
**Complexity:** Medium | **Effort:** 4-5 hours
|
||||
Reference in New Issue
Block a user