{{ 'XP.Membership.UsageBilling' | translate }}

{{ 'XP.UsageDashboard.Personal' | translate }}

{{ 'XP.BillingSettings.Description' | translate }}

@if (loading()) { } @else if (loadFailed()) { } @else if (me(); as account) {

{{ 'XP.Membership.CurrentPlan' | translate }}

{{ account.plan?.name || ('XP.UsageDashboard.NoPlan' | translate) }}
@if (account.membership?.status; as status) { {{ 'XP.Membership.MemberStatuses.' + status | translate }} }
@if (account.currentPeriodEnd) {

{{ account.currentPeriodStart | date: 'mediumDate' }} – {{ account.currentPeriodEnd | date: 'medium' }}

}

{{ 'XP.Membership.RemainingPoints' | translate }}

@if (isUnlimited()) { {{ 'XP.Membership.Unlimited' | translate }} } @else { {{ account.pointsRemaining | number: '1.0-2' }} / {{ account.pointsGranted | number: '1.0-2' }} }
@if (!isUnlimited()) {
{{ 'XP.Membership.QuotaPointUsage' | translate }} {{ account.pointsUsed | number: '1.0-2' }} / {{ account.pointsGranted | number: '1.0-2' }} · {{ usedPercent() }}%
}

{{ 'XP.Membership.AdminManagedPlan' | translate }}

{{ 'XP.Membership.PersonalPoints' | translate }}
{{ 'XP.BillingSettings.PermanentBalance' | translate }}

{{ account.personalPointsBalance | number: '1.0-2' }} {{ 'XP.Membership.Points' | translate }}

{{ 'XP.Membership.PersonalPointsHint' | translate }}

{{ 'XP.BillingSettings.UsageAndRules' | translate }}

{{ 'XP.BillingSettings.CycleConsumption' | translate }}

{{ 'XP.Membership.ConsumedPointsHint' | translate }}

{{ account.consumedPoints ?? account.pointsUsed | number: '1.0-0' }} {{ 'XP.Membership.Points' | translate }}
{{ 'XP.Membership.PointsPerPeriod' | translate }}
@if (account.plan?.includedPoints === null) { {{ 'XP.Membership.Unlimited' | translate }} } @else { {{ account.plan?.includedPoints | number: '1.0-2' }} }
{{ 'XP.BillingSettings.DebitBasis' | translate }}
{{ 'XP.BillingSettings.DebitHint' | translate }}
} @else { }
{{ 'XP.Membership.RecentDebitSummary' | translate }} {{ 'XP.BillingSettings.DebitHint' | translate }} @if (loading()) { } @else if (loadFailed()) { } @else if (!usageSummaries().length) { } @else {
@for (summary of usageSummaries(); track summaryKey(summary)) { @if (isExpanded(summary)) { } }
{{ 'XP.KEY_WORDS.Date' | translate }} {{ 'XP.Membership.Session' | translate }} {{ 'XP.Copilot.Model' | translate }} {{ 'XP.Membership.Calls' | translate }} {{ 'XP.BillingSettings.PointChange' | translate }}
{{ summary.lastUsedAt | date: 'yyyy/M/d HH:00' }}
{{ summary.lastUsedAt | date: 'shortTime' }}
{{ conversationLabel(summary) }}
@if (isExternalApi(summary)) { {{ 'XP.Membership.ApiCall' | translate }} } @else { {{ 'XP.Copilot.ExecutionEntry.' + (summary.usageChannel || 'xpert') | translate }} {{ xpertLabel(summary) }} }
@if (summary.provider || summary.model) { {{ summary.provider || '*' }} / {{ summary.model || '*' }} } @else { – } {{ summary.callCount | number }} {{ summary.pointsDelta > 0 ? '+' : '' }}{{ summary.pointsDelta | number: '1.0-2' }}

{{ 'XP.Membership.UsageDetails' | translate }}

@if (isSummaryDetailsLoading(summary)) {

{{ 'XP.KEY_WORDS.Loading' | translate }}

} @else if (summaryDetailsFailed()[summaryKey(summary)]) { } @else { @for (ledger of getSummaryDetails(summary); track ledger.id) { } @empty { }
{{ 'XP.KEY_WORDS.Date' | translate }} {{ 'XP.Membership.Source' | translate }} {{ 'XP.BillingSettings.PointChange' | translate }}
{{ ledger.createdAt | date: 'short' }} {{ 'XP.Membership.LedgerSource.' + ledger.source | translate: { Default: ledger.source } }} {{ ledger.pointsDelta > 0 ? '+' : '' }}{{ ledger.pointsDelta | number: '1.0-2' }}
{{ 'XP.Membership.NoUsageDetails' | translate }}
}
}
{{ 'XP.KEY_WORDS.Loading' | translate }}