1.4 KiB
1.4 KiB
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
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