import os import sys # DON'T CHANGE THIS !!! sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) from flask import Flask, send_from_directory, jsonify from flask_cors import CORS app = Flask(__name__, static_folder=os.path.join(os.path.dirname(__file__), 'static')) CORS(app) # Habilita CORS para todas as rotas app.config['SECRET_KEY'] = 'bingo_paroquial_secret_key_2025' # Rotas de demonstração para testes @app.route('/api/demo/eventos', methods=['GET']) def demo_eventos(): eventos = [ { 'id': 1, 'nome': 'Grande Bingo Beneficente', 'data': '2025-06-15T19:00:00', 'descricao': 'Bingo beneficente com diversos prêmios em prol das obras sociais da paróquia.', 'status': 'agendado' }, { 'id': 2, 'nome': 'Bingo da Festa Junina', 'data': '2025-06-24T18:00:00', 'descricao': 'Bingo especial da festa junina com comidas típicas e muita diversão.', 'status': 'agendado' }, { 'id': 3, 'nome': 'Bingo de Aniversário', 'data': '2025-07-10T20:00:00', 'descricao': 'Bingo em comemoração aos 50 anos da paróquia com prêmios especiais.', 'status': 'finalizado' } ] return jsonify({'eventos': eventos}) @app.route('/api/demo/cartelas', methods=['GET']) def demo_cartelas(): cartelas = [ { 'id': 1, 'numero_identificacao': 'ABC12345', 'comprador_nome': 'João Silva', 'comprador_email': 'joao@email.com', 'status_pagamento': 'pago', 'data_venda': '2025-06-10T14:30:00' }, { 'id': 2, 'numero_identificacao': 'DEF67890', 'comprador_nome': 'Maria Santos', 'comprador_email': 'maria@email.com', 'status_pagamento': 'pago', 'data_venda': '2025-06-10T15:45:00' }, { 'id': 3, 'numero_identificacao': 'GHI13579', 'comprador_nome': None, 'comprador_email': None, 'status_pagamento': 'pendente', 'data_venda': None } ] return jsonify({'cartelas': cartelas}) @app.route('/api/demo/rodadas', methods=['GET']) def demo_rodadas(): rodadas = [ { 'id': 1, 'numero': 1, 'nome': 'Rodada Inicial', 'premio': 'Cesta Básica', 'status': 'pendente' }, { 'id': 2, 'numero': 2, 'nome': 'Rodada Especial', 'premio': 'Vale Compras R$ 200,00', 'status': 'pendente' }, { 'id': 3, 'numero': 3, 'nome': 'Rodada Final', 'premio': 'Smart TV 43"', 'status': 'pendente' } ] return jsonify({'rodadas': rodadas}) @app.route('/api/demo/pagamentos/processar-pix', methods=['POST']) def demo_processar_pix(): return jsonify({ 'message': 'PIX gerado com sucesso', 'pagamento': { 'id': 1, 'transaction_id': 'pix-123456', 'pix_key': 'pix-key-simulada', 'qr_code': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'expiration_date': 1719500000000, # Timestamp simulado 'status': 'pendente' } }) @app.route('/api/demo/pagamentos/processar-cartao', methods=['POST']) def demo_processar_cartao(): return jsonify({ 'message': 'Pagamento aprovado com sucesso', 'pagamento': { 'id': 1, 'transaction_id': 'cartao-credito-123456', 'authorization_code': 'AUTH123456', 'status': 'aprovado' } }) @app.route('/', defaults={'path': ''}) @app.route('/') def serve(path): static_folder_path = app.static_folder if static_folder_path is None: return "Static folder not configured", 404 if path != "" and os.path.exists(os.path.join(static_folder_path, path)): return send_from_directory(static_folder_path, path) else: index_path = os.path.join(static_folder_path, 'index.html') if os.path.exists(index_path): return send_from_directory(static_folder_path, 'index.html') else: return "index.html not found", 404 if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)