libra/docs/stories/story-8.5-booking-rejected-...

65 lines
1.4 KiB
Markdown

# Story 8.5: Booking Rejected Email
## Epic Reference
**Epic 8:** Email Notification System
## User Story
As a **client**,
I want **to be notified when my booking is rejected**,
So that **I can understand why and request a new consultation if needed**.
## Acceptance Criteria
### Trigger
- [ ] Sent on booking rejection by admin
### Content
- [ ] "Your consultation request could not be approved"
- [ ] Original requested date and time
- [ ] Rejection reason (if provided by admin)
- [ ] Invitation to request new consultation
- [ ] Contact info for questions
### Tone
- [ ] Empathetic, professional
### Language
- [ ] Email in client's preferred language
## Technical Notes
```php
class BookingRejectedEmail extends Mailable
{
use Queueable, SerializesModels;
public function __construct(
public Consultation $consultation,
public ?string $reason = null
) {}
public function content(): Content
{
$locale = $this->consultation->user->preferred_language ?? 'ar';
return new Content(
markdown: "emails.booking.rejected.{$locale}",
with: [
'consultation' => $this->consultation,
'reason' => $this->reason,
],
);
}
}
```
## Definition of Done
- [ ] Email sent on rejection
- [ ] Reason included if provided
- [ ] Empathetic tone
- [ ] Bilingual templates
- [ ] Tests pass
## Estimation
**Complexity:** Low | **Effort:** 2 hours