@procraft/widget-order
Version:
Order widget for landing
70 lines • 3.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCatalogItemData = void 0;
/**
* Формирование коммерческих данных для элементов каталога.
* Это надо, чтобы определять можно ли предоставить составную скидку.
*/
const getCatalogItemData = (
// catalogItem: Omit<WidgetOrderCourseItem['catalogItem'], 'sales'>,
fieldValue
// course: CourseFragment,
) => {
// const course = courses.find((n) => n.uid === catalogItem.course?.courseId)
// if (!course) {
// return null
// }
// console.log('getCatalogItemData course', course);
// console.log('getCatalogItemData catalogItem', catalogItem);
// TODO Удалить иэ схемы АПИ
// const tariffPerFlowDataItem = course.tariffPerFlowDataItems?.find(
// (tariffPerFlowDataItem) => {
// return (
// // tariffPerFlowDataItem.courseId === course.uid &&
// tariffPerFlowDataItem.courseId === catalogItem.course?.courseId &&
// // tariffPerFlowDataItem.flowId === flow.uid &&
// tariffPerFlowDataItem.flowId === catalogItem.course.flowId &&
// // tariffPerFlowDataItem.courseTariffId === tariff.uid
// tariffPerFlowDataItem.courseTariffId === catalogItem.course.tariffId
// )
// }
// )
// console.log('getCatalogItemData tariffPerFlowDataItem', tariffPerFlowDataItem);
// if (!tariffPerFlowDataItem) {
// return null
// }
// const tariff = course.tariffs?.find(
// (n) => n.uid === catalogItem.course?.tariffId
// )
// console.log('getCatalogItemData tariff', tariff);
// if (!tariff) {
// return null
// }
// const flow = course.flows?.find((n) => n.uid === tariffPerFlowDataItem.flowId)
// // TODO Сейчас пока добавил проверу по дате завршения, но вообще на бэке
// // должны доработать и отдавать только актуальные данные, так что
// // в дальнейшем можно будет исключить эту проверку.
// if (!flow || (flow.finishesAt && flow.finishesAt < new Date())) {
// return null
// }
/**
* !!! Если null, то без ограничения мест
*/
// const placesLeft =
// tariffPerFlowDataItem?.computed?.capacityRemainder !== undefined
// ? tariffPerFlowDataItem?.computed?.capacityRemainder
// : null
// TODO Сейчас сервер не возвращает эти данные, ждем фикса
const placesLeft = fieldValue.availableCount || null;
/**
* Доступность для покупки.
* Если нет свободных мест и места ограничены, то нельзя купить
*/
const available = typeof placesLeft !== 'number' || placesLeft > 0;
return {
available,
placesLeft,
};
};
exports.getCatalogItemData = getCatalogItemData;
//# sourceMappingURL=index.js.map