feat: implement billing, usage tracking, and administrative geocoding features in API with infrastructure updates
This commit is contained in:
+39
@@ -0,0 +1,39 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user