- Prefijo v2: MCH - TRACEABILITY-MASTER.yml creado - Listo para integracion como submodulo Workspace: v2.0.0 | SIMCO: v4.0.0
44 lines
1.9 KiB
TypeScript
44 lines
1.9 KiB
TypeScript
import { Repository } from 'typeorm';
|
|
import { Plan } from './entities/plan.entity';
|
|
import { Subscription, SubscriptionStatus } from './entities/subscription.entity';
|
|
import { TokenBalance } from './entities/token-balance.entity';
|
|
import { TokenUsage } from './entities/token-usage.entity';
|
|
export declare class SubscriptionsService {
|
|
private readonly planRepo;
|
|
private readonly subscriptionRepo;
|
|
private readonly tokenBalanceRepo;
|
|
private readonly tokenUsageRepo;
|
|
constructor(planRepo: Repository<Plan>, subscriptionRepo: Repository<Subscription>, tokenBalanceRepo: Repository<TokenBalance>, tokenUsageRepo: Repository<TokenUsage>);
|
|
getPlans(): Promise<Plan[]>;
|
|
getPlanByCode(code: string): Promise<Plan>;
|
|
getSubscription(tenantId: string): Promise<Subscription | null>;
|
|
createSubscription(tenantId: string, planCode: string): Promise<Subscription>;
|
|
cancelSubscription(tenantId: string): Promise<Subscription>;
|
|
getTokenBalance(tenantId: string): Promise<TokenBalance>;
|
|
initializeTokenBalance(tenantId: string, tokens: number): Promise<TokenBalance>;
|
|
consumeTokens(tenantId: string, tokensToUse: number, action: string, metadata?: {
|
|
description?: string;
|
|
model?: string;
|
|
inputTokens?: number;
|
|
outputTokens?: number;
|
|
referenceType?: string;
|
|
referenceId?: string;
|
|
}): Promise<TokenBalance>;
|
|
addTokens(tenantId: string, tokens: number): Promise<TokenBalance>;
|
|
getTokenUsage(tenantId: string, limit?: number): Promise<TokenUsage[]>;
|
|
getSubscriptionStats(tenantId: string): Promise<{
|
|
subscription: {
|
|
plan: string;
|
|
status: SubscriptionStatus;
|
|
currentPeriodEnd: Date;
|
|
daysRemaining: number;
|
|
cancelAtPeriodEnd: boolean;
|
|
};
|
|
tokens: {
|
|
available: number;
|
|
used: number;
|
|
total: number;
|
|
};
|
|
}>;
|
|
}
|