1.7 KiB
1.7 KiB
Story 7.5: New Booking Interface
Epic Reference
Epic 7: Client Dashboard
User Story
As a client, I want to submit new consultation booking requests, So that I can schedule meetings with the lawyer.
Acceptance Criteria
Access
- Quick access from dashboard
- Book Now button in navigation
Calendar View
- Calendar showing available dates
- Available time slots for selected date
Booking Form
- Selected date/time (display)
- Problem summary (required, textarea)
- Submit button
Validation
- Enforce 1 booking per day limit
- Show warning if already booked that day
- Prevent booking on unavailable slots
Submission Flow
- Confirmation before submission
- Success message with "Pending Review" status
- Redirect to consultations list
Technical Notes
Reuse availability calendar from Story 3.3 and booking submission from Story 3.4.
new class extends Component {
public ?string $selectedDate = null;
public ?string $selectedTime = null;
public string $problemSummary = '';
public function submit(): void
{
// Validation and submission logic from Story 3.4
}
public function canBookDate(string $date): bool
{
return !auth()->user()->consultations()
->whereDate('scheduled_date', $date)
->whereIn('status', ['pending', 'approved'])
->exists();
}
};
Definition of Done
- Calendar displays correctly
- Time slots selectable
- 1-per-day limit enforced
- Problem summary required
- Confirmation shown
- Booking submitted successfully
- Tests pass
Estimation
Complexity: Medium | Effort: 3-4 hours