from flask import request, jsonify
from db_config import get_db_connection

def get_all_feedbacks():
    try:
        conn = get_db_connection()
        cursor = conn.cursor(dictionary=True)
        cursor.execute("SELECT * FROM feedbacks ORDER BY id DESC")
        feedbacks = cursor.fetchall()
        cursor.close()
        conn.close()
        return jsonify(feedbacks)
    except Exception as e:
        return jsonify({"error": str(e)}), 500


def submit_feedback():
    try:
        data = request.json
        user_id = data.get("user_id")
        feedback_type = data.get("feedback_type")
        title = data.get("title")
        description = data.get("description")

        if not user_id or not feedback_type or not title or not description:
            return jsonify({"error": "Missing required fields"}), 400

        conn = get_db_connection()
        cursor = conn.cursor()
        cursor.execute(
            "INSERT INTO feedbacks (user_id, feedback_type, title, description) VALUES (%s, %s, %s, %s)",
            (user_id, feedback_type, title, description)
        )
        conn.commit()
        cursor.close()
        conn.close()
        return jsonify({"status": "feedback submitted"}), 201
    except Exception as e:
        return jsonify({"error": str(e)}), 500


def delete_feedback():
    try:
        data = request.json
        feedback_id = data.get("feedback_id")
        if not feedback_id:
            return jsonify({"error": "Missing feedback_id"}), 400

        conn = get_db_connection()
        cursor = conn.cursor()
        cursor.execute("DELETE FROM feedbacks WHERE id = %s", (feedback_id,))
        conn.commit()
        cursor.close()
        conn.close()
        return jsonify({"status": "feedback deleted"}), 200
    except Exception as e:
        return jsonify({"error": str(e)}), 500
