from flask import Flask, request, jsonify, send_file
import qrcode
import os

app = Flask(__name__)

# Dados em memória (pode salvar em arquivo/DB depois)
sabores = {
    "CHICABOM": 10.0,
    "PRESTIGIO": 10.0,
    "MARACUJA": 10.0,
    "PAÇOÇA": 10.0,
    "GALAK": 10.0,
    "DOCE DE LEITE": 10.0,
    "OREO COM CASCA DE CHOCOLATE": 10.0
}

pedidos = []  # vai guardar pedidos feitos

chave_pix = "71902b20-fe18-4a02-8e9d-5ce8c23a06f9"
recebedor = "VIRGINIA CUNHA ROSA"

def aplicar_promocao(qtd_total):
    grupos_promocao = qtd_total // 6
    restante = qtd_total % 6
    preco_total = grupos_promocao * 5 * 10 + restante * 10
    return preco_total

@app.route('/sabores', methods=['GET'])
def listar_sabores():
    return jsonify(sabores)

@app.route('/pedido', methods=['POST'])
def fazer_pedido():
    data = request.json
    cliente = data.get('cliente')
    numero = data.get('numero')
    pedido_itens = data.get('pedido')  # dict sabor: quantidade

    if not cliente or not numero or not pedido_itens:
        return jsonify({"error": "Dados incompletos"}), 400

    total_itens = sum(pedido_itens.values())
    preco_total = aplicar_promocao(total_itens)

    # Gera QR Code para pagamento Pix
    payload = f"pix:{chave_pix}?amount={preco_total:.2f}&name={recebedor}"
    img = qrcode.make(payload)
    qr_filename = f"qrcode_{cliente}.png"
    img.save(qr_filename)

    pedido = {
        "cliente": cliente,
        "numero": numero,
        "pedido": pedido_itens,
        "total": preco_total,
        "qr_code": qr_filename
    }
    pedidos.append(pedido)

    return jsonify({
        "msg": "Pedido recebido com sucesso",
        "total": preco_total,
        "qr_code_url": f"/qrcode/{qr_filename}"
    })

@app.route('/qrcode/<filename>')
def enviar_qrcode(filename):
    if os.path.exists(filename):
        return send_file(filename, mimetype='image/png')
    else:
        return jsonify({"error": "Arquivo não encontrado"}), 404

@app.route('/pedidos', methods=['GET'])
def listar_pedidos():
    return jsonify(pedidos)

if __name__ == '__main__':
    app.run(debug=True)
