Merge feature/btc-history-chart: BTC candlestick chart with local OHLC storage

Resolves conflicts: combined admin + candles routers in main.py,
fixed docker-compose port to 3001:3001, restored admin styles in Dashboard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-24 20:24:50 +01:00
10 changed files with 412 additions and 16 deletions
+13 -3
View File
@@ -2,8 +2,8 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from sqlalchemy import text
from .database import engine, Base
from .routes import users, purchases, stats, history, admin
from .database import engine, Base, SessionLocal
from .routes import users, purchases, stats, history, admin, candles
Base.metadata.create_all(bind=engine)
@@ -22,16 +22,26 @@ app.include_router(purchases.router)
app.include_router(stats.router)
app.include_router(history.router)
app.include_router(admin.router, prefix="/admin")
app.include_router(candles.router)
@app.on_event("startup")
def migrate():
def startup():
# Schema migration: add is_admin column if missing
with engine.connect() as conn:
cols = [r[1] for r in conn.execute(text("PRAGMA table_info(users)"))]
if "is_admin" not in cols:
conn.execute(text("ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT 0"))
conn.commit()
# Seed / refresh BTC candle data
from .services.candles import refresh_latest_candles
db = SessionLocal()
try:
refresh_latest_candles(db)
finally:
db.close()
@app.get("/")
def root():