团队积分V1
This commit is contained in:
@@ -143,12 +143,16 @@ export interface AdminTeam {
|
||||
code?: string | null;
|
||||
description?: string | null;
|
||||
status: AdminTeamStatus;
|
||||
statusLabel?: string;
|
||||
isReadOnly?: boolean;
|
||||
teamCreditFrozen?: boolean;
|
||||
sortOrder: number;
|
||||
memberCount: number;
|
||||
createdAt: string;
|
||||
updatedAt?: string | null;
|
||||
managerId?: string | null;
|
||||
managerName?: string | null;
|
||||
firstSubscriptionPaidAt?: string | null;
|
||||
}
|
||||
|
||||
export interface AdminTeamOption {
|
||||
@@ -186,6 +190,9 @@ export interface AdminUser {
|
||||
email: string;
|
||||
phone?: string;
|
||||
credits: number;
|
||||
personalCredits?: number;
|
||||
teamAvailableCredits?: number;
|
||||
teamFrozenCredits?: number;
|
||||
isActive: boolean;
|
||||
isAdmin: boolean;
|
||||
userType: string;
|
||||
@@ -249,26 +256,21 @@ export interface AdminStats {
|
||||
}
|
||||
|
||||
export interface PaymentStats {
|
||||
byStatus: Record<string, { count: number; amount: number }>;
|
||||
today: { paidCount: number; paidAmount: number };
|
||||
month: { paidCount: number; paidAmount: number };
|
||||
recent: PaymentOrder[];
|
||||
byStatus: Record<string, { label?: string; count: number; amount: number }>;
|
||||
bySource: Record<string, { label?: string; count: number; amount: number }>;
|
||||
totalIncome: { label?: string; count: number; amount: number };
|
||||
today: { paidCount: number; paidAmount: number; onlinePaidCount: number; onlinePaidAmount: number; offlinePaidCount: number; offlinePaidAmount: number };
|
||||
month: { paidCount: number; paidAmount: number; onlinePaidCount: number; onlinePaidAmount: number; offlinePaidCount: number; offlinePaidAmount: number };
|
||||
recent?: PaymentOrder[];
|
||||
}
|
||||
|
||||
export interface PaymentOrder {
|
||||
id: string;
|
||||
orderNo: string;
|
||||
userId: string;
|
||||
username?: string;
|
||||
amount: number;
|
||||
credits: number;
|
||||
paymentMethod: string;
|
||||
status: string;
|
||||
tradeNo?: string;
|
||||
paidAt?: string;
|
||||
createdAt: string;
|
||||
refundedAt?: string;
|
||||
refundAmount?: number;
|
||||
id: string; orderNo: string; userId: string; username?: string; phone?: string; amount: number; credits: number; quantity: number;
|
||||
paymentMethod: string; paymentMethodLabel?: string; orderSource: 'online_payment' | 'admin_offline' | string; orderSourceLabel?: string;
|
||||
status: string; statusLabel?: string; productId?: string | null; productType?: string | null; productNameSnapshot?: string | null;
|
||||
quotedUnitPriceSnapshot?: number | null; quotedAmountSnapshot?: number | null; actualUnitPriceSnapshot?: number | null;
|
||||
fulfillmentStatus?: string | null; fulfillmentStatusLabel?: string | null; tradeNo?: string | null; offlineTradeNo?: string | null; offlinePaymentDetail?: string | null; remark?: string | null;
|
||||
paidAt?: string | null; createdAt: string; refundedAt?: string | null; refundAmount?: number | null; refundTradeNo?: string | null; refundEntitlementStatus?: string | null;
|
||||
}
|
||||
|
||||
export interface ModelConfig {
|
||||
@@ -910,6 +912,26 @@ export interface AdminCreditRecordAllocation {
|
||||
amount: number;
|
||||
creditLevel?: string;
|
||||
creditLevelLabel?: string;
|
||||
creditScope?: string;
|
||||
creditScopeLabel?: string;
|
||||
teamId?: string | null;
|
||||
teamManagerId?: string | null;
|
||||
subscriptionId?: string | null;
|
||||
subscriptionNo?: string | null;
|
||||
productName?: string | null;
|
||||
productType?: string | null;
|
||||
productTypeLabel?: string | null;
|
||||
tierCode?: string | null;
|
||||
tierLabel?: string | null;
|
||||
tierRank?: number | null;
|
||||
billingCycle?: string | null;
|
||||
billingCycleLabel?: string | null;
|
||||
subscriptionPeriodId?: string | null;
|
||||
periodSequence?: number | null;
|
||||
periodLabel?: string | null;
|
||||
periodValidFrom?: string | null;
|
||||
periodExpiresAt?: string | null;
|
||||
seatId?: string | null;
|
||||
sourceType?: string;
|
||||
sourceTypeLabel?: string;
|
||||
sourceId?: string;
|
||||
@@ -921,6 +943,27 @@ export interface AdminCreditRecordAllocation {
|
||||
consumedAfter?: number;
|
||||
}
|
||||
|
||||
export interface AdminCreditRecordSubscriptionUsage {
|
||||
creditScope?: string | null;
|
||||
creditScopeLabel?: string | null;
|
||||
subscriptionId?: string | null;
|
||||
subscriptionNo: string;
|
||||
productName?: string | null;
|
||||
productType?: string | null;
|
||||
productTypeLabel?: string | null;
|
||||
tierCode?: string | null;
|
||||
tierLabel?: string | null;
|
||||
tierRank?: number | null;
|
||||
billingCycle?: string | null;
|
||||
billingCycleLabel?: string | null;
|
||||
subscriptionPeriodId?: string | null;
|
||||
periodSequence?: number | null;
|
||||
periodLabel?: string | null;
|
||||
periodValidFrom?: string | null;
|
||||
periodExpiresAt?: string | null;
|
||||
amount: number;
|
||||
}
|
||||
|
||||
export interface AdminCreditRecord {
|
||||
id: string;
|
||||
userId: string;
|
||||
@@ -964,6 +1007,11 @@ export interface AdminCreditRecord {
|
||||
llmCallCount?: number;
|
||||
llmSuccessCallCount?: number;
|
||||
llmFailedCallCount?: number;
|
||||
fundingScope?: string;
|
||||
fundingScopeLabel?: string;
|
||||
teamAllocationAmount?: number;
|
||||
personalAllocationAmount?: number;
|
||||
subscriptionUsages?: AdminCreditRecordSubscriptionUsage[];
|
||||
allocations?: AdminCreditRecordAllocation[];
|
||||
sourceModule?: string;
|
||||
sourceModuleLabel?: string;
|
||||
@@ -997,6 +1045,7 @@ export interface AdminCreditRecordQueryParams {
|
||||
userType?: string;
|
||||
frontendUserKind?: string;
|
||||
teamId?: string;
|
||||
subscriptionNo?: string;
|
||||
recordType?: string;
|
||||
type?: string;
|
||||
creditSubject?: string;
|
||||
@@ -1473,34 +1522,15 @@ export interface VideoUpscaleConfigSavePayload {
|
||||
}
|
||||
|
||||
// ── Dynamic Credit Products / LLM Billing ─────────────────
|
||||
export type CreditProductType = 'subscription' | 'credit_addon';
|
||||
export type CreditProductType = 'subscription' | 'team_subscription' | 'credit_addon';
|
||||
export type SubscriptionBillingCycle = 'monthly' | 'quarterly' | 'yearly';
|
||||
|
||||
export interface CreditProduct {
|
||||
id: string;
|
||||
productCode: string;
|
||||
productType: CreditProductType;
|
||||
name: string;
|
||||
description?: string | null;
|
||||
features?: string[];
|
||||
tierCode?: string | null;
|
||||
tierRank?: number | null;
|
||||
billingCycle?: SubscriptionBillingCycle | null;
|
||||
monthlyGrantCredits?: number;
|
||||
grantCount?: number;
|
||||
firstPurchasePrice?: number;
|
||||
regularPrice?: number;
|
||||
activityPrice?: number | null;
|
||||
activityStartAt?: string | null;
|
||||
activityEndAt?: string | null;
|
||||
renewalEnabled: boolean;
|
||||
price: number;
|
||||
grantCredits?: number;
|
||||
validityMonths?: number | null;
|
||||
creditLevel: 'promotional' | 'general';
|
||||
currency: string;
|
||||
isActive: boolean;
|
||||
sortOrder: number;
|
||||
id: string; productCode: string; productType: CreditProductType; productTypeLabel?: string; name: string; description?: string | null; features?: string[];
|
||||
tierCode?: string | null; tierLabel?: string | null; tierRank?: number | null; billingCycle?: SubscriptionBillingCycle | null; billingCycleLabel?: string | null;
|
||||
monthlyGrantCredits?: number; grantCount?: number; firstPurchasePrice?: number; regularPrice?: number; activityPrice?: number | null; activityStartAt?: string | null; activityEndAt?: string | null; renewalEnabled: boolean;
|
||||
price: number; currentPrice?: number; grantCredits?: number; validityMonths?: number | null; creditLevel: 'promotional' | 'general'; creditLevelLabel?: string; currency: string;
|
||||
isActive: boolean; isDeleted?: boolean; deletedAt?: string | null; statusLabel?: string; sortOrder: number;
|
||||
}
|
||||
|
||||
export interface LlmBillingPolicy {
|
||||
|
||||
Reference in New Issue
Block a user