2023-02-27 22:42:10 +03:00

65 lines
1.9 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-non-null-assertion */
import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types';
import initializeApollo from '@/apollo/client';
import * as insuranceTable from '@/config/tables/insurance-table';
import * as CRMTypes from '@/graphql/crm.types';
import { gql } from '@apollo/client';
const { DEFAULT_FINGAP_ROW, DEFAULT_KASKO_ROW, DEFAULT_OSAGO_ROW } = insuranceTable;
const QUERY_GET_QUOTE_INSURANCE_DATA = gql`
query GetQuoteInsuranceData($quoteId: Uuid!) {
quote(quoteId: $quoteId) {
evo_osago_accountid
evo_osago_payer
evo_osago_price
evo_kasko_accountid
evo_kasko_payer
evo_kasko_price
evo_insurance_period
evo_fingap_accountid
evo_fingap_payer
evo_fingap_period
}
}
`;
export async function getKPData({
values: { quote: quoteId },
}: GetQuoteInputData): Promise<GetQuoteProcessData> {
const apolloClient = initializeApollo();
const {
data: { quote },
} = await apolloClient.query({
query: CRMTypes.GetQuoteInsuranceDataDocument,
variables: {
quoteId,
},
});
return {
insurance: {
values: {
fingap: Object.assign(DEFAULT_FINGAP_ROW, {
insTerm: quote?.evo_fingap_period,
insuranceCompany: quote?.evo_fingap_accountid,
insured: quote?.evo_fingap_payer,
}),
kasko: Object.assign(DEFAULT_KASKO_ROW, {
insCost: quote?.evo_kasko_price,
insTerm: quote?.evo_insurance_period,
insuranceCompany: quote?.evo_kasko_accountid,
insured: quote?.evo_kasko_payer,
}),
osago: Object.assign(DEFAULT_OSAGO_ROW, {
insCost: quote?.evo_osago_price,
insTerm: quote?.evo_insurance_period,
insuranceCompany: quote?.evo_osago_accountid,
insured: quote?.evo_osago_payer,
}),
},
},
};
}