import mysql.connector
from flask import Flask, render_template, send_from_directory, url_for, jsonify, render_template, request

app = Flask(__name__, static_url_path='/static', static_folder='static')

# MySQL iestatījumi
app.config['MYSQL_HOST'] = '127.0.0.1'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'projekts'

mysql = mysql.connector.connect(
    host=app.config['MYSQL_HOST'],
    user=app.config['MYSQL_USER'],
    password=app.config['MYSQL_PASSWORD'],
    database=app.config['MYSQL_DB']
)

@app.route('/images/<filename>')
def get_image(filename):
    return send_from_directory('images', filename)

@app.route('/lapa/<int:row_id>')
def detail(row_id):
    cur = mysql.cursor()

    # savāc datus no db
    query = 'SELECT * FROM dzivnieki WHERE id = %s'
    cur.execute(query, (row_id,))
    data = cur.fetchone()

    cur.close()

    return render_template('lapa.html', data=data)


@app.route('/filter_by_class', methods=['POST'])
def filter_by_class():
    try:
        # sajadzīgo datu ieguve
        selected_option = request.json.get('classFilter')

        if selected_option:
            query = "SELECT * FROM dzivnieki WHERE klase = %s"
            params = (selected_option,)
        else:
            query = "SELECT * FROM dzivnieki"
            params = ()

        cur = mysql.cursor()
        cur.execute(query, params)
        data = cur.fetchall()
        cur.close()

        html_content = render_template('index.html', data=data)
        return jsonify(html=html_content)
    except Exception as e:
        print(f"Error: {e}")
        return jsonify(error=str(e))
    
@app.route('/')
def index():
    try:
        cur = mysql.cursor()
        cur.execute('SELECT * FROM dzivnieki')
        data = cur.fetchall()
        cur.close()
        
        return render_template('index.html', data=data)
    except Exception as e:
        print(f"Error: {e}")
        return f"{e}"

if __name__ == '__main__':
    app.run(debug=True)
