subscription_usages.rs

 1use crate::db::UserId;
 2
 3use super::*;
 4
 5impl LlmDatabase {
 6    pub async fn get_subscription_usage_for_period(
 7        &self,
 8        user_id: UserId,
 9        period_start_at: DateTimeUtc,
10        period_end_at: DateTimeUtc,
11    ) -> Result<Option<subscription_usage::Model>> {
12        self.transaction(|tx| async move {
13            Ok(subscription_usage::Entity::find()
14                .filter(subscription_usage::Column::UserId.eq(user_id))
15                .filter(subscription_usage::Column::PeriodStartAt.eq(period_start_at))
16                .filter(subscription_usage::Column::PeriodEndAt.eq(period_end_at))
17                .one(&*tx)
18                .await?)
19        })
20        .await
21    }
22}