| export type FeedbackType = 'accepted' | 'rejected' | 'ignored' |
| export type PatternCategory = |
| | 'security' |
| | 'null-pointer' |
| | 'sql-injection' |
| | 'xss' |
| | 'concurrency' |
| | 'resource-leak' |
| | 'async-issues' |
| | 'error-handling' |
| | 'type-safety' |
| | 'arithmetic' |
| | 'logic-error' |
| | 'performance' |
| | 'style' |
| | 'general' |
|
|
| export interface PatternFeedback { |
| id: string |
| patternType: PatternCategory |
| severity: 'critical' | 'major' | 'minor' | 'info' |
| filenamePattern: string |
| repoSlug: string |
| teamId: string |
| confidence: number |
| feedbackType: FeedbackType |
| timestamp: number |
| commentId?: string |
| reviewId?: string |
| } |
|
|
| export interface PatternStats { |
| patternType: PatternCategory |
| total: number |
| accepted: number |
| rejected: number |
| ignored: number |
| acceptanceRate: number |
| avgConfidence: number |
| } |
|
|
| export interface TeamPatternInsights { |
| teamId: string |
| repoSlug: string |
| patternStats: Map<PatternCategory, PatternStats> |
| overallAcceptanceRate: number |
| lastUpdated: number |
| } |
|
|
| export interface FeedbackQuery { |
| teamId?: string |
| repoSlug?: string |
| patternType?: PatternCategory |
| filenamePattern?: string |
| since?: number |
| limit?: number |
| } |
|
|
| export interface FeedbackSummary { |
| totalFeedback: number |
| byPattern: Map<PatternCategory, PatternStats> |
| byRepo: Map<string, number> |
| byTeam: Map<string, number> |
| recentTrend: 'improving' | 'declining' | 'stable' |
| } |
|
|