

from regenerate import regenerate_content_with_check
from generate import generate_topic_response
from flask import Flask, request, jsonify
from dotenv import load_dotenv
import os
from flask_cors import CORS

load_dotenv()
PORT = os.getenv("PORT")

app = Flask(__name__)
CORS(app)  

    
@app.route('/generate_topic', methods=['POST'])
def get_topic():
    try:
        data = request.get_json()
        if not data or 'topic' not in data:
            return jsonify({"error": "Topic is required."}), 400

        topic = data['topic']
        generated_content, plag_report, duplicate_report = regenerate_content_with_check(topic)
        app.logger.info(f"Generated Content: {generated_content}")
        app.logger.info(f"Plagiarism Report: {plag_report}")
        app.logger.info(f"Duplicate Report: {duplicate_report}")

        rephrased = plag_report.get("is_ai_generated", False) or duplicate_report

        return jsonify({
            "topic": topic,
            "generated_content": generated_content,
            "plagiarism_report": plag_report,
            "duplicate_report": duplicate_report,
            "rephrased": rephrased
        }), 200
    except Exception as e:
        return jsonify({"error": str(e)}), 500
    
@app.route('/get_topic', methods=['POST'])
def get_topic_response():
    try:
        data = request.get_json()
        if not data or 'topic' not in data:
            return jsonify({"error": "Topic is required."}), 400

        topic = data['topic']
        response = generate_topic_response(topic) 
        return jsonify({"response": response}), 200
    except Exception as e:
        return jsonify({"error": str(e)}), 500
 

if __name__ == '__main__':
    app.run(debug=True, port=PORT)
