Atualizar app/app.py

This commit is contained in:
2026-08-19 22:02:33 -03:00
parent ae4a7a077f
commit bbb92d45e5
+67
View File
@@ -56,6 +56,32 @@ def queue_admin_generate():
# DECORATORS
# ================
def require_subscription(f):
@wraps(f)
def wrapper(*args, **kwargs):
db = SessionLocal()
if app.config["AUTH_MODE"] == "oauth":
email = session["user"]["email"]
else:
email = session["db_user"]["email"]
user = db.query(User).filter_by(email=email).first()
plan = db.query(Plan).filter_by(id=user.plan_id).first()
sub = db.query(Subscription).filter_by(user_email=email, status="active").first()
db.close()
if not sub:
return jsonify({"erro": "Sua assinatura expirou ou não está ativa."}), 402
return f(*args, **kwargs)
return wrapper
import hashlib
def make_cache_key(model, prompt):
@@ -441,6 +467,47 @@ def legal_links():
# ================
# ADMIN
# ================
@app.route("/admin/plans")
@login_required
@admin_required
def admin_plans():
db = SessionLocal()
plans = db.query(Plan).all()
db.close()
return jsonify([{
"id": p.id,
"name": p.name,
"price_monthly": p.price_monthly,
"price_yearly": p.price_yearly,
"priority_queue": p.priority_queue
} for p in plans])
@app.route("/admin/plans/create", methods=["POST"])
@login_required
@admin_required
def admin_create_plan():
data = request.json
db = SessionLocal()
p = Plan(**data)
db.add(p)
db.commit()
db.close()
return jsonify({"status": "ok"})
@app.route("/admin/subscriptions/<email>")
@login_required
@admin_required
def admin_subscriptions(email):
db = SessionLocal()
subs = db.query(Subscription).filter_by(user_email=email).all()
db.close()
return jsonify([{
"id": s.id,
"plan_id": s.plan_id,
"status": s.status,
"renew_at": s.renew_at.isoformat()
} for s in subs])
@app.route("/admin/users")
@login_required