from flask import Flask, request, jsonify
from db_connection import get_connection
import pyodbc

app = Flask(__name__)

# === Conexión con SQL Server ===
def get_db_connection():
    conn = pyodbc.connect(
        'DRIVER={SQL Server};'
        'SERVER=localhost;'
        'DATABASE=SIPAH_DB;'
        'UID=sipah_user;'
        'PWD=12345;'
        'TrustServerCertificate=yes;'
    )
    return conn

# === Endpoint: Obtener productos ===
@app.route('/api/productos', methods=['GET'])
def obtener_productos():
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM productos")
    columnas = [col[0] for col in cursor.description]
    productos = [dict(zip(columnas, fila)) for fila in cursor.fetchall()]
    conn.close()
    return jsonify(productos)

# === Endpoint: Agregar producto ===
@app.route('/api/productos', methods=['POST'])
def agregar_producto():
    data = request.get_json()
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute("""
        INSERT INTO productos (nombre, precio, imagen_url, pasteleria_id)
        VALUES (?, ?, ?, ?)
    """, (data['nombre'], data['precio'], data['imagen_url'], data['pasteleria_id']))
    conn.commit()
    conn.close()
    return jsonify({"mensaje": "Producto agregado correctamente"}), 201

# === Endpoint: Obtener comentarios ===
@app.route('/api/comentarios', methods=['GET'])
def obtener_comentarios():
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM comentarios ORDER BY fecha DESC")
    columnas = [col[0] for col in cursor.description]
    comentarios = [dict(zip(columnas, fila)) for fila in cursor.fetchall()]
    conn.close()
    return jsonify(comentarios)

# === Endpoint: Agregar comentario ===
@app.route('/api/comentarios', methods=['POST'])
def agregar_comentario():
    data = request.get_json()
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute("""
        INSERT INTO comentarios (nombre, comentario, pasteleria)
        VALUES (?, ?, ?)
    """, (data['nombre'], data['comentario'], data['pasteleria']))
    conn.commit()
    conn.close()
    return jsonify({"mensaje": "Comentario agregado correctamente"}), 201

if __name__ == '__main__':
    print("✅ Servidor Flask corriendo en http://127.0.0.1:5000")
    app.run(debug=True)
