TorbatYar/docs/phase-handover/phase-11-6.md
Mortezakoohjani 203671a7bf feat(experience): ship Experience Platform phases 11.0-11.10
Add the experience service with sites through analytics/AI hooks, migrations through 0011, and phase docs/manifests marking the track complete.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 11:43:10 +03:30

60 lines
2.2 KiB
Markdown

# Phase Handover — Experience 11.6 Forms, Surveys & Appointments
## Metadata
| Field | Value |
| --- | --- |
| Phase ID | `experience-11.6` |
| Title | Forms, Surveys & Appointments |
| Status | Complete |
| Service(s) | `experience` (`experience_db`) |
| Version | `0.11.6.0` |
| Date | 2026-07-26 |
| ADR(s) | [ADR-016](../architecture/adr/ADR-016.md) |
## Discovery Summary
Phase 11.5 delivered locale bindings and Storage-only media refs. Tenants still lacked form/survey definition shells and appointment page booking-ref surfaces. This phase adds those shells while keeping CRM contact and vertical scheduling ownership outside Experience.
## Reusable Components
| Component | Location | Reuse notes |
| --- | --- | --- |
| Forms + submissions | `app/models/forms.py`, `app/services/forms.py` | Active-only intake; payload refs not CRM IDs |
| Surveys + responses | same | Mirrors form intake pattern |
| Appointment pages + booking refs | same | `external_booking_ref` unique per page; no calendar engine |
| Policies / validators | `app/policies/forms.py`, `app/validators/forms.py` | Status transitions; forbid ownership keys in JSON shells |
## Public APIs
| Path | Permission |
| --- | --- |
| `/api/v1/forms`, `/api/v1/form-submissions` | `experience.forms.*` |
| `/api/v1/surveys`, `/api/v1/survey-responses` | `experience.surveys.*` |
| `/api/v1/appointment-pages`, `/api/v1/appointment-booking-refs` | `experience.appointments.*` |
## Events
`experience.form.*` · `experience.form_submission.*` · `experience.survey.*` · `experience.survey_response.*` · `experience.appointment_page.*` · `experience.appointment_booking_ref.*`
## Known Limitations
- No SEO/PWA publishing (11.7)
- No native scheduler / CRM write-back
- Submission processing is status-shell only (no background workers in this phase)
## Migration Notes
| Item | Detail |
| --- | --- |
| Alembic | `0007_phase_116_forms_surveys_appointments` (head) |
| Upgrade | `alembic upgrade head` |
| Breaking | None (additive) |
## Next Phase Entry
| Field | Value |
| --- | --- |
| Next phase | `experience-11.7` — Publishing, Domains, SEO & PWA |
| Entry docs | This handover + [experience-phase-11-6.md](../experience-phase-11-6.md) |