"""Manual revision routes.""" from fastapi import APIRouter, Depends, status from sqlalchemy.ext.asyncio import AsyncSession from app.api.schemas.revision import ( RegisterRevisionRequest, RegisterRevisionResponse, RevisionChainResponse, ) from app.application.services.revision_service import RevisionService from app.infra.db.session import get_db_session router = APIRouter(prefix="/orders", tags=["revisions"]) revision_service = RevisionService() @router.post( "/{order_id}/revisions", response_model=RegisterRevisionResponse, status_code=status.HTTP_201_CREATED, ) async def register_revision( order_id: int, payload: RegisterRevisionRequest, session: AsyncSession = Depends(get_db_session), ) -> RegisterRevisionResponse: """Register an offline manual revision asset for an order.""" return await revision_service.register_revision(session, order_id, payload) @router.get("/{order_id}/revisions", response_model=RevisionChainResponse) async def list_revisions( order_id: int, session: AsyncSession = Depends(get_db_session), ) -> RevisionChainResponse: """List the single-line manual revision chain for an order.""" return await revision_service.list_revision_chain(session, order_id)