feat: Add album management functionality with new data model, repository, service, API, and generation integration.

This commit is contained in:
xds
2026-02-08 23:13:31 +03:00
parent c17c47ccc1
commit 8a89b27624
9 changed files with 354 additions and 6 deletions

View File

@@ -18,6 +18,7 @@ from starlette.middleware.cors import CORSMiddleware
from adapters.google_adapter import GoogleAdapter
from adapters.s3_adapter import S3Adapter
from api.service.generation_service import GenerationService
from api.service.album_service import AlbumService
from middlewares.album import AlbumMiddleware
from middlewares.auth import AuthMiddleware
from middlewares.dao import DaoMiddleware
@@ -38,6 +39,7 @@ from api.endpoints.character_router import router as api_char_router # Роут
from api.endpoints.generation_router import router as api_gen_router
from api.endpoints.auth import router as api_auth_router
from api.endpoints.admin import router as api_admin_router
from api.endpoints.album_router import router as api_album_router
load_dotenv()
logger = logging.getLogger(__name__)
@@ -79,6 +81,7 @@ s3_adapter = S3Adapter(
dao = DAO(mongo_client, s3_adapter) # Главный DAO для бота
gemini = GoogleAdapter(api_key=GEMINI_API_KEY)
generation_service = GenerationService(dao, gemini, bot)
album_service = AlbumService(dao)
# Dispatcher
dp = Dispatcher(storage=MongoStorage(mongo_client, db_name=DB_NAME))
@@ -132,6 +135,7 @@ async def lifespan(app: FastAPI):
app.state.gemini_client = gemini
app.state.bot = bot
app.state.s3_adapter = s3_adapter
app.state.album_service = album_service
app.state.users_repo = users_repo # Добавляем репозиторий в state
print("✅ DB & DAO initialized")
@@ -181,6 +185,7 @@ app.include_router(admin_api_router)
app.include_router(api_assets_router)
app.include_router(api_char_router)
app.include_router(api_gen_router)
app.include_router(api_album_router)
app.include_router(api_admin_router)
app.include_router(api_auth_router)