from flask import render_template, Blueprint, request, flash, redirect, url_for, jsonify
from minibase.blueprints.company.models import Companies

database = Blueprint('database', __name__, template_folder='templates')

@database.route('/search/<field_name>/<table_name>/<key_name>/<ret_name>', methods=['GET'])
def search_auto(field_name, table_name, key_name, ret_name):
    keyLike = request.args.get('modalReqArg', '')

    MODEL_MAP = {
        'Companies': Companies,
    }

    table = MODEL_MAP.get(table_name)
    if table is None:
        return f"Error: Table '{table_name}' not found.", 400

    column = getattr(table, key_name.strip(), None)

    if column is None:
        return f"Error: Column '{key_name}' not found in table '{table_name}'.", 400

    # Proceed with filtering if the column is found
    results = table.query.filter(column.ilike(f'%{keyLike}%')).all()

    return render_template('database/search_results.html', field_name=field_name, results=results, returnAttr=ret_name)


@database.route('/select/<field_name>/<int:result_id>/<result_content>', methods=['GET'])
def select_field(field_name, result_id, result_content):
    return f'<option value="{result_id}" selected>{result_content}</option>'