import { Route } from 'react-router-dom';
import { SentryRoutes } from '@/shared/configs/sentry';
import { ROUTE_NAMES } from '@/shared/constants/route-names';
import { IntroPage } from './intro/intro-page';
import { ArsCardPaymentListPage } from './ars-card-payment/list-page';
import { ArsCardPaymentRequestPage } from './ars-card-payment/request-page';
import { ArsCardPaymentRequestSuccessPage } from './ars-card-payment/request-success-page';
import { KeyInPaymentPage } from './key-in-payment/key-in-payment-page';
import { SmsPaymentNotificationPage } from './sms-payment-notification/sms-payment-notification-page';
import { AccountHolderSearchPage } from './account-holder-search/account-holder-search-page';
import { AccountHolderAuthPage } from './account-holder-auth/account-holder-auth-page';
import { LinkPaymentShippingHistoryPage } from './link-payment/link-payment-shipping-history-page';
import { LinkPaymentPendingSendPage } from './link-payment/link-payment-pending-send-page';
import { KakaoPaymentNotificationListPage } from './kakao-payment-notification/list-page';
import { KakaoPaymentNotificationSettingPage } from './kakao-payment-notification/setting-page';
import { FundTransferRequestListPage } from './fund-transfer/request-list-page';
import { FundTransferRequestRegisterPage } from './fund-transfer/request-register-page';
import { FundTransferResultInquiryPage } from './fund-transfer/result-inquiry-page';
import { SettlementAgencyManagePage } from './settlement-agency/manage-page';
import { SettlementAgencyDepositPage } from './settlement-agency/deposit-page';
import { SettlementAgencyMemberPage } from './settlement-agency/member-page';
import { SettlementAgencyRegisterPage } from './settlement-agency/register-page';
import { SettlementAgencyDetailPage } from './settlement-agency/detail-page';
import { PayoutListPage } from './payout/list-page';
import { PayoutDetailPage } from './payout/detail-page';
import { PayoutRequestPage } from './payout/request-page';
import { LinkPaymentApplyPage } from './link-payment/apply/link-payment-apply-page';
import { LinkPaymentApplyConfirmPage } from './link-payment/apply/link-payment-apply-confirm-page';
import { LinkPaymentApplySuccessPage } from './link-payment/apply/link-payment-apply-success-page';
import { LinkPaymentDetailPage } from './link-payment/link-payment-detail-page';
import { LinkPaymentPendingDetailPage } from './link-payment/link-payment-pending-detail-page';
import { KeyInPaymentRequestPage } from './key-in-payment/requeset-page';
import { KeyInPaymentRequestSuccessPage } from './key-in-payment/request-success-page';
import { AccountHolderSearchRequestPage } from './account-holder-search/request-page';
import { AccountHolderSearchDetailPage } from './account-holder-search/detail-page';

export const AdditionalServicePages = () => {
  return (
    <>
      <SentryRoutes>
        <Route path={ROUTE_NAMES.additionalService.intro} element={<IntroPage />} />

        <Route path={ROUTE_NAMES.additionalService.arsCardPayment.base}>
          <Route path={ROUTE_NAMES.additionalService.arsCardPayment.list} element={<ArsCardPaymentListPage />} />
          <Route path={ROUTE_NAMES.additionalService.arsCardPayment.request} element={<ArsCardPaymentRequestPage />} />
          <Route path={ROUTE_NAMES.additionalService.arsCardPayment.requestSuccess} element={<ArsCardPaymentRequestSuccessPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.keyInPayment.base}>
          <Route path={ROUTE_NAMES.additionalService.keyInPayment.list} element={<KeyInPaymentPage />} />
          <Route path={ROUTE_NAMES.additionalService.keyInPayment.request} element={<KeyInPaymentRequestPage />} />
          <Route path={ROUTE_NAMES.additionalService.keyInPayment.requestSuccess} element={<KeyInPaymentRequestSuccessPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.smsPaymentNotification} element={<SmsPaymentNotificationPage />} />
        <Route path={ROUTE_NAMES.additionalService.accountHolderSearch.base}>
          <Route path={ROUTE_NAMES.additionalService.accountHolderSearch.list} element={<AccountHolderSearchPage />} />
          <Route path={ROUTE_NAMES.additionalService.accountHolderSearch.detail} element={<AccountHolderSearchDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.accountHolderSearch.request} element={<AccountHolderSearchRequestPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.accountHolderAuth} element={<AccountHolderAuthPage />} />
        <Route path={ROUTE_NAMES.additionalService.linkPayment.base}>
          <Route path={ROUTE_NAMES.additionalService.linkPayment.shippingHistory} element={<LinkPaymentShippingHistoryPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.pendingSend} element={<LinkPaymentPendingSendPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.request} element={<LinkPaymentApplyPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.requestConfirm} element={<LinkPaymentApplyConfirmPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.confirmSuccess} element={<LinkPaymentApplySuccessPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.detail} element={<LinkPaymentDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.pendingDetail} element={<LinkPaymentPendingDetailPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.kakaoPaymentNotification.base}>
          <Route path={ROUTE_NAMES.additionalService.kakaoPaymentNotification.list} element={<KakaoPaymentNotificationListPage />} />
          <Route path={ROUTE_NAMES.additionalService.kakaoPaymentNotification.setting} element={<KakaoPaymentNotificationSettingPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.fundTransfer.base}>
          <Route path={ROUTE_NAMES.additionalService.fundTransfer.requestList} element={<FundTransferRequestListPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundTransfer.requestRegister} element={<FundTransferRequestRegisterPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundTransfer.resultInquiry} element={<FundTransferResultInquiryPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.settlementAgency.base}>
          <Route path={ROUTE_NAMES.additionalService.settlementAgency.manage} element={<SettlementAgencyManagePage />} />
          <Route path={ROUTE_NAMES.additionalService.settlementAgency.deposit} element={<SettlementAgencyDepositPage />} />
          <Route path={ROUTE_NAMES.additionalService.settlementAgency.member} element={<SettlementAgencyMemberPage />} />
          <Route path={ROUTE_NAMES.additionalService.settlementAgency.register} element={<SettlementAgencyRegisterPage />} />
          <Route path={ROUTE_NAMES.additionalService.settlementAgency.detail} element={<SettlementAgencyDetailPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.payout.base}>
          <Route path={ROUTE_NAMES.additionalService.payout.list} element={<PayoutListPage />} />
          <Route path={ROUTE_NAMES.additionalService.payout.detail} element={<PayoutDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.payout.request} element={<PayoutRequestPage />} />
        </Route>
      </SentryRoutes>
    </>
  );
};
