const VersionModel = require('../../../models/VersionModel')

// Endpoint برای دریافت نسخه فعلی
const getVersion = async (req, res, next) => {
  try {
    const currentVersion = await VersionModel.findOne().sort({ _id: -1 }).exec()
    if (!currentVersion) {
      return res.status(200).json({ message: 'نسخه‌ای پیدا نشد' })
    }
    res.json(currentVersion)
  } catch (error) {
    res.status(500).json({ message: 'خطای سرور', error })
  }
}
// متد برای ایجاد یا ویرایش نسخه
const upsertVersion = async (req, res, next) => {
  try {
    const { version, mandatory, releaseNotes, updateUrls } = req.body

    if (!version || !Array.isArray(updateUrls) || updateUrls.length === 0) {
      return res.status(400).json({ message: 'اطلاعات ناقص است' })
    }

    // پیدا کردن نسخه‌ای که مشابه باشد و ویرایش یا ایجاد
    const updatedVersion = await VersionModel.findOneAndUpdate(
      { version }, // شرط برای پیدا کردن نسخه با همین شماره
      { mandatory, releaseNotes, updateUrls }, // به‌روزرسانی مقادیر
      { new: true, upsert: true } // ایجاد نسخه جدید اگر وجود ندارد
    )

    res.status(200).json({ message: 'نسخه به‌روزرسانی شد', version: updatedVersion })
  } catch (error) {
    res.status(500).json({ message: 'خطای سرور', error })
  }
}

module.exports = { getVersion, upsertVersion }
