mirror of
https://github.com/langgenius/dify.git
synced 2026-02-07 11:31:17 +08:00
Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: Stream <Stream_2@qq.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zhsama <torvalds@linux.do> Co-authored-by: Harry <xh001x@hotmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: yessenia <yessenia.contact@gmail.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: WTW0313 <twwu@dify.ai> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import type { CurrentPlanInfoBackend } from '../type'
|
|
import { ALL_PLANS, NUM_INFINITE } from '@/app/components/billing/config'
|
|
|
|
const parseLimit = (limit: number) => {
|
|
if (limit === 0)
|
|
return NUM_INFINITE
|
|
|
|
return limit
|
|
}
|
|
|
|
export const parseCurrentPlan = (data: CurrentPlanInfoBackend) => {
|
|
const planType = data.billing.subscription.plan
|
|
const planPreset = ALL_PLANS[planType]
|
|
const resolveLimit = (limit?: number, fallback?: number) => {
|
|
const value = limit ?? fallback ?? 0
|
|
return parseLimit(value)
|
|
}
|
|
|
|
return {
|
|
type: planType,
|
|
usage: {
|
|
vectorSpace: data.vector_space.size,
|
|
buildApps: data.apps?.size || 0,
|
|
teamMembers: data.members.size,
|
|
annotatedResponse: data.annotation_quota_limit.size,
|
|
documentsUploadQuota: data.documents_upload_quota.size,
|
|
apiRateLimit: data.api_rate_limit?.size ?? 0,
|
|
triggerEvents: data.trigger_events?.size ?? 0,
|
|
},
|
|
total: {
|
|
vectorSpace: parseLimit(data.vector_space.limit),
|
|
buildApps: parseLimit(data.apps?.limit) || 0,
|
|
teamMembers: parseLimit(data.members.limit),
|
|
annotatedResponse: parseLimit(data.annotation_quota_limit.limit),
|
|
documentsUploadQuota: parseLimit(data.documents_upload_quota.limit),
|
|
apiRateLimit: resolveLimit(data.api_rate_limit?.limit, planPreset?.apiRateLimit ?? NUM_INFINITE),
|
|
triggerEvents: resolveLimit(data.trigger_events?.limit, planPreset?.triggerEvents),
|
|
},
|
|
}
|
|
}
|