import { _objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
import { resolveIsMultiDayProduct } from "./resolveIsMultiDayProduct.js";
import dayjs from "dayjs";
//#region src/plus/salesSdk/utils/patchCacheItemDateRange.ts
/**
* 将跨日弹窗结果写入 cacheItem._extend（对齐 `createCacheItemFromParams` 的 start/end）。
*/
function patchCacheItemDateRange(cacheItem, range) {
	var _range$duration, _cacheItem$_extend, _cacheItem$_extend2, _cacheItem$_extend3;
	const start = dayjs(range.startDate);
	const end = dayjs(range.endDate);
	const duration = (_range$duration = range.duration) !== null && _range$duration !== void 0 ? _range$duration : end.isValid() && start.isValid() ? Math.max(1, end.diff(start, "day")) : void 0;
	const startTime = ((_cacheItem$_extend = cacheItem._extend) === null || _cacheItem$_extend === void 0 ? void 0 : _cacheItem$_extend.start_time) && String(cacheItem._extend.start_time).trim() !== "" ? cacheItem._extend.start_time : start.isValid() ? start.format("HH:mm") : void 0;
	return _objectSpread2(_objectSpread2({}, cacheItem), {}, { _extend: _objectSpread2(_objectSpread2(_objectSpread2({}, cacheItem._extend), {}, {
		start_date: start.isValid() ? start : (_cacheItem$_extend2 = cacheItem._extend) === null || _cacheItem$_extend2 === void 0 ? void 0 : _cacheItem$_extend2.start_date,
		end_date: end.isValid() ? end : (_cacheItem$_extend3 = cacheItem._extend) === null || _cacheItem$_extend3 === void 0 ? void 0 : _cacheItem$_extend3.end_date
	}, startTime ? {
		start_time: startTime,
		end_time: startTime
	} : {}), duration !== void 0 ? { duration } : {}) });
}
/**
* 跨日商品未选区间时，对齐 info2 addService：默认 end = start + 1 天。
*/
function applyDefaultMultiDayRangeIfNeeded(cacheItem, catalogItem, anchorDate) {
	var _cacheItem$_extend4, _cacheItem$_extend5;
	if (!resolveIsMultiDayProduct(cacheItem, catalogItem)) return cacheItem;
	if (cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend4 = cacheItem._extend) === null || _cacheItem$_extend4 === void 0 ? void 0 : _cacheItem$_extend4.end_date) return cacheItem;
	const start = dayjs((cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend5 = cacheItem._extend) === null || _cacheItem$_extend5 === void 0 ? void 0 : _cacheItem$_extend5.start_date) || anchorDate || void 0);
	if (!start.isValid()) return cacheItem;
	return patchCacheItemDateRange(cacheItem, {
		startDate: start.format("YYYY-MM-DD"),
		endDate: start.add(1, "day").format("YYYY-MM-DD"),
		duration: 1
	});
}
//#endregion
export { applyDefaultMultiDayRangeIfNeeded, patchCacheItemDateRange };
