iachat/spec/controllers/api/v2/accounts
Pranav 5ec77aca64
feat: Add first response time distribution report endpoint (#13400)
The index is already added in production.

Adds a new reporting API that returns conversation counts grouped by
channel type and first response time buckets (0-1h, 1-4h, 4-8h, 8-24h,
24h+).

- GET /api/v2/accounts/:id/reports/first_response_time_distribution
- Uses SQL aggregation to handle large datasets efficiently
- Adds composite index on reporting_events for query performance

Tested on production workload.
Request: GET
`/api/v2/accounts/1/reports/first_response_time_distribution?since=<since>&until=<until>`
Response payload:
```
{
    "Channel::WebWidget": {
      "0-1h": 120,
      "1-4h": 85,
      "4-8h": 32,
      "8-24h": 12,
      "24h+": 3
    },
    "Channel::Email": {
      "0-1h": 12,
      "1-4h": 28,
      "4-8h": 45,
      "8-24h": 35,
      "24h+": 10
    },
    "Channel::FacebookPage": {
      "0-1h": 50,
      "1-4h": 30,
      "4-8h": 15,
      "8-24h": 8,
      "24h+": 2
    }
  }
```

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2026-01-30 22:22:27 +04:00
..
live_reports_controller_spec.rb feat: Add new APIs for live reports with team filter (#10994) 2025-02-27 16:11:04 -08:00
report_controller_spec.rb feat: Improve Report API performance (#9476) 2024-05-22 17:34:24 -07:00
reports_controller_spec.rb feat: Add first response time distribution report endpoint (#13400) 2026-01-30 22:22:27 +04:00
summary_reports_controller_spec.rb feat: Add an API to support querying metrics by ChannelType (#13255) 2026-01-12 23:18:47 -08:00