from flask import Blueprint, redirect, session, request, jsonify
from models import Asset, db
import json
from config import item_attributes  # Import the configuration

confirm_save_bp = Blueprint('confirm_save', __name__)

@confirm_save_bp.route('/confirm_save', methods=['POST'])
def confirm_save():
    if 'assets' not in request.form:
        return "No assets data found in the request.", 400

    try:
        edited_assets = json.loads(request.form['assets'])
    except json.JSONDecodeError:
        return "Invalid JSON data in the request.", 400

    session['assets'] = edited_assets

    for asset_data in edited_assets:
        # Dynamically create the Asset object using item_attributes
        asset = Asset(**{
            attrib: asset_data[attrib]
            for attrib in item_attributes
        })
        db.session.add(asset)

    try:
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        return f"Error saving data to the database: {str(e)}", 500

    session.pop('assets', None)  # Clear session data
    return redirect('/viewall')