import { logError } from "@/lib/logger";
import type { TMembershipRepository } from "./membership.repostiory";

interface IMembershipServicesDeps {
  MembershipRepository: TMembershipRepository;
}

export const MembershipServices = ({
  MembershipRepository,
}: IMembershipServicesDeps) => {
  const FetchAllMemberships = async () => {
    try {
      const records = await MembershipRepository.FindAllEntries();
      const memberships = records.map((rec) => ({
        id: rec.id,
        name: rec.name,
        ext_account_type_id: rec.ext_account_type_id,
      }));
      return memberships;
    } catch (err) {
      logError(err);
      return [];
    }
  };
  return {
    FetchAllMemberships,
  };
};

export type TMembershipServices = ReturnType<typeof MembershipServices>;
