export function formatLineErrorMsg(error: ErrorTemplate, line: number) {
  error.message = error.message.replace(/#행번호/g, line.toString());
  return error;
}

export function formatDuplicateErrorMsg(
  duplicates: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#중복코드/g, duplicates.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatAgencyErrorMsg(
  loginIds: string[],
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#기업코드/g, loginIds.join(', '));
  return error;
}

export function formatMemberErrorMsg(
  loginIds: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#계정/g, loginIds.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatInputErrorMsg(
  infos: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#입력값/g, infos.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatContractErrorMsg(
  loginIds: string[],
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#계약코드/g, loginIds.join(', '));
  return error;
}

export function formatExcelInputErrorMsg(
  infos: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#입력값/g, infos.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatExcelMemberErrorMsg(
  loginIds: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#계정/g, loginIds.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatExcelDuplicateErrorMsg(
  duplicates: string[],
  length: number,
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#중복코드/g, duplicates.join(', '));
  error.message = error.message.replace(
    /#길이/g,
    length == 0 ? '' : '등 ' + length.toString(),
  );
  return error;
}

export function formatChannelErrorMsg(
  codes: string[],
  errorTemplate: ErrorTemplate,
) {
  const error = { ...errorTemplate };
  error.message = error.message.replace(/#채널코드/g, codes.join(', '));
  return error;
}

interface ErrorTemplate {
  code: string;
  message: string;
}
