import { z } from 'zod'

// ============================================================================
// Error Tracking Validation Schemas
// ============================================================================

export const ErrorRecordSchema = z.object({
  id: z.string().uuid(),
  timestamp: z.string(),
  errorType: z.string(),
  message: z.string(),
  executionId: z.string().uuid(),
  resourceId: z.string(),
  resourceName: z.string(),
  severity: z.enum(['critical', 'warning', 'info'])
})

export const ErrorDetailFullSchema = ErrorRecordSchema.extend({
  stackTrace: z.string().optional(),
  retryAttempt: z.number().optional(),
  stepName: z.string().optional(),
  stepSequence: z.number().optional(),
  errorContext: z.record(z.string(), z.unknown()).optional(),
  executionContext: z.record(z.string(), z.unknown()).optional()
})

export const ErrorDistributionSchema = z.object({
  label: z.string(),
  count: z.number(),
  percentage: z.number()
})

export const ErrorTrendSchema = z.object({
  time: z.string(),
  errorCount: z.number(),
  criticalCount: z.number(),
  warningCount: z.number(),
  infoCount: z.number()
})
