/**
 * Data Ingestion Service Types
 * Defines required services for data ingestion handlers
 */

import type { ServiceTypes } from '@stock-bot/types';

/**
 * Services required by data ingestion handlers
 * Makes specific services non-nullable since they're always enabled
 */
export type DataIngestionServices = ServiceTypes & {
  // Always required services
  logger: NonNullable<ServiceTypes['logger']>;
  mongodb: NonNullable<ServiceTypes['mongodb']>;
  cache: NonNullable<ServiceTypes['cache']>;
  queue: NonNullable<ServiceTypes['queue']>;
  queueManager: NonNullable<ServiceTypes['queueManager']>;
  browser: NonNullable<ServiceTypes['browser']>;
  proxy: NonNullable<ServiceTypes['proxy']>;
  // Optional services remain optional
  postgres: ServiceTypes['postgres'];
  questdb: ServiceTypes['questdb'];
  globalCache: ServiceTypes['globalCache'];
};