from flask import Flask, request, jsonify
from flask_cors import CORS
from app.audio_trimmer import trim_audio

app = Flask(__name__)

allowed_origins = ['https://midiat.com.br', 'https://i.midiat.com.br', 'https://t.midiat.com.br']
CORS(app, origins=allowed_origins)

@app.route('/', methods=['POST'])
def get_trimmed_audio():
    try:
        data = request.get_json()
        if not data:
            return jsonify({"error": "No json data provided"}), 400

        audio_url = data.get('audio_url')
        start = data.get('start_time')
        end = data.get('end_time')

        if not all([audio_url, start, end]):
            return jsonify({"error": "Missing 'audio_url', 'start_time', or 'end_time' parameters"}), 400
        try:
            start = float(start)
            end = float(end)
            if start < 0 or end < 0 or start >= end:
                return jsonify({"error": "Invalid start or end times"}), 400
        except ValueError as e:
            return jsonify({"error": "Invalid start or end times (must be numbers)"}), 400

        try:
            file_url = trim_audio(audio_url, start, end)
            return jsonify({"new_audio_url": file_url})
        except Exception as e:
            return jsonify({"error": f"{e}"})

    except Exception as e:
        print(f"An error occurred: {e}")
        return jsonify({"error": f"An internal server error occurred: {e}"}), 500

if __name__ == '__main__':
    app.run()
