UNPKG

@kenniy/godeye-data-contracts

Version:

Enterprise-grade base repository architecture for GOD-EYE microservices with zero overhead and maximum code reuse

107 lines (106 loc) 2.57 kB
/** * Core response interfaces for standardized API responses across all services */ export interface IResponse<T = any> { success: boolean; data?: T; error?: string; message: string; status_code: number; time_ms: number; timestamp: string; trace_id: string; metadata?: IResponseMetadata; } export interface IPagination { total: number; page: number; limit: number; total_pages: number; has_next: boolean; has_prev: boolean; } export interface IPaginatedResult<T> { items: T[]; total: number; page: number; limit: number; totalPages: number; hasNext: boolean; hasPrev: boolean; } export interface IPaginatedData<T> { items: T[]; total: number; page: number; limit: number; totalPages: number; hasNext: boolean; hasPrev: boolean; } /** * Enhanced metadata contexts for comprehensive API response information */ export interface IResponseMetadata { queryTime?: string; ms_speed?: number; affected_rows?: number; cache_hit?: boolean; cacheStatus?: "hit" | "miss" | "bypass"; lastUpdated?: string; searchAlgorithms?: string[]; backendConditions?: string[]; relationsLoaded?: string[]; relationErrors?: string[]; activeCount?: number; pendingCount?: number; suspendedCount?: number; totalCount?: number; filters?: { appliedFilters?: string[]; availableFilters?: string[]; }; sorting?: { sortBy?: string; sortOrder?: "asc" | "desc"; availableSorts?: string[]; }; cpu_usage_percent?: number; memory_used_mb?: number; memory_available_mb?: number; heap_used_mb?: number; heap_total_mb?: number; validation_errors?: string[]; updated_fields?: string[]; skipped_fields?: string[]; user_permissions?: string[]; rate_limit_remaining?: number; file_size_bytes?: number; file_type?: string; processed_count?: number; workflow_stage?: string; notification_sent?: boolean; external_api_calls?: number; service_version?: string; environment?: string; request_id?: string; } /** * Bulk operation enums and interfaces */ export declare enum BulkOperationType { CREATE = "create", UPDATE = "update", DELETE = "delete" } export interface IBulkOperation<T> { operation: BulkOperationType; data: Partial<T>; where?: Partial<T>; } export interface IBulkResult<T> { success_count: number; error_count: number; results: T[]; errors: string[]; }