from fastapi import FastAPI from sqladmin import Admin from app.backoffice.admin.admin_view import AdminAdmin from app.backoffice.admin.auth import AdminAuthBackend from app.backoffice.credit_view import CreditChargeRequestAdmin, CreditTransactionAdmin, CreditTransactionAdmin from sqlalchemy.ext.asyncio import AsyncEngine from app.user.api.user_admin import RefreshTokenAdmin, SocialAccountAdmin, UserAdmin from config import prj_settings # https://github.com/aminalaee/sqladmin def init_admin( app: FastAPI, db_engine: AsyncEngine, base_url: str = prj_settings.ADMIN_BASE_URL, ) -> Admin: auth_backend = AdminAuthBackend(secret_key=prj_settings.ADMIN_SESSION_SECRET) admin = Admin( app, db_engine, base_url=base_url, authentication_backend=auth_backend, title="ADO2 관리자", ) # 사용자 관리 admin.add_view(UserAdmin) admin.add_view(SocialAccountAdmin) # 크레딧 관리 admin.add_view(CreditChargeRequestAdmin) admin.add_view(CreditTransactionAdmin) # 백오피스 설정 admin.add_view(AdminAdmin) return admin