# Billing ES Queries (v1)

Source of truth:
- Service: `app/Services/Elasticsearch/BillingElasticsearchService.php`
- Controller: `app/Http/Controllers/Billing/BillingWidgetController.php`
- Index: `customer_subscription_v1`

## ES-backed service methods
- `fetchBillingPaymentGateways(...)`
- `fetchBillingKpis(...)`
- `fetchBillingPaymentSeries(...)`
- `fetchBillingGatewayDistribution(...)`
- `fetchBillingProviderHealth(...)`
- `searchBillingInvoices(...)`
- `aggregateBillingGateways(...)`
- `aggregateBillingSubscriptions(...)`

## API endpoints
- `GET /admin/api/billing/payment-gateways-detail`
- `GET /admin/api/billing/kpi-detail`
- `GET /admin/api/billing/payment-trends-detail`
- `GET /admin/api/billing/payment-gateway-distribution-detail`
- `GET /admin/api/billing/providerhealth-detail`
- `GET /admin/api/billing/invoices/get-listing`
- `GET /admin/api/billing/gateways/get-listing`
- `GET /admin/api/billing/subscriptions/get-listing`

## Notes
- Billing queries are nested under `orders` and may include `orders.subscription` conditions where required.
- KPI/status computations are service-driven; avoid re-implementing state logic in blade/controller.
