banatie-service/apps/api-service/src/utils/constants/errors.ts

116 lines
4.3 KiB
TypeScript

export const ERROR_MESSAGES = {
// Authentication & Authorization
INVALID_API_KEY: 'Invalid or expired API key',
MISSING_API_KEY: 'API key is required',
UNAUTHORIZED: 'Unauthorized access',
MASTER_KEY_REQUIRED: 'Master key required for this operation',
PROJECT_KEY_REQUIRED: 'Project key required for this operation',
// Validation
INVALID_ALIAS_FORMAT: 'Alias must start with @ and contain only alphanumeric characters, hyphens, and underscores',
RESERVED_ALIAS: 'This alias is reserved and cannot be used',
ALIAS_CONFLICT: 'An image with this alias already exists in this scope',
INVALID_PAGINATION: 'Invalid pagination parameters',
INVALID_UUID: 'Invalid UUID format',
INVALID_ASPECT_RATIO: 'Invalid aspect ratio format',
INVALID_FOCAL_POINT: 'Focal point coordinates must be between 0.0 and 1.0',
// Not Found
GENERATION_NOT_FOUND: 'Generation not found',
IMAGE_NOT_FOUND: 'Image not found',
FLOW_NOT_FOUND: 'Flow not found',
ALIAS_NOT_FOUND: 'Alias not found',
PROJECT_NOT_FOUND: 'Project not found',
// Resource Limits
MAX_REFERENCE_IMAGES_EXCEEDED: 'Maximum number of reference images exceeded',
MAX_FILE_SIZE_EXCEEDED: 'File size exceeds maximum allowed size',
RATE_LIMIT_EXCEEDED: 'Rate limit exceeded',
MAX_ALIASES_EXCEEDED: 'Maximum number of aliases per flow exceeded',
// Generation Errors
GENERATION_FAILED: 'Image generation failed',
GENERATION_PENDING: 'Generation is still pending',
REFERENCE_IMAGE_RESOLUTION_FAILED: 'Failed to resolve reference image alias',
// Live Scope Errors
SCOPE_INVALID_FORMAT: 'Live scope format is invalid',
SCOPE_CREATION_DISABLED: 'Creation of new live scopes is disabled for this project',
SCOPE_GENERATION_LIMIT_EXCEEDED: 'Live scope generation limit exceeded',
// Storage Errors
STORAGE_DELETE_FAILED: 'Failed to delete file from storage',
// Flow Errors
TECHNICAL_ALIAS_REQUIRES_FLOW: 'Technical aliases (@last, @first, @upload) require a flowId',
FLOW_HAS_NO_GENERATIONS: 'Flow has no generations',
FLOW_HAS_NO_UPLOADS: 'Flow has no uploaded images',
ALIAS_NOT_IN_FLOW: 'Alias not found in flow',
// General
INTERNAL_SERVER_ERROR: 'Internal server error',
INVALID_REQUEST: 'Invalid request',
OPERATION_FAILED: 'Operation failed',
} as const;
export const ERROR_CODES = {
// Authentication & Authorization
INVALID_API_KEY: 'INVALID_API_KEY',
MISSING_API_KEY: 'MISSING_API_KEY',
UNAUTHORIZED: 'UNAUTHORIZED',
MASTER_KEY_REQUIRED: 'MASTER_KEY_REQUIRED',
PROJECT_KEY_REQUIRED: 'PROJECT_KEY_REQUIRED',
// Validation
VALIDATION_ERROR: 'VALIDATION_ERROR',
INVALID_ALIAS_FORMAT: 'INVALID_ALIAS_FORMAT',
RESERVED_ALIAS: 'RESERVED_ALIAS',
ALIAS_CONFLICT: 'ALIAS_CONFLICT',
INVALID_PAGINATION: 'INVALID_PAGINATION',
INVALID_UUID: 'INVALID_UUID',
INVALID_ASPECT_RATIO: 'INVALID_ASPECT_RATIO',
INVALID_FOCAL_POINT: 'INVALID_FOCAL_POINT',
// Not Found
NOT_FOUND: 'NOT_FOUND',
GENERATION_NOT_FOUND: 'GENERATION_NOT_FOUND',
IMAGE_NOT_FOUND: 'IMAGE_NOT_FOUND',
FLOW_NOT_FOUND: 'FLOW_NOT_FOUND',
ALIAS_NOT_FOUND: 'ALIAS_NOT_FOUND',
PROJECT_NOT_FOUND: 'PROJECT_NOT_FOUND',
// Resource Limits
RESOURCE_LIMIT_EXCEEDED: 'RESOURCE_LIMIT_EXCEEDED',
MAX_REFERENCE_IMAGES_EXCEEDED: 'MAX_REFERENCE_IMAGES_EXCEEDED',
MAX_FILE_SIZE_EXCEEDED: 'MAX_FILE_SIZE_EXCEEDED',
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
MAX_ALIASES_EXCEEDED: 'MAX_ALIASES_EXCEEDED',
// Generation Errors
GENERATION_FAILED: 'GENERATION_FAILED',
GENERATION_PENDING: 'GENERATION_PENDING',
REFERENCE_IMAGE_RESOLUTION_FAILED: 'REFERENCE_IMAGE_RESOLUTION_FAILED',
// Live Scope Errors
SCOPE_INVALID_FORMAT: 'SCOPE_INVALID_FORMAT',
SCOPE_CREATION_DISABLED: 'SCOPE_CREATION_DISABLED',
SCOPE_GENERATION_LIMIT_EXCEEDED: 'SCOPE_GENERATION_LIMIT_EXCEEDED',
// Storage Errors
STORAGE_DELETE_FAILED: 'STORAGE_DELETE_FAILED',
// Flow Errors
TECHNICAL_ALIAS_REQUIRES_FLOW: 'TECHNICAL_ALIAS_REQUIRES_FLOW',
FLOW_HAS_NO_GENERATIONS: 'FLOW_HAS_NO_GENERATIONS',
FLOW_HAS_NO_UPLOADS: 'FLOW_HAS_NO_UPLOADS',
ALIAS_NOT_IN_FLOW: 'ALIAS_NOT_IN_FLOW',
// General
INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',
INVALID_REQUEST: 'INVALID_REQUEST',
OPERATION_FAILED: 'OPERATION_FAILED',
} as const;
export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
export type ErrorMessage = (typeof ERROR_MESSAGES)[keyof typeof ERROR_MESSAGES];