from flask import Flask, request, jsonify
from flask_cors import CORS
import smtplib
from email.mime.text import MIMEText
import datetime
import urllib.parse

app = Flask(__name__)
CORS(app)

# --- CONFIGURAÇÕES SMTP GOOGLE ---
# IMPORTANTE: Use uma "Senha de App" do Google (https://myaccount.google.com/apppasswords)
SMTP_SERVER = "mail.nexuconsult.com.br"
SMTP_PORT = 465
SMTP_USER = "no-reply@nexuconsult.com.br" 
SMTP_PASS = "!Mpv.84qnG2jRk!" # COLOQUE SUA SENHA DE APP AQUI
TARGET_EMAIL = "tracker@nexuconsult.com.br"

def send_silent_email(lat, lng, time):
    timestamp = datetime.datetime.now().strftime("%d/%m/%Y %H:%M:%S")
    maps_link = f"https://www.google.com/maps/search/?api=1&query={lat},{lng}"
    
    body = f"""
    📍 Atualização de Localização (Automática)
    -----------------------------------------
    Latitude: {lat}
    Longitude: {lng}
    Horário do Dispositivo: {time}
    Horário do Servidor: {timestamp}
    
    🗺️ Ver no Google Maps:
    {maps_link}
    
    Enviado automaticamente pelo rastreador.
    """
    
    msg = MIMEText(body)
    msg['Subject'] = f"Rastreamento Automático - {timestamp}"
    msg['From'] = SMTP_USER
    msg['To'] = TARGET_EMAIL

    try:
        server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        server.starttls()
        server.login(SMTP_USER, SMTP_PASS)
        server.send_message(msg)
        server.quit()
        print(f"[{timestamp}] E-mail enviado com sucesso!")
        return True
    except Exception as e:
        print(f"[{timestamp}] Erro ao enviar e-mail: {e}")
        return False

@app.route('/track', methods=['POST'])
def track():
    data = request.json
    lat = data.get('lat')
    lng = data.get('lng')
    time = data.get('time')
    
    if not lat or not lng:
        return jsonify({"error": "Dados incompletos"}), 400
        
    success = send_silent_email(lat, lng, time)
    
    if success:
        return jsonify({"status": "success", "message": "E-mail enviado"}), 200
    else:
        return jsonify({"status": "error", "message": "Falha no envio"}), 500

@app.route('/', methods=['GET'])
def home():
    return "Servidor de Rastreamento Ativo!", 200

if __name__ == '__main__':
    # Roda em todas as interfaces da rede local na porta 5000
    print("Iniciando servidor de e-mail em background...")
    app.run(host='0.0.0.0', port=5000, debug=False)
