import { LoyaltyCatalogSubject, RewardCatalog, SurveyCatalog } from "./typings";
import { HcwCatalogModel, PatientCatalogModel } from "../PatientMgmt/typings";
import {
  validateAndSaveRewardCatalog,
  validateAndSaveSurveyCatalog,
} from "./validators/LoyaltyCatalogValidator";
import { logIngestEvent } from "./logIngestEvent";
import { logPromoEvent } from "./legacyLoggerFunctions";

export const logCatalogEvent = (
  subjectId: string,
  catalogType: LoyaltyCatalogSubject,
  catalogModel: HcwCatalogModel | PatientCatalogModel
) => {
  switch (catalogType) {
    case LoyaltyCatalogSubject.Survey:
      validateAndSaveSurveyCatalog(subjectId, catalogModel as SurveyCatalog);
      break;
    case LoyaltyCatalogSubject.Reward:
      validateAndSaveRewardCatalog(subjectId, catalogModel as RewardCatalog);
      break;
  }
};

export default {
  logIngestEvent,
  logCatalogEvent,
  // Legacy functions
  logPromoEvent,
};
