from flask import Blueprint, request, render_template, redirect, abort
from definitions.models import Asset, db
from config import item_attributes

delete_bp = Blueprint('deleteasset', __name__)

@delete_bp.route('/delete/<string:primary_value>/', methods=['GET', 'POST'])
def delete(primary_value):
    # Identify the primary attribute
    primary_attrib = next(
        (attrib for attrib, config in item_attributes.items() if config.primary),
        None
    )

    if not primary_attrib:
        return "Primary attribute not defined in configuration."

    # Fetch the item using the primary attribute
    item = Asset.query.filter_by(**{primary_attrib: primary_value}).first()
    if not item:
        abort(404)  # Item not found

    if request.method == 'POST':
        db.session.delete(item)
        db.session.commit()
        return redirect('/viewall')

    return render_template('delete.html', item=item)