import dayjs from 'dayjs';
/** OS BookingContext 日期变更事件名（配合 `store.bookingContext.effectsOn` 使用）。 */
export var BOOKING_CONTEXT_DATE_EVENT = 'onDateChange';

/**
 * 将 BookingContext / dayjs / 字符串统一格式化为 `YYYY-MM-DD HH:mm:ss`。
 *
 * @example
 * formatBookingDateTime(dayjs()); // '2026-05-25 14:30:00'
 * formatBookingDateTime('2026-05-25'); // '2026-05-25 00:00:00'
 */
export function formatBookingDateTime(raw) {
  if (raw == null || raw === '') return null;
  var parsed = dayjs(raw);
  return parsed.isValid() ? parsed.format('YYYY-MM-DD HH:mm:ss') : null;
}

/**
 * 订阅 BookingContext 日期变更；返回取消订阅函数。
 *
 * @example
 * const off = subscribeBookingDateChange(bookingTicket, (date) => {
 *   console.log('booking date changed', date);
 * });
 * off();
 */
export function subscribeBookingDateChange(bookingTicket, callback) {
  var _store;
  var module = bookingTicket === null || bookingTicket === void 0 || (_store = bookingTicket.store) === null || _store === void 0 ? void 0 : _store.bookingContext;
  if (!module || typeof module.effectsOn !== 'function') {
    return function () {};
  }
  var off = module.effectsOn(BOOKING_CONTEXT_DATE_EVENT, callback);
  return typeof off === 'function' ? off : function () {};
}