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}