import { CRMBackend } from "../crm.interfaces.js";
import { SupportedBackends } from "../crm.types.js";
import { GoogleCalendarBackend } from "./GoogleCalendarBackend.js";
import { HubSpotBackend } from "./HubspotBackend.js";

export function CRMBackendFactory(backendName: SupportedBackends): CRMBackend {
  switch (backendName) {
    case "Hubspot":
      return new HubSpotBackend();
    case "Outlook":
      // return new OutlookBackend();
      throw new Error("Outlook backend not implemented");
    case "Google":
      return new GoogleCalendarBackend();
    case "Calendly":
      // return new CalendlyBackend();
      throw new Error("Calendly backend not implemented");
    default:
      throw new Error("Unsupported backend");
  }
}
