michangarrito/apps/backend/dist/modules/subscriptions/subscriptions.service.d.ts
rckrdmrd 97f407c661 [MIGRATION-V2] feat: Migrar michangarrito a estructura v2
- Prefijo v2: MCH
- TRACEABILITY-MASTER.yml creado
- Listo para integracion como submodulo

Workspace: v2.0.0 | SIMCO: v4.0.0
2026-01-10 11:28:54 -06:00

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;
};
}>;
}