// pages/index/index.js
const app = getApp()

Page({
  data: {
    bookStats: {
      chapters: 64,
      words: '15万',
      readers: '1.5万'
    },
    allChapters: [],
    loading: true
  },

  onLoad() {
    this.loadAllChapters()
  },

  onShow() {
    // 每次显示时刷新数据
    this.refreshData()
  },

  // 加载所有章节
  loadAllChapters() {
    wx.showLoading({ title: '加载中...', mask: true })
    
    // 先尝试读取本地生成的章节数据
    wx.request({
      url: `${app.globalData.apiBase}/book/all-chapters`,
      method: 'GET',
      success: (res) => {
        if (res.statusCode === 200 && res.data.chapters) {
          this.setData({
            allChapters: res.data.chapters,
            bookStats: {
              chapters: res.data.total || res.data.chapters.length,
              words: '15万',
              readers: '1.5万'
            },
            loading: false
          })
          // 缓存到本地
          wx.setStorageSync('allChapters', res.data.chapters)
        } else {
          this.loadLocalChapters()
        }
      },
      fail: () => {
        // 使用本地缓存数据
        this.loadLocalChapters()
      },
      complete: () => {
        wx.hideLoading()
      }
    })
  },

  // 加载本地章节数据（离线模式）
  loadLocalChapters() {
    // 尝试从缓存读取
    const cached = wx.getStorageSync('allChapters')
    if (cached && cached.length > 0) {
      this.setData({
        allChapters: cached,
        bookStats: {
          chapters: cached.length,
          words: '15万',
          readers: '1.5万'
        },
        loading: false
      })
      return
    }

    // 如果没有缓存，使用模拟数据
    const mockChapters = [
      { index: 1, id: 'preface', title: '序言｜为什么我每天早上6点在Soul开播？', updateTime: '今天', words: 3200, partTitle: '序言' },
      { index: 2, id: 'ch1-1', title: '1.1 荷包：电动车出租的被动收入模式', updateTime: '今天', words: 4500, partTitle: '第一篇｜真实的人' },
      { index: 3, id: 'ch1-2', title: '1.2 老墨:资源整合高手的社交方法', updateTime: '今天', words: 3800, partTitle: '第一篇｜真实的人' },
    ]
    
    this.setData({
      allChapters: mockChapters,
      bookStats: {
        chapters: mockChapters.length,
        words: '15万',
        readers: '1.5万'
      },
      loading: false
    })
  },

  // 刷新数据
  refreshData() {
    const bookData = app.globalData.bookData
    if (bookData) {
      this.setData({
        bookStats: {
          chapters: bookData.totalChapters || 65,
          words: bookData.totalWords || '12万',
          readers: bookData.totalReaders || '1.2万'
        }
      })
    }
  },

  // 立即阅读（跳转到第一章）
  readNow() {
    if (this.data.allChapters.length > 0) {
      const firstChapter = this.data.allChapters[0]
      wx.navigateTo({
        url: `/pages/read/read?id=${firstChapter.id}`
      })
    } else {
      wx.showToast({
        title: '章节加载中...',
        icon: 'none'
      })
    }
  },

  // 阅读章节
  readChapter(e) {
    const chapterId = e.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/read/read?id=${chapterId}`
    })
  },

  // 查看全部章节
  goToChapters() {
    wx.navigateTo({
      url: '/pages/chapters/chapters'
    })
  },

  // 购买处理
  handlePurchase() {
    // 检查登录状态
    const userInfo = app.getUserInfo()
    
    if (!userInfo) {
      // 未登录，先登录
      this.showLoginModal()
      return
    }

    // 跳转到购买页面
    wx.navigateTo({
      url: '/pages/purchase/purchase'
    })
  },

  // 显示登录弹窗
  showLoginModal() {
    wx.showModal({
      title: '需要登录',
      content: '购买前需要先登录账号',
      confirmText: '立即登录',
      success: (res) => {
        if (res.confirm) {
          this.doLogin()
        }
      }
    })
  },

  // 执行登录
  doLogin() {
    wx.showLoading({ title: '登录中...', mask: true })
    
    app.wxLogin((success, user) => {
      wx.hideLoading()
      
      if (success) {
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        })
        // 登录成功后自动跳转购买
        setTimeout(() => {
          this.handlePurchase()
        }, 1500)
      } else {
        wx.showToast({
          title: '登录失败',
          icon: 'none'
        })
      }
    })
  },

  // 跳转推广页
  goToReferral() {
    wx.switchTab({
      url: '/pages/my/my?tab=referral'
    })
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadAllChapters()
    setTimeout(() => {
      wx.stopPullDownRefresh()
    }, 1000)
  },

  // 分享到微信
  onShareAppMessage() {
    const userInfo = app.getUserInfo()
    const inviteCode = userInfo ? userInfo.inviteCode : ''
    
    return {
      title: 'Soul派对·创业实验 - 一场真实的商业探索',
      path: `/pages/index/index?invite=${inviteCode}`,
      imageUrl: '/assets/images/share-cover.png'
    }
  },

  // 分享到朋友圈
  onShareTimeline() {
    const userInfo = app.getUserInfo()
    const inviteCode = userInfo ? userInfo.inviteCode : ''
    
    return {
      title: 'Soul派对·创业实验',
      query: `invite=${inviteCode}`,
      imageUrl: '/assets/images/share-cover.png'
    }
  }
})
