/**
 * Error Type Definitions
 *
 * Defines error types, categories, and severity levels.
 * This file has no dependencies to avoid circular import issues.
 */

// Error categories for grouping
export enum ErrorCategory {
	AUTHENTICATION = 'AUTHENTICATION',
	AUTHORIZATION = 'AUTHORIZATION',
	VALIDATION = 'VALIDATION',
	NOT_FOUND = 'NOT_FOUND',
	CONFLICT = 'CONFLICT',
	DATABASE = 'DATABASE',
	EXTERNAL = 'EXTERNAL',
	SYSTEM = 'SYSTEM',
}

// Error severity levels
export type ErrorSeverity = 'low' | 'medium' | 'high' | 'critical';

// Single error entry definition
export interface ErrorEntry {
	code: string;
	httpStatus: number;
	category: ErrorCategory;
	severity: ErrorSeverity;
	message: {
		vi: string;
		en: string;
	};
	logToSentry?: boolean;
	userVisible?: boolean;
}
