const {museumApi} = require('../../../utils/api.js');

Page({
  data: {
    appointmentSlots: [], // 存储预约时段数据
    openTime: '10:00', // 开馆时间
    closeTime: '18:00', // 闭馆时间
    stopCheckTime: '17:00', // 停止检票时间
    noticeContent: '' // 预约须知内容
  },

  onLoad(options) {
    // 页面加载时的逻辑
    console.log('页面加载');
    this.loadAppointmentSlots();
    this.loadNoticeContent();
  },

  // 加载预约时段数据
  loadAppointmentSlots() {
    // 获取当前日期
    const today = new Date();
    const dateString = today.getFullYear() + '-' + 
      String(today.getMonth() + 1).padStart(2, '0') + '-' + 
      String(today.getDate()).padStart(2, '0');
    
    console.log('获取预约时段，日期：', dateString);
    
    // 调用API获取预约时段
    museumApi.getSlotsByDate(dateString)
      .then(res => {
        console.log('获取预约时段成功：', res);
        if (res) {
          this.setData({
            appointmentSlots: res
          });
          this.updateTimeInfo(res);
        } else {
          console.error('获取预约时段失败：', res.message || '未知错误');
          this.setDefaultTime();
          wx.showToast({
            title: '获取预约时段失败',
            icon: 'none'
          });
        }
      })
      .catch(err => {
        console.error('获取预约时段异常：', err);
        this.setDefaultTime();
        // wx.showToast({
        //   title: '网络异常，请稍后重试',
        //   icon: 'none'
        // });
      });
  },

  // 加载预约须知内容
  loadNoticeContent() {
    console.log('获取预约须知内容');
    
    // 调用API获取预约须知
    museumApi.getSlots()
      .then(res => {
        console.log('获取预约须知成功：', res);
        if (res) {
          this.setData({
            noticeContent: res.notice.rtf
          });
          
        } else {
          console.error('获取预约须知失败：', res.message || '未知错误');
        }
      })
      .catch(err => {
        console.error('获取预约须知异常：', err);
      });
  },

  // 判断时间段是否为下午（大于等于14:00）
  isAfternoonTime(timeStr) {
    // 时间格式如："10:00-14:00" 或 "14:00-18:00"
    const startTime = timeStr.split('-')[0].trim();
    const hour = parseInt(startTime.split(':')[0]);
    return hour >= 14;
  },

  // 更新时间信息
  updateTimeInfo(data) {
    let openTime = '10:00';
    let closeTime = '18:00';
    let stopCheckTime = '17:00';

    if (data.length === 1) {
      // 只有一项数据，直接取time
      const timeRange = data[0].time;
      if (timeRange && timeRange.includes('-')) {
        const times = timeRange.split('-');
        openTime = times[0];
        closeTime = times[1];
      }
    } else if (data.length >= 2) {
      // 有两项或更多数据，根据时间段判断上午下午
      let morningData = null;
      let afternoonData = null;
      
      // 遍历数据，根据时间判断是上午还是下午
      data.forEach(item => {
        if (this.isAfternoonTime(item.time)) {
          afternoonData = item;
        } else {
          morningData = item;
        }
      });
      
      // 取上午时段的开始时间作为开馆时间
      if (morningData && morningData.time.includes('-')) {
        openTime = morningData.time.split('-')[0];
      }
      
      // 取下午时段的结束时间作为闭馆时间
      if (afternoonData && afternoonData.time.includes('-')) {
        closeTime = afternoonData.time.split('-')[1];
      }
      
      // 如果没有上午时段，用下午时段的开始时间作为开馆时间
      if (!morningData && afternoonData && afternoonData.time.includes('-')) {
        openTime = afternoonData.time.split('-')[0];
      }
      
      // 如果没有下午时段，用上午时段的结束时间作为闭馆时间
      if (!afternoonData && morningData && morningData.time.includes('-')) {
        closeTime = morningData.time.split('-')[1];
      }
    }

    // 计算停止检票时间（闭馆时间往前一个小时）
    stopCheckTime = this.calculateStopCheckTime(closeTime);

    this.setData({
      openTime: openTime,
      closeTime: closeTime,
      stopCheckTime: stopCheckTime
    });

    console.log('更新时间信息：', { openTime, closeTime, stopCheckTime });
  },

  // 设置默认时间
  setDefaultTime() {
    this.setData({
      openTime: '10:00',
      closeTime: '18:00',
      stopCheckTime: '17:00'
    });
  },

  // 计算停止检票时间（闭馆时间往前一个小时）
  calculateStopCheckTime(closeTime) {
    try {
      const [hours, minutes] = closeTime.split(':').map(Number);
      let stopHour = hours - 1;
      
      // 处理跨天的情况
      if (stopHour < 0) {
        stopHour = 23;
      }
      
      return String(stopHour).padStart(2, '0') + ':' + String(minutes).padStart(2, '0');
    } catch (error) {
      console.error('计算停止检票时间失败：', error);
      return '17:00'; // 默认值
    }
  },

  onShow() {
    // 页面显示时的逻辑
    console.log(111111)
  },

  // 返回首页
  goBack() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },

  // 开始预约
  startPreview() {
    wx.navigateTo({
      url: '/pages/index/start-preview/start-preview'
    });
  },

  // 查看我的参观人
  viewMyVisitors() {
    wx.navigateTo({
      url: '/pages/user/userList/index'
    });
  },

  onShareAppMessage() {
    return {
      title: '克拉玛依博物馆 - 预约参观',
      path: '/pages/index/visitpreview/visitpreview'
    };
  }
});