import {
  BaseHandler,
  Handler,
  Operation,
  ScheduledOperation,
  type IServiceContainer,
} from '@stock-bot/handlers';
import { processIndividualSymbol, updateCeoChannels, updateUniqueSymbols } from './actions';

@Handler('ceo')
// @Disabled()
export class CeoHandler extends BaseHandler {
  constructor(services: IServiceContainer) {
    super(services); // Handler name read from @Handler decorator
  }

  @ScheduledOperation('update-ceo-channels', '0 */15 * * *', {
    priority: 7,
    immediately: false,
    description: 'Get all CEO symbols and exchanges',
  })
  updateCeoChannels = updateCeoChannels;

  @Operation('update-unique-symbols')
  @ScheduledOperation('process-unique-symbols', '0 0 1 * *', {
    priority: 5,
    immediately: false,
    description: 'Process unique CEO symbols and schedule individual jobs',
  })
  updateUniqueSymbols = updateUniqueSymbols;

  @Operation('process-individual-symbol')
  processIndividualSymbol = processIndividualSymbol;
}
