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