# Subscriber360 ES Queries (v1)

Source of truth:
- Service: `app/Services/Elasticsearch/Subscriber360ElasticsearchService.php`
- Controller: `app/Http/Controllers/Subscriber360/Subscriber360ApiController.php`
- Index: `customer_subscription_v1`

## ES-backed service methods
- `fetchCustomerDocument(...)`
- `fetchCards(...)`
- `searchCustomerTable(...)`
- `fetchUserGrowthBuckets(...)`
- `fetchEngagementBuckets(...)`
- `fetchSignupVsSuspendedCounts(...)`
- `fetchHeatmapBuckets(...)`

## API endpoints
- `GET /admin/subscriber-360/widgets/cards`
- `GET /admin/subscriber-360/widgets/charts`
- `GET /admin/subscriber-360/widgets/all-data`
- `GET /admin/subscriber-360/widgets/table`
- `GET /admin/subscriber-360/widgets/charts/user-growth`
- `GET /admin/subscriber-360/widgets/charts/engagement`
- `GET /admin/subscriber-360/widgets/charts/pie`
- `GET /admin/subscriber-360/widgets/charts/heatmap`

## Notes
- Subscriber profile tables (orders/billing/payments) derive from ES customer document path where available.
