import subprocess
from flask import Blueprint, jsonify
from auth import login_required
from utils.display import sway_env

bp = Blueprint('system', __name__, url_prefix='/api')


@bp.route('/reboot', methods=['POST'])
@login_required
def reboot():
    subprocess.Popen(['sudo', 'reboot'])
    return '', 204


@bp.route('/shutdown', methods=['POST'])
@login_required
def shutdown():
    subprocess.Popen(['sudo', 'poweroff'])
    return '', 204


@bp.route('/restart', methods=['POST'])
@login_required
def restart():
    # Avsluta sway — getty loopar och startar om via .bash_profile → kiosk-launcher.sh
    try:
        env = sway_env()
        if env:
            subprocess.Popen(['swaymsg', 'exit'], env=env)
    except Exception:
        pass
    return '', 204
