Files
2026-02-18 20:34:33 -03:00

83 lines
2.3 KiB
Python

from flask import Flask
from modules.users import users_bp
from modules.home.routes import home_bp
from modules.chat.routes import chat_bp
from modules.excel.routes import excel_bp
from modules.health.routes import health_bp
from modules.architecture.routes import architecture_bp
from modules.admin.routes import admin_bp
from modules.auth.routes import auth_bp
from modules.rest.routes import rest_bp
from config_loader import load_config
from modules.excel.queue_manager import start_excel_worker
from modules.users.service import create_user
from modules.users.db import get_pool
import bcrypt
import oracledb
from werkzeug.security import generate_password_hash
def ensure_default_admin():
"""
Cria admin default direto no Oracle (sem SQLAlchemy)
"""
pool = get_pool()
sql_check = "SELECT id FROM app_users WHERE user_role='admin'"
sql_insert = """
INSERT INTO app_users (name,email,user_role,password_hash,active)
VALUES (:1,:2,'admin',:3,1) \
"""
with pool.acquire() as conn:
with conn.cursor() as cur:
cur.execute(sql_check)
if not cur.fetchone():
pwd = generate_password_hash("admin123")
cur.execute(sql_insert, ["Admin", "admin@local", pwd])
conn.commit()
print("Default admin created: admin@local / admin123")
def create_app():
app = Flask(__name__)
app.secret_key = "super-secret"
# NÃO EXISTE MAIS SQLite
# NÃO EXISTE MAIS SQLAlchemy
start_excel_worker()
# cria admin no Oracle
ensure_default_admin()
app.register_blueprint(users_bp, url_prefix="/admin/users")
app.register_blueprint(chat_bp)
app.register_blueprint(excel_bp)
app.register_blueprint(health_bp)
app.register_blueprint(architecture_bp)
app.register_blueprint(home_bp)
app.register_blueprint(admin_bp, url_prefix="/admin")
app.register_blueprint(auth_bp)
app.register_blueprint(rest_bp)
from modules.core.security import get_current_user
@app.context_processor
def inject_user():
return dict(current_user=get_current_user())
return app
app = create_app()
config = load_config()
API_BASE_URL = f"{config.app_base}:{config.service_port}"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=config.service_port)