/**
 * Soul创业派对 - 首页
 * 开发: 卡若
 * 技术支持: 存客宝
 */

const app = getApp()

Page({
  data: {
    // 系统信息
    statusBarHeight: 44,
    navBarHeight: 88,
    
    // 用户信息
    isLoggedIn: false,
    hasFullBook: false,
    purchasedCount: 0,
    
    // 书籍数据
    totalSections: 62,
    bookData: [],
    
    // 推荐章节
    featuredSections: [
      { id: '1.1', title: '荷包：电动车出租的被动收入模式', tag: '免费', tagClass: 'tag-free', part: '真实的人' },
      { id: '3.1', title: '3000万流水如何跑出来', tag: '热门', tagClass: 'tag-pink', part: '真实的行业' },
      { id: '8.1', title: '流量杠杆:抖音、Soul、飞书', tag: '推荐', tagClass: 'tag-purple', part: '真实的赚钱' }
    ],
    
    // 最新章节（动态计算）
    latestSection: null,
    latestLabel: '最新更新',
    
    // 内容概览
    partsList: [
      { id: 'part-1', number: '一', title: '真实的人', subtitle: '人与人之间的底层逻辑' },
      { id: 'part-2', number: '二', title: '真实的行业', subtitle: '电商、内容、传统行业解析' },
      { id: 'part-3', number: '三', title: '真实的错误', subtitle: '我和别人犯过的错' },
      { id: 'part-4', number: '四', title: '真实的赚钱', subtitle: '底层结构与真实案例' },
      { id: 'part-5', number: '五', title: '真实的社会', subtitle: '未来职业与商业生态' }
    ],
    
    // 加载状态
    loading: true
  },

  onLoad(options) {
    // 获取系统信息
    this.setData({
      statusBarHeight: app.globalData.statusBarHeight,
      navBarHeight: app.globalData.navBarHeight
    })
    
    // 处理分享参数（推荐码绑定）
    if (options && options.ref) {
      console.log('[Index] 检测到推荐码:', options.ref)
      app.handleReferralCode({ query: options })
    }
    
    // 初始化数据
    this.initData()
  },

  onShow() {
    // 设置TabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({ selected: 0 })
    }
    
    // 更新用户状态
    this.updateUserStatus()
  },

  // 初始化数据
  async initData() {
    this.setData({ loading: true })
    
    try {
      // 获取书籍数据
      await this.loadBookData()
      // 计算推荐章节
      this.computeLatestSection()
    } catch (e) {
      console.error('初始化失败:', e)
    } finally {
      this.setData({ loading: false })
    }
  },

  // 计算推荐章节（根据用户ID随机、优先未付款）
  computeLatestSection() {
    const { hasFullBook, purchasedSections } = app.globalData
    const userId = app.globalData.userInfo?.id || wx.getStorageSync('userId') || 'guest'
    
    // 所有章节列表
    const allSections = [
      { id: '9.14', title: '大健康私域：一个月150万的70后', part: '真实的赚钱' },
      { id: '9.13', title: 'AI工具推广：一个隐藏的高利润赛道', part: '真实的赚钱' },
      { id: '9.12', title: '美业整合：一个人的公司如何月入十万', part: '真实的赚钱' },
      { id: '8.6', title: '云阿米巴:分不属于自己的钱', part: '真实的赚钱' },
      { id: '8.1', title: '流量杠杆:抖音、Soul、飞书', part: '真实的赚钱' },
      { id: '3.1', title: '3000万流水如何跑出来', part: '真实的行业' },
      { id: '5.1', title: '拍卖行抱朴：一天240万的摇号生意', part: '真实的行业' },
      { id: '4.1', title: '旅游号:30天10万粉的真实逻辑', part: '真实的行业' }
    ]
    
    // 用户ID生成的随机种子（同一用户每天看到的不同）
    const today = new Date().toISOString().split('T')[0]
    const seed = (userId + today).split('').reduce((a, b) => a + b.charCodeAt(0), 0)
    
    // 筛选未付款章节
    let candidates = allSections
    if (!hasFullBook) {
      const purchased = purchasedSections || []
      const unpurchased = allSections.filter(s => !purchased.includes(s.id))
      if (unpurchased.length > 0) {
        candidates = unpurchased
      }
    }
    
    // 根据种子选择章节
    const index = seed % candidates.length
    const selected = candidates[index]
    
    // 设置标签（如果有新增章节显示"最新更新"，否则显示"推荐阅读"）
    const label = candidates === allSections ? '推荐阅读' : '为你推荐'
    
    this.setData({
      latestSection: selected,
      latestLabel: label
    })
  },

  // 加载书籍数据
  async loadBookData() {
    try {
      const res = await app.request('/api/book/all-chapters')
      if (res && res.data) {
        this.setData({
          bookData: res.data,
          totalSections: res.totalSections || 62
        })
      }
    } catch (e) {
      console.error('加载书籍数据失败:', e)
    }
  },

  // 更新用户状态
  updateUserStatus() {
    const { isLoggedIn, hasFullBook, purchasedSections } = app.globalData
    
    this.setData({
      isLoggedIn,
      hasFullBook,
      purchasedCount: hasFullBook ? this.data.totalSections : (purchasedSections?.length || 0)
    })
  },

  // 跳转到目录
  goToChapters() {
    wx.switchTab({ url: '/pages/chapters/chapters' })
  },

  // 跳转到搜索页
  goToSearch() {
    wx.navigateTo({ url: '/pages/search/search' })
  },

  // 跳转到阅读页
  goToRead(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({ url: `/pages/read/read?id=${id}` })
  },

  // 跳转到匹配页
  goToMatch() {
    wx.switchTab({ url: '/pages/match/match' })
  },

  // 跳转到我的页面
  goToMy() {
    wx.switchTab({ url: '/pages/my/my' })
  },

  // 下拉刷新
  async onPullDownRefresh() {
    await this.initData()
    this.updateUserStatus()
    wx.stopPullDownRefresh()
  }
})
