Skip to content

feat(csat): port satisfaction ratings + CSAT settings (Phoenix)#81

Merged
mpge merged 1 commit into
masterfrom
feat/csat-ratings
Jun 24, 2026
Merged

feat(csat): port satisfaction ratings + CSAT settings (Phoenix)#81
mpge merged 1 commit into
masterfrom
feat/csat-ratings

Conversation

@mpge

@mpge mpge commented Jun 24, 2026

Copy link
Copy Markdown
Member

Brings escalated-phoenix to parity with the laravel reference for the CSAT domain (previously absent).

What

  • SatisfactionRating schema + migration — one rating per ticket (unique index), rating 1-5, optional comment, optional polymorphic rated_by, created_at stamped on insert
  • SatisfactionRatingController — customer (store, by reference) + guest (store_guest, by token); a ticket is rateable once and only when resolved/closed (mirrors laravel)
  • Admin CsatSettingsController — question text / scale / delivery trigger / delay via the key/value SettingsService
  • Router: customer + guest rate endpoints, admin /settings/csat

Verified (Docker, elixir:1.15-otp-26)

  • mix format ✓ · mix credo --strict ✓ · full suite 460 tests, 0 failures

Part of the backend parity program (escalated-laravel baseline).

Brings escalated-phoenix to parity with the laravel reference for the
CSAT domain (previously absent).

- SatisfactionRating schema + migration (one rating per ticket via a
  unique index; rating 1-5, optional comment, optional polymorphic
  rated_by, created_at stamped on insert).
- SatisfactionRatingController: customer (`store`, by reference) and
  guest (`store_guest`, by token) submission. A ticket can be rated once
  and only when resolved or closed (mirrors laravel).
- Admin CsatSettingsController: question text / scale / delivery trigger
  / delay, persisted via the key/value SettingsService.
- Router wiring: customer + guest rate endpoints, admin /settings/csat.

Verified in Docker: mix format, mix credo --strict, full suite
(460 tests, 0 failures).
@mpge
mpge merged commit ec8a95d into master Jun 24, 2026
1 check passed
@mpge
mpge deleted the feat/csat-ratings branch June 24, 2026 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant