from flask import Flask, request, jsonify, render_template
from math import radians, cos, sin, sqrt, atan2

app = Flask(__name__)

# 🌍 Fabrika koordinatları (Örnek olarak İstanbul)
FABRIKA_LAT = 41.0046688  # Enlem 41.00466883045301, 28.68723696913703 
FABRIKA_LON = 28.6872369  # Boylam
MAX_MESAFE_KM = 0.05  # 200 metre sınır

# 📌 İki koordinat arasındaki mesafeyi hesaplayan fonksiyon (Haversine Formülü)
def haversine(lat1, lon1, lat2, lon2):
    R = 6371  # Dünya'nın yarıçapı (KM)
    dlat = radians(lat2 - lat1)
    dlon = radians(lon2 - lon1)
    a = sin(dlat/2)**2 + cos(radians(lat1)) * cos(radians(lat2)) * sin(dlon/2)**2
    c = 2 * atan2(sqrt(a), sqrt(1 - a))
    return R * c  # KM cinsinden mesafe

@app.route("/konum_kontrol", methods=["POST"])
def konum_kontrol():
    data = request.json
    lat, lon = float(data["latitude"]), float(data["longitude"])

    mesafe = haversine(lat, lon, FABRIKA_LAT, FABRIKA_LON)

    if mesafe <= MAX_MESAFE_KM:
        return jsonify({"mesaj": "✅ Fabrika Alanındasınız!", "status": "OK"})
    else:
        return jsonify({"mesaj": f"⚠️ Fabrika Alanı Dışındasınız! ({mesafe*1000:.0f} metre uzaktasınız)", "status": "OUT"})

@app.route("/konum", methods=["GET"])
def konum_sayfasi():
    return render_template("konum_kontrol.html")

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=5001)
