import { Route } from 'react-router-dom';
import { SentryRoutes } from '@/shared/configs/sentry';
import { ROUTE_NAMES } from '@/shared/constants/route-names';
import { ListPage } from './list-page';
import { ArsListPage } from './ars/list-page';
import { ArsDetailPage } from './ars/detail-page';
import { ArsRequestPage } from './ars/request-page';
import { ArsRequestSuccessPage } from './ars/request-success-page';
import { KeyInPaymentPage } from './key-in-payment/key-in-payment-page';
import { SmsPaymentPage } from './sms-payment/sms-payment-page';
import { AccountHolderSearchPage } from './account-holder-search/account-holder-search-page';
import { AccountHolderAuthPage } from './account-holder-auth/account-holder-auth-page';
import { LinkPaymentHistoryPage } from './link-payment/link-payment-history-page';
import { LinkPaymentWaitSendPage } from './link-payment/link-payment-wait-send-page';
import { AlimtalkListPage } from './alimtalk/list-page';
import { AlimtalkDetailPage } from './alimtalk/detail-page';
import { AlimtalkSettingPage } from './alimtalk/setting-page';
import { FundAccountTransferListPage } from './fund-account/transfer-list-page';
import { FundAccountTransferDetailPage } from './fund-account/transfer-detail-page';
import { FundAccountTransferRequestPage } from './fund-account/transfer-request-page';
import { FundAccountResultListPage } from './fund-account/result-list-page';
import { FundAccountResultDetailPage } from './fund-account/result-detail-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 { LinkPaymentWaitDetailPage } from './link-payment/link-payment-wait-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';
import { AccountHolderAuthDetailPage } from './account-holder-auth/detail-page';
import { LinkPaymentSeparateApprovalPage } from './link-payment/separate-approval/link-payment-separate-approval-page';
import { FaceAuthPage } from './face-auth/face-auth-page';

export const AdditionalServicePages = () => {
  return (
    <>
      <SentryRoutes>
        <Route path={ROUTE_NAMES.additionalService.list} element={<ListPage />} />
        <Route path={ROUTE_NAMES.additionalService.ars.base}>
          <Route path={ROUTE_NAMES.additionalService.ars.list} element={<ArsListPage />} />
          <Route path={ROUTE_NAMES.additionalService.ars.detail} element={<ArsDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.ars.request} element={<ArsRequestPage />} />
        </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={<SmsPaymentPage />} />
        <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.base}>
          <Route path={ROUTE_NAMES.additionalService.accountHolderAuth.list} element={<AccountHolderAuthPage/>} />
          <Route path={ROUTE_NAMES.additionalService.accountHolderAuth.detail} element={<AccountHolderAuthDetailPage/>} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.linkPayment.base}>
          <Route path={ROUTE_NAMES.additionalService.linkPayment.shippingHistory} element={<LinkPaymentHistoryPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.pendingSend} element={<LinkPaymentWaitSendPage />} />
          <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={<LinkPaymentWaitDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.linkPayment.separateApproval} element={<LinkPaymentSeparateApprovalPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.alimtalk.base}>
          <Route path={ROUTE_NAMES.additionalService.alimtalk.list} element={<AlimtalkListPage />} />
          <Route path={ROUTE_NAMES.additionalService.alimtalk.detail} element={<AlimtalkDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.alimtalk.setting} element={<AlimtalkSettingPage />} />
        </Route>
        <Route path={ROUTE_NAMES.additionalService.fundAccount.base}>
          <Route path={ROUTE_NAMES.additionalService.fundAccount.transferList} element={<FundAccountTransferListPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundAccount.transferDetail} element={<FundAccountTransferDetailPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundAccount.transferRequest} element={<FundAccountTransferRequestPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundAccount.resultList} element={<FundAccountResultListPage />} />
          <Route path={ROUTE_NAMES.additionalService.fundAccount.resultDetail} element={<FundAccountResultDetailPage />} />
        </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>
        <Route path={ROUTE_NAMES.additionalService.faceAuth.base}>
          <Route path={ROUTE_NAMES.additionalService.faceAuth.list} element={<FaceAuthPage />} />
        </Route>
      </SentryRoutes>
    </>
  );
};
