collab: Add has_extended_trial
to LlmTokenClaims
(#29622)
This PR adds the `has_extended_trial` field to the LLM token claims. Release Notes: - N/A
This commit is contained in:
parent
15a83b5a10
commit
24e47de02a
@ -5,6 +5,8 @@ use crate::Cents;
|
|||||||
|
|
||||||
pub use token::*;
|
pub use token::*;
|
||||||
|
|
||||||
|
pub const AGENT_EXTENDED_TRIAL_FEATURE_FLAG: &str = "agent-extended-trial";
|
||||||
|
|
||||||
/// The maximum monthly spending an individual user can reach on the free tier
|
/// The maximum monthly spending an individual user can reach on the free tier
|
||||||
/// before they have to pay.
|
/// before they have to pay.
|
||||||
pub const FREE_TIER_MONTHLY_SPENDING_LIMIT: Cents = Cents::from_dollars(10);
|
pub const FREE_TIER_MONTHLY_SPENDING_LIMIT: Cents = Cents::from_dollars(10);
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
use crate::Cents;
|
use crate::Cents;
|
||||||
use crate::db::billing_subscription::SubscriptionKind;
|
use crate::db::billing_subscription::SubscriptionKind;
|
||||||
use crate::db::{billing_subscription, user};
|
use crate::db::{billing_subscription, user};
|
||||||
use crate::llm::{DEFAULT_MAX_MONTHLY_SPEND, FREE_TIER_MONTHLY_SPENDING_LIMIT};
|
use crate::llm::{
|
||||||
|
AGENT_EXTENDED_TRIAL_FEATURE_FLAG, DEFAULT_MAX_MONTHLY_SPEND, FREE_TIER_MONTHLY_SPENDING_LIMIT,
|
||||||
|
};
|
||||||
use crate::{Config, db::billing_preference};
|
use crate::{Config, db::billing_preference};
|
||||||
use anyhow::{Result, anyhow};
|
use anyhow::{Result, anyhow};
|
||||||
use chrono::{NaiveDateTime, Utc};
|
use chrono::{NaiveDateTime, Utc};
|
||||||
@ -32,6 +34,8 @@ pub struct LlmTokenClaims {
|
|||||||
pub custom_llm_monthly_allowance_in_cents: Option<u32>,
|
pub custom_llm_monthly_allowance_in_cents: Option<u32>,
|
||||||
pub plan: Plan,
|
pub plan: Plan,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
pub has_extended_trial: bool,
|
||||||
|
#[serde(default)]
|
||||||
pub subscription_period: Option<(NaiveDateTime, NaiveDateTime)>,
|
pub subscription_period: Option<(NaiveDateTime, NaiveDateTime)>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub enable_model_request_overages: bool,
|
pub enable_model_request_overages: bool,
|
||||||
@ -94,6 +98,9 @@ impl LlmTokenClaims {
|
|||||||
SubscriptionKind::ZedPro => Plan::ZedPro,
|
SubscriptionKind::ZedPro => Plan::ZedPro,
|
||||||
SubscriptionKind::ZedProTrial => Plan::ZedProTrial,
|
SubscriptionKind::ZedProTrial => Plan::ZedProTrial,
|
||||||
}),
|
}),
|
||||||
|
has_extended_trial: feature_flags
|
||||||
|
.iter()
|
||||||
|
.any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG),
|
||||||
subscription_period: maybe!({
|
subscription_period: maybe!({
|
||||||
let subscription = subscription?;
|
let subscription = subscription?;
|
||||||
let period_start_at = subscription.current_period_start_at()?;
|
let period_start_at = subscription.current_period_start_at()?;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use crate::{Cents, Result, llm};
|
use crate::llm::{self, AGENT_EXTENDED_TRIAL_FEATURE_FLAG};
|
||||||
|
use crate::{Cents, Result};
|
||||||
use anyhow::{Context as _, anyhow};
|
use anyhow::{Context as _, anyhow};
|
||||||
use chrono::{Datelike, Utc};
|
use chrono::{Datelike, Utc};
|
||||||
use collections::HashMap;
|
use collections::HashMap;
|
||||||
@ -492,8 +493,6 @@ impl StripeBilling {
|
|||||||
feature_flags: Vec<String>,
|
feature_flags: Vec<String>,
|
||||||
success_url: &str,
|
success_url: &str,
|
||||||
) -> Result<String> {
|
) -> Result<String> {
|
||||||
const AGENT_EXTENDED_TRIAL_FEATURE_FLAG: &str = "agent-extended-trial";
|
|
||||||
|
|
||||||
let eligible_for_extended_trial = feature_flags
|
let eligible_for_extended_trial = feature_flags
|
||||||
.iter()
|
.iter()
|
||||||
.any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG);
|
.any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG);
|
||||||
|
Loading…
Reference in New Issue
Block a user