export interface IApiResponse<T = any> {
  success: boolean;
  message?: string;
  data?: T;
  error?: IApiError;
  meta?: IPaginationMeta;
}

export interface IPaginationMeta {
  currentPage: number;
  totalPages: number;
  pageSize: number;
  totalItems: number;
  hasNextPage: boolean;
  hasPrevPage: boolean;
}

export interface IApiError {
  code: string;
  message: string;
  details?: Record<string, any> | Array<Record<string, any>>;
  stack?: string;
}

export interface IHealthStatus {
  status: 'ok' | 'error';
  timestamp: string;
  uptime: number;
  services: {
    database: 'up' | 'down';
    redis: 'up' | 'down';
    meilisearch: 'up' | 'down';
  };
}
