/**
 * writeApiUsage — AE write helper — api-usage-quota-ui (wave-12).
 *
 * Writes a single data point to the `api_usage` Analytics Engine dataset.
 * Must be called via ctx.waitUntil() so it never blocks the response.
 */
import type { ApiUsageEnv } from './env'

export interface WriteApiUsageArgs {
  tenantId: string
  keyId: string
  /** Matched route pattern (e.g. "/v1/customers"), NOT the raw URL */
  endpoint: string
  method: string
}

/**
 * Fire-and-forget write — always await inside ctx.waitUntil().
 */
export function writeApiUsage(env: ApiUsageEnv, args: WriteApiUsageArgs): void {
  env.API_USAGE.writeDataPoint({
    indexes: [args.tenantId],
    blobs: [args.keyId, args.endpoint, args.method],
    doubles: [1],
  })
}
