// src/services/index.ts
// Copyright (C) 2026 Robert Colbert <rob.colbert@openplatform.us>
// All Rights Reserved

import ApiClientService from "./api-client.js";
import ChatSessionService from "./chat-session.js";
import ContactService from "./contact.js";
import CryptoService from "./crypto.js";
import DroneService from "./drone.js";
import NotificationService from "./notification.js";
import ProjectService from "./project.js";
import SessionService from "./session.js";
import SocketService from "./socket.js";
import StorageService from "./storage.js";
import UserService from "./user.js";

export async function startServices(): Promise<void> {
  await ApiClientService.start();
  await ChatSessionService.start();
  await ContactService.start();
  await CryptoService.start();
  await DroneService.start();
  await NotificationService.start();
  await ProjectService.start();
  await SessionService.start();
  await SocketService.start();
  await StorageService.start();
  await UserService.start();
}

export async function stopServices(): Promise<void> {
  await ApiClientService.stop();
  await ChatSessionService.stop();
  await ContactService.stop();
  await CryptoService.stop();
  await DroneService.stop();
  await NotificationService.stop();
  await ProjectService.stop();
  await SessionService.stop();
  await SocketService.stop();
  await StorageService.stop();
  await UserService.stop();
}

export {
  ApiClientService,
  ChatSessionService,
  ContactService,
  CryptoService,
  DroneService,
  NotificationService,
  ProjectService,
  SessionService,
  SocketService,
  StorageService,
  UserService,
};
