import { logError } from "@/lib/logger";
import type { IMemberAccountStatusRepository } from "./member-account-status.interfaces";

interface TMemberAccountStatusServicesDeps {
  MemberAccountStatusRepository: IMemberAccountStatusRepository;
}

export const MemberAccountStatusServices = ({
  MemberAccountStatusRepository,
}: TMemberAccountStatusServicesDeps) => {
  const FetchMemberAccountStatuses = async () => {
    try {
      const result = await MemberAccountStatusRepository.FindAllEntries();
      const statuses = result.map((as) => ({
        id: as.id,
        name: as.name,
        ext_account_status_id: as.ext_account_status_id,
      }));
      return statuses;
    } catch (err) {
      logError(err);
      return [];
    }
  };

  return {
    FetchMemberAccountStatuses,
  };
};
