from flask import Flask, redirect, url_for, request, render_template, make_response, session, abort
from flask_cors import CORS
from flask import jsonify


from config import DEBUG, SECRET_KEY, PORT
import os
import requests
import subscribers

from controllers.getProductController import display_product_bp
from controllers.addReviewController import add_review_bp
from controllers.productHomeController import product_home_bp
from controllers.getReviews import get_review_bp




app = Flask(__name__)
CORS(app)


app.secret_key = SECRET_KEY


# Read user microservice URL from environment variable
USER_MICROSERVICE_URL = os.getenv('USER_MICROSERVICE_URL', 'http://127.0.0.1:5000')


#subscribers.consume_username_updated_event()

@app.route('/product', methods=['POST'])
def get_session_id():
    session_id = session.get('user_id')
    if session_id:
        return jsonify({'session_id': session_id})
    else:
        return jsonify({'message': 'Session ID not found'})



@app.route('/')
def index():
    return render_template("index.html")



app.register_blueprint(display_product_bp)
app.register_blueprint(add_review_bp)
app.register_blueprint(product_home_bp)
app.register_blueprint(get_review_bp)





if __name__ == '__main__':

    subscribers.start_kafka_consumer()

    app.run(debug=DEBUG, port=PORT)