{{ 'PAC.Membership.AdminTitle' | translate: { Default: 'Membership Plans' } }}
{{ 'PAC.Membership.AdminDescription' | translate : { Default: 'Configure current-scope membership plans, point allowances, and model usage rules.' } }}
@if (scopeStatus(); as status) {
@if (status.scope === 'organization') { {{ 'PAC.Membership.OrganizationScope' | translate: { Default: 'Organization membership' } }} } @else { {{ 'PAC.Membership.TenantScope' | translate: { Default: 'Tenant membership' } }} }
@if (status.scope === 'organization') { {{ 'PAC.Membership.OrganizationScopeHint' | translate : { Default: 'Organization plans control organization local Copilot models. Tenant models are used only when this scope has no plan.' } }} } @else { {{ 'PAC.Membership.TenantScopeHint' | translate: { Default: 'Tenant plans control tenant Copilot models and tenant fallback access.' } }} }
{{ scopeStatusLabel(status) }}
{{ 'PAC.Membership.DefaultPlanLabel' | translate: { Default: 'Default plan' } }}
{{ scopeDefaultPlanLabel(status) }}
{{ 'PAC.Membership.ActivePlans' | translate: { Default: 'Active plans' } }}
{{ status.activePlanCount | number }}
@if (status.scope === 'organization') {
{{ 'PAC.Membership.AssignedMembers' | translate: { Default: 'Assigned members' } }}
{{ status.assignedMemberCount ?? 0 | number }} / {{ status.activeMemberCount ?? 0 | number }}
{{ 'PAC.Membership.LocalCopilots' | translate: { Default: 'Local Copilots' } }}
{{ status.localCopilotCount ?? 0 | number }}
}
@if (showScopeAction()) { }
}
{{ 'PAC.Membership.TotalPlans' | translate: { Default: 'Total plans' } }}
{{ plans().length | number }}
{{ 'PAC.Membership.ActivePlans' | translate: { Default: 'Active plans' } }}
{{ activePlanCount() | number }}
{{ 'PAC.Membership.ArchivedPlans' | translate: { Default: 'Archived plans' } }}
{{ archivedPlanCount() | number }}
{{ 'PAC.Membership.PlanCatalog' | translate: { Default: 'Plan catalog' } }} {{ 'PAC.Membership.PlanCatalogHint' | translate: { Default: 'Select a plan to review or edit its rules.' } }}
@if (loading()) { {{ 'PAC.KEY_WORDS.Loading' | translate: { Default: 'Loading...' } }} }
@for (plan of plans(); track plan.id) {
{{ plan.name }}
{{ plan.code }}
@if (plan.isDefault) { {{ 'PAC.Membership.DefaultPlan' | translate: { Default: 'Default' } }} } {{ 'PAC.Membership.Statuses.' + plan.status | translate: { Default: plan.status } }}
{{ 'PAC.Membership.Points' | translate: { Default: 'Points' } }}
@if (plan.includedPoints === null) { {{ 'PAC.Membership.Unlimited' | translate: { Default: 'Unlimited' } }} } @else { {{ plan.includedPoints | number }} }
{{ 'PAC.Membership.Ratio' | translate: { Default: 'Ratio' } }}
1 : {{ plan.tokensPerPoint | number }}
@if (plan.priceAmount !== null && plan.priceAmount !== undefined) { {{ plan.priceCurrency || '' }} {{ plan.priceAmount | number: '1.0-4' }} } @else { {{ 'PAC.KEY_WORDS.None' | translate: { Default: 'None' } }} }
} @empty {
{{ 'PAC.Membership.NoPlans' | translate: { Default: 'No membership plans yet.' } }}
}
@if (editing()) {
{{ (draft.id ? 'PAC.Membership.EditPlan' : 'PAC.Membership.CreatePlan') | translate: { Default: draft.id ? 'Edit plan' : 'Create plan' } }} {{ 'PAC.Membership.PlanFormHint' | translate: { Default: 'Define the allowance, exchange rate, and optional model rules.' } }}
{{ 'PAC.Membership.PlanIdentity' | translate: { Default: 'Plan identity' } }}
{{ 'PAC.Membership.SetDefaultPlan' | translate: { Default: 'Set as default plan' } }}
{{ 'PAC.Membership.PointRules' | translate: { Default: 'Point rules' } }}
{{ 'PAC.Membership.Description' | translate: { Default: 'Description' } }}
{{ 'PAC.Membership.JsonConfiguration' | translate: { Default: 'JSON configuration' } }}
} @else if (selectedPlan(); as plan) {
{{ plan.name }} @if (plan.isDefault) { {{ 'PAC.Membership.DefaultPlan' | translate: { Default: 'Default' } }} }
{{ plan.code }}
{{ 'PAC.Membership.Status' | translate: { Default: 'Status' } }}
{{ 'PAC.Membership.Statuses.' + plan.status | translate: { Default: plan.status } }}
{{ 'PAC.Membership.PointsPerPeriod' | translate: { Default: 'Points per period' } }}
@if (plan.includedPoints === null) { {{ 'PAC.Membership.Unlimited' | translate: { Default: 'Unlimited' } }} } @else { {{ plan.includedPoints | number }} }
{{ 'PAC.Membership.Ratio' | translate: { Default: 'Ratio' } }}
1 : {{ plan.tokensPerPoint | number }}
{{ 'PAC.Membership.Price' | translate: { Default: 'Price' } }}
@if (plan.priceAmount !== null && plan.priceAmount !== undefined) { {{ plan.priceCurrency || '' }} {{ plan.priceAmount | number: '1.0-4' }} } @else { {{ 'PAC.KEY_WORDS.None' | translate: { Default: 'None' } }} }
@if (plan.description) {
{{ 'PAC.Membership.Description' | translate: { Default: 'Description' } }}
{{ plan.description }}
}
{{ 'PAC.Membership.ModelMultipliers' | translate: { Default: 'Model multipliers' } }}
{{ modelMultiplierCount(plan) | number }} {{ 'PAC.KEY_WORDS.Items' | translate: { Default: 'items' } }}
{{ 'PAC.Membership.RateLimits' | translate: { Default: 'Rate limits' } }}
{{ rateLimitCount(plan) | number }} {{ 'PAC.KEY_WORDS.Items' | translate: { Default: 'items' } }}
} @else {
{{ 'PAC.Membership.NoPlanSelected' | translate: { Default: 'No plan selected' } }}
{{ 'PAC.Membership.SelectPlanHint' | translate: { Default: 'Create a plan or select one from the catalog to manage it.' } }}
}