"""Settlement command handlers — Phase 10.8.""" from __future__ import annotations from uuid import UUID from sqlalchemy.ext.asyncio import AsyncSession from app.schemas.settlement import ( SettlementActionRequest, SettlementIntentCreate, SettlementIntentUpdate, SettlementLineCreate, ) from app.services.settlement import SettlementService from shared.security import CurrentUser class SettlementCommands: def __init__(self, session: AsyncSession) -> None: self.service = SettlementService(session) async def create( self, tenant_id: UUID, body: SettlementIntentCreate, *, actor: CurrentUser | None ): return await self.service.create(tenant_id, body, actor=actor) async def update( self, tenant_id: UUID, intent_id: UUID, body: SettlementIntentUpdate, *, actor: CurrentUser | None, ): return await self.service.update(tenant_id, intent_id, body, actor=actor) async def submit( self, tenant_id: UUID, intent_id: UUID, body: SettlementActionRequest, *, actor: CurrentUser | None, ): return await self.service.submit(tenant_id, intent_id, body, actor=actor) async def settle( self, tenant_id: UUID, intent_id: UUID, body: SettlementActionRequest, *, actor: CurrentUser | None, ): return await self.service.settle(tenant_id, intent_id, body, actor=actor) async def fail( self, tenant_id: UUID, intent_id: UUID, body: SettlementActionRequest, *, actor: CurrentUser | None, ): return await self.service.fail(tenant_id, intent_id, body, actor=actor) async def cancel( self, tenant_id: UUID, intent_id: UUID, body: SettlementActionRequest, *, actor: CurrentUser | None, ): return await self.service.cancel(tenant_id, intent_id, body, actor=actor) async def add_line( self, tenant_id: UUID, intent_id: UUID, body: SettlementLineCreate, *, actor: CurrentUser | None, ): return await self.service.add_line(tenant_id, intent_id, body, actor=actor)