返回 AiToEarn
ai-availability.service.ts
根目录 / project / aitoearn-backend / apps / aitoearn-ai / src / core / ai-availability / ai-availability.service.ts
1 import { Injectable } from '@nestjs/common'
2
3 export interface AiAvailabilityContext {
4 provider: string
5 operation: string
6 model?: string
7 module?: string
8 sourceApp?: string
9 metadata?: Record<string, unknown>
10 }
11
12 @Injectable()
13 export class AiAvailabilityService {
14 async execute<T>(
15 _context: AiAvailabilityContext,
16 executor: () => Promise<T>,
17 ): Promise<T> {
18 return executor()
19 }
20
21 async executeAsync<T>(
22 _context: AiAvailabilityContext,
23 executor: () => Promise<T>,
24 _extractTaskId: (result: T) => string,
25 ): Promise<T> {
26 return executor()
27 }
28
29 async recordSuccess(_context: AiAvailabilityContext, _latencyMs?: number): Promise<void> {
30 return undefined
31 }
32
33 async recordFailure(_context: AiAvailabilityContext, _error: unknown, _latencyMs?: number): Promise<void> {
34 return undefined
35 }
36
37 async recordAsyncComplete(
38 _asyncTaskId: string,
39 _context: AiAvailabilityContext,
40 _params: { success: boolean, latencyMs?: number, errorMessage?: string, isBusinessError?: boolean },
41 ): Promise<void> {
42 return undefined
43 }
44 }
45
45 lines TYPESCRIPT