// 약관 공통 상수 및 헬퍼 함수 (TermsOfService, TermsOfOptional에서 재사용)

// 약관 유형 상수 정의
export const TERMS_TYPE = {
  TERMS_CONDITIONS: "TERMS_CONDITIONS",
  PRIVACY_POLICY: "PRIVACY_POLICY",
  OPTIONAL_TERMS: "OPTIONAL_TERMS",
};

// 약관 ID 매핑
export const TERMS_ID_MAP = {
  [TERMS_TYPE.TERMS_CONDITIONS]: "TID0000222",
  [TERMS_TYPE.PRIVACY_POLICY]: "TID0000223",
  [TERMS_TYPE.OPTIONAL_TERMS]: "TID0000232"
};


export const TERMS_TPCD_MAP = {
  [TERMS_TYPE.TERMS_CONDITIONS]: "MST00402",
  [TERMS_TYPE.PRIVACY_POLICY]: "MST00401",
  [TERMS_TYPE.OPTIONAL_TERMS]: "MST00405"
};

export  const TERMS_TYPE_LIST = [
  TERMS_TYPE.TERMS_CONDITIONS,
  TERMS_TYPE.PRIVACY_POLICY,
  TERMS_TYPE.OPTIONAL_TERMS
];

// 약관 표시 이름 매핑
export const TERMS_DISPLAY_NAMES = {
  [TERMS_TYPE.TERMS_CONDITIONS]: "Terms and Conditions",
  [TERMS_TYPE.PRIVACY_POLICY]: "Privacy Policy",
  [TERMS_TYPE.OPTIONAL_TERMS]: "Optional Terms"
};

// 약관 데이터 파싱 헬퍼 함수
export const parseTermsList = (termsData) => {
  if (!termsData) return [];
  
  return termsData.map(term => ({
    ...term,
    displayName: TERMS_DISPLAY_NAMES[term.trmsTpCd] || term.trmsNm
  }));
};

// 체크박스 초기 상태 생성 헬퍼
export const getInitialCheckboxStates = () => ({
  [TERMS_TYPE.TERMS_CONDITIONS]: false,
  [TERMS_TYPE.PRIVACY_POLICY]: false,
  [TERMS_TYPE.OPTIONAL_TERMS]: false
});

// 필수 약관 여부 확인 헬퍼
export const isMandatoryTerms = (termsType) => {
  return (
    termsType === TERMS_TYPE.TERMS_CONDITIONS || 
    termsType === TERMS_TYPE.PRIVACY_POLICY
  );
};

// HTML 태그 제거 헬퍼
export const stripHtmlTags = (htmlText) => {
  if (!htmlText) return "";
  return htmlText.replace(/(<([^>]+)>)/gi, "");
};
