from flask import Flask, jsonify, request
from flask_jwt_extended import JWTManager, jwt_required, get_jwt_identity
from flask_cors import CORS
import mysql.connector
from dotenv import load_dotenv
import os

load_dotenv()

app = Flask(__name__)
CORS(app)
app.config['JWT_SECRET_KEY'] = os.getenv('JWT_SECRET_KEY', 'sua_chave_jwt_aqui')
jwt = JWTManager(app)

conn = mysql.connector.connect(
    host=os.getenv('DB_HOST', 'localhost'),
    database=os.getenv('DB_NAME', 'sos'),
    user=os.getenv('DB_USER', 'root'),
    password=os.getenv('DB_PASS', '152535ff')
)
cursor = conn.cursor(dictionary=True)

@app.route('/sistema/sos/api/config', methods=['POST'])
@jwt_required()
def update_config():
    data = request.json
    email = data.get('centralEmail')
    limit = data.get('alertLimit')
    if not email or not limit:
        return jsonify({'status': 'error', 'message': 'E-mail e limite são obrigatórios'}), 400
    # Simula salvamento (adicione lógica para salvar no banco, se necessário)
    return jsonify({'status': 'success', 'message': 'Configurações salvas'}), 200

@app.route('/sistema/sos/api/alerts', methods=['GET'])
@jwt_required()
def get_alerts():
    user_id = get_jwt_identity()
    cursor.execute("SELECT id, latitude, longitude, timestamp FROM panic_events WHERE user_id = %s", (user_id,))
    alerts = cursor.fetchall()
    return jsonify(alerts), 200

@app.route('/sistema/sos/api/alerts', methods=['POST'])
@jwt_required()
def create_alert():
    user_id = get_jwt_identity()
    data = request.json
    latitude = data.get('latitude')
    longitude = data.get('longitude')
    if not latitude or not longitude:
        return jsonify({'status': 'error', 'message': 'Latitude e