"""API dependencies using Dishka.""" from typing import Annotated from dishka.integrations.fastapi import FromDishka from fastapi import Depends, Header from app.application import ( CreatePostUseCase, DeletePostUseCase, GetPostUseCase, ListPostsUseCase, PublishPostUseCase, UpdatePostUseCase, ) # Use case dependencies - injected via Dishka CreatePostDep = FromDishka[CreatePostUseCase] GetPostDep = FromDishka[GetPostUseCase] UpdatePostDep = FromDishka[UpdatePostUseCase] DeletePostDep = FromDishka[DeletePostUseCase] ListPostsDep = FromDishka[ListPostsUseCase] PublishPostDep = FromDishka[PublishPostUseCase] # Mock current user dependency (replace with real auth) async def get_current_user_id( x_user_id: Annotated[str | None, Header()] = "user-123", ) -> str: """Get current user ID from header.""" return x_user_id or "user-123" CurrentUserDep = Annotated[str, Depends(get_current_user_id)]