Files
maps-saas/apps/api/dist/usage/usage.service.d.ts
T

40 lines
1.2 KiB
TypeScript

import { Repository } from 'typeorm';
import { UsageLog } from './usage.entity';
import { RedisService } from '../common/redis.service';
export declare class UsageService {
private usageRepository;
private redisService;
private readonly logger;
constructor(usageRepository: Repository<UsageLog>, redisService: RedisService);
recordRequest(data: {
tenantId: string;
apiKeyId: string;
endpoint: string;
method: string;
statusCode: number;
responseTimeMs: number;
userAgent?: string;
ipAddress?: string;
}): Promise<void>;
getMonthlyUsage(tenantId: string): Promise<number>;
checkQuota(tenantId: string, limit: number): Promise<{
allowed: boolean;
used: number;
}>;
checkRateLimit(tenantId: string, limit: number): Promise<{
allowed: boolean;
used: number;
}>;
getUsageHistory(tenantId: string, days?: number): Promise<any>;
getUsageSummary(tenantId: string, plan?: string): Promise<{
monthlyUsage: number;
monthlyLimit: any;
totalToday: number;
avgLatency: number;
successRate: number;
lastUpdated: Date;
}>;
private getMonthlyKey;
private getRateLimitKey;
}