//! Billing — delegates to agent crate. use crate::AppService; use crate::error::AppError; use uuid::Uuid; impl AppService { pub async fn record_ai_usage( &self, project_uid: Uuid, model_id: Uuid, input_tokens: i64, output_tokens: i64, ) -> Result { use agent::billing::BillingResult; match agent::billing::record_ai_usage( &self.db, project_uid, model_id, input_tokens, output_tokens, ) .await? { BillingResult::Success(record) => Ok(record), BillingResult::InsufficientBalance { message } => { Err(AppError::BadRequest(message)) } } } }