// SPDX-License-Identifier: Apache-2.0
import { CancelCouponCommandHandler } from "../../../app/usecase/command/bond/coupon/cancel/CancelCouponCommandHandler";
import { SetCouponCommandHandler } from "../../../app/usecase/command/bond/coupon/set/SetCouponCommandHandler";
import { CreateBondCommandHandler } from "../../../app/usecase/command/bond/create/CreateBondCommandHandler";
import { CreateBondFixedRateCommandHandler } from "../../../app/usecase/command/bond/createfixedrate/CreateBondFixedRateCommandHandler";
import { CreateBondKpiLinkedRateCommandHandler } from "../../../app/usecase/command/bond/createkpilinkedrate/CreateBondKpiLinkedRateCommandHandler";
import { FullRedeemAtMaturityCommandHandler } from "../../../app/usecase/command/bond/fullRedeemAtMaturity/FullRedeemAtMaturityCommandHandler";
import { RedeemAtMaturityByPartitionCommandHandler } from "../../../app/usecase/command/bond/redeemAtMaturityByPartition/RedeemAtMaturityByPartitionCommandHandler";
import { UpdateMaturityDateCommandHandler } from "../../../app/usecase/command/bond/updateMaturityDate/UpdateMaturityDateCommandHandler";
import { SetRateCommandHandler } from "../../../app/usecase/command/interestRates/setRate/SetRateCommandHandler";
import { SetInterestRateCommandHandler } from "../../../app/usecase/command/interestRates/setInterestRate/SetInterestRateCommandHandler";
import { SetImpactDataCommandHandler } from "../../../app/usecase/command/interestRates/setImpactData/SetImpactDataCommandHandler";
import { GetCouponQueryHandler } from "../../../app/usecase/query/bond/coupons/getCoupon/GetCouponQueryHandler";
import { GetCouponAmountForQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponAmountFor/GetCouponAmountForQueryHandler";
import { GetCouponCountQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponCount/GetCouponCountQueryHandler";
import { GetCouponForQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponFor/GetCouponForQueryHandler";
import { GetCouponsForQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponsFor/GetCouponsForQueryHandler";
import { GetCouponHoldersQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponHolders/GetCouponHoldersQueryHandler";
import { GetTotalCouponHoldersQueryHandler } from "../../../app/usecase/query/bond/coupons/getTotalCouponHolders/GetTotalCouponHoldersQueryHandler";
import { GetCouponsOrderedListQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponsOrderedList/GetCouponsOrderedListQueryHandler";
import { GetCouponsOrderedListTotalQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponsOrderedListTotal/GetCouponsOrderedListTotalQueryHandler";
import { GetBondDetailsQueryHandler } from "../../../app/usecase/query/bond/get/getBondDetails/GetBondDetailsQueryHandler";
import { GetPrincipalForQueryHandler } from "../../../app/usecase/query/bond/get/getPrincipalFor/GetPrincipalForQueryHandler";
import { GetRateQueryHandler } from "../../../app/usecase/query/interestRates/getRate/GetRateQueryHandler";
import { GetInterestRateQueryHandler } from "../../../app/usecase/query/interestRates/getInterestRate/GetInterestRateQueryHandler";
import { GetImpactDataQueryHandler } from "../../../app/usecase/query/interestRates/getImpactData/GetImpactDataQueryHandler";
import { TOKENS } from "../Tokens";
import { GetLatestKpiDataQueryHandler } from "../../../app/usecase/query/interestRates/getLatestKpiData/GetLatestKpiDataQueryHandler";
import { GetCouponFromOrderedListAtQueryHandler } from "../../../app/usecase/query/bond/coupons/getCouponFromOrderedListAt/GetCouponFromOrderedListAtQueryHandler";
import { GetMinDateQueryHandler } from "../../../app/usecase/query/kpis/getMinDate/GetMinDateQueryHandler";
import { IsCheckPointDateQueryHandler } from "../../../app/usecase/query/kpis/isCheckPointDate/IsCheckPointDateQueryHandler";
import { ScheduledCouponListingCountQueryHandler } from "../../../app/usecase/query/scheduledTasks/scheduledCouponListingCount/ScheduledCouponListingCountQueryHandler";
import { GetScheduledCouponListingQueryHandler } from "../../../app/usecase/query/scheduledCouponListing/getScheduledCouponListing/GetScheduledCouponListingQueryHandler";
export const COMMAND_HANDLERS_BOND = [
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: CreateBondCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: CreateBondFixedRateCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: CreateBondKpiLinkedRateCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: SetCouponCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: CancelCouponCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: UpdateMaturityDateCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: RedeemAtMaturityByPartitionCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: FullRedeemAtMaturityCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: SetRateCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: SetInterestRateCommandHandler,
    },
    {
        token: TOKENS.COMMAND_HANDLER,
        useClass: SetImpactDataCommandHandler,
    },
];
export const QUERY_HANDLERS_BOND = [
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponForQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponsForQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponAmountForQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetPrincipalForQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponCountQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetBondDetailsQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponHoldersQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetTotalCouponHoldersQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponFromOrderedListAtQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponsOrderedListQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetCouponsOrderedListTotalQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetRateQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetInterestRateQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetImpactDataQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetLatestKpiDataQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetMinDateQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: IsCheckPointDateQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: ScheduledCouponListingCountQueryHandler,
    },
    {
        token: TOKENS.QUERY_HANDLER,
        useClass: GetScheduledCouponListingQueryHandler,
    },
];
