# 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.

```php
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
