0f9d12c3cf
Adds docs/tasks/ (16 epics + 102 stories converted to task/subtask files with statuses.md as the new status source of truth) and docs/ux-design.md (retrospective design-system reference), and points CLAUDE.md at them. docs/prd.md and docs/architecture.md are kept as BMAD wrote them; the legacy docs/stories/, docs/epics/, docs/qa/gates/ and .bmad-core/ stay in place as historical/traceability records, superseded but not deleted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
---
|
|
id: 3-9
|
|
title: 3-9 Guest Booking Request
|
|
status: Draft
|
|
date: 2026-09-27
|
|
parent: 3
|
|
---
|
|
|
|
## Description
|
|
|
|
As a guest visitor, I want to submit a consultation booking request with my contact details, So that I can request legal services without needing an account first. Context: Integrates with: Availability calendar (Story 3.3), Admin booking review (Story 3.5), User creation (Epic 2); Technology: Livewire Volt, Flux UI, existing availability calendar component; Follows pattern: Client booking submission (Story 3.4), Admin approval workflow (Story 3.5). Extend the existing admin.bookings.pending component to include guest booking requests:. Full implementation history: docs/stories/story-3.9-guest-booking-request.md
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] **AC1:** Public `/booking` page accessible without login
|
|
- [ ] **AC2:** Display availability calendar (reuse existing component)
|
|
- [ ] **AC3:** Guest can select date and available time slot
|
|
- [ ] **AC4:** Account type toggle: Individual / Company
|
|
- [ ] **AC5:** Form fields for Individual:
|
|
- [ ] **AC6:** Additional fields for Company:
|
|
- [ ] **AC7:** Problem summary field (required, textarea, min 20 characters, max 2000)
|
|
- [ ] **AC8:** Confirmation step before submission showing all entered data
|
|
- [ ] **AC9:** Duplicate check: If email OR national_id exists in users table, show "Account already exists. Please login to book." with login link
|
|
- [ ] **AC10:** 1-per-day limit by email: Check guest_booking_requests table for same email on same booking_date
|
|
- [ ] **AC11:** Validate selected slot is still available
|
|
- [ ] **AC12:** Clear error messages for all validation failures (bilingual)
|
|
- [ ] **AC13:** On submit, create record in `guest_booking_requests` table with status 'pending'
|
|
- [ ] **AC14:** Guest sees success page: "Request received. We will contact you soon."
|
|
- [ ] **AC15:** Admin receives email notification about new guest booking request
|
|
- [ ] **AC16:** Guest receives submission confirmation email
|
|
- [ ] **AC17:** Guest booking requests appear in admin pending bookings queue with "Guest" badge
|
|
- [ ] **AC18:** Admin can view full guest details and problem summary
|
|
- [ ] **AC19:** Admin action: **Approve + Create Account**
|
|
- [ ] **AC20:** Admin action: **Reject**
|
|
- [ ] **AC21:** Admin action: **Create Account Only**
|
|
- [ ] **AC22:** All admin actions logged in audit trail
|
|
- [ ] **AC23:** Bilingual support (Arabic/English) for all UI and emails
|
|
- [ ] **AC24:** Mobile-responsive design
|
|
- [ ] **AC25:** Race condition prevention for slot availability
|
|
- [ ] **AC26:** Comprehensive test coverage
|