collab: Add support for overage billing for Claude Opus 4 (#31544)

Marshall Bowers created

This PR adds support for billing for overages for Claude Opus 4.

Release Notes:

- N/A

Change summary

crates/collab/src/api/billing.rs | 10 ++++++++++
1 file changed, 10 insertions(+)

Detailed changes

crates/collab/src/api/billing.rs 🔗

@@ -1515,6 +1515,12 @@ async fn sync_model_request_usage_with_stripe(
     let claude_sonnet_4_max = stripe_billing
         .find_price_by_lookup_key("claude-sonnet-4-requests-max")
         .await?;
+    let claude_opus_4 = stripe_billing
+        .find_price_by_lookup_key("claude-opus-4-requests")
+        .await?;
+    let claude_opus_4_max = stripe_billing
+        .find_price_by_lookup_key("claude-opus-4-requests-max")
+        .await?;
     let claude_3_5_sonnet = stripe_billing
         .find_price_by_lookup_key("claude-3-5-sonnet-requests")
         .await?;
@@ -1548,6 +1554,10 @@ async fn sync_model_request_usage_with_stripe(
             let model = llm_db.model_by_id(usage_meter.model_id)?;
 
             let (price, meter_event_name) = match model.name.as_str() {
+                "claude-opus-4" => match usage_meter.mode {
+                    CompletionMode::Normal => (&claude_opus_4, "claude_opus_4/requests"),
+                    CompletionMode::Max => (&claude_opus_4_max, "claude_opus_4/requests/max"),
+                },
                 "claude-sonnet-4" => match usage_meter.mode {
                     CompletionMode::Normal => (&claude_sonnet_4, "claude_sonnet_4/requests"),
                     CompletionMode::Max => (&claude_sonnet_4_max, "claude_sonnet_4/requests/max"),