const { pool } = require('../database')

async function createMention(nom, uniter) {
  const sql = 'INSERT INTO mentions (nom, uniter) VALUES (?, ?)'

  try {
    let [result] = await pool.query(sql, [nom, uniter])

    return {
      success: true,
      id: result.insertId
    }
  } catch (error) {
    return { success: false, error: 'Erreur veullez réeseyer' + error }
  }
}

async function deleteMention(id) {
  const sql = 'DELETE FROM mentions WHERE id = ?'

  try {
    let [result] = await pool.query(sql, [id])

    if (result.affectedRows === 0) {
      return {
        success: false,
        message: 'Année Univesitaire non trouvé.'
      }
    }

    return {
      success: true,
      message: 'Année Univesitaire supprimé avec succès.'
    }
  } catch (error) {
    return { success: false, error: 'Erreur veullez réeseyer' + error }
  }
}

async function getMentions() {
  const sql = 'SELECT * FROM mentions'

  try {
    let [rows] = await pool.query(sql)

    return rows
  } catch (error) {
    return { success: false, error: 'Erreur veullez réeseyer' + error }
  }
}

async function getSingleMention(id) {
  const sql = 'SELECT * FROM mentions WHERE id = ?'

  try {
    let [rows] = await pool.query(sql, [id])

    return rows[0]
  } catch (error) {
    return { success: false, error: 'Erreur veullez réeseyer' + error }
  }
}

async function updateMention(nom, uniter, id) {
  const sql = 'UPDATE mentions SET nom = ?, uniter = ? WHERE id = ?'

  try {
    let [result] = await pool.query(sql, [nom, uniter, id])

    if (result.affectedRows === 0) {
      return {
        success: false,
        message: 'Année Univesitaire non trouvé ou aucune modification effectuée.'
      }
    }

    return {
      success: true,
      message: 'Année Univesitaire mis à jour avec succès.'
    }
  } catch (error) {
    return { success: false, error: 'Erreur veullez réeseyer' + error }
  }
}

module.exports = {
  createMention,
  deleteMention,
  getMentions,
  getSingleMention,
  updateMention
}
