michangarrito/apps/backend/dist/modules/subscriptions/subscriptions.service.d.ts
rckrdmrd 48dea7a5d0 feat: Initial commit - michangarrito
Marketplace móvil para negocios locales mexicanos.

Estructura inicial:
- apps/backend (NestJS API)
- apps/frontend (React Web)
- apps/mobile (Expo/React Native)
- apps/mcp-server (Claude MCP Server)
- apps/whatsapp-service (WhatsApp Business API)
- database/ (PostgreSQL DDL)
- docs/ (Documentación)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 04:41:02 -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;
};
}>;
}