Files
Labvoice/src/mcp_server/workflows/inventory.py
T
2026-08-30 20:44:00 +02:00

38 lines
1.2 KiB
Python

"""adjust_inventory and stock reads."""
from mcp_server.config import Settings
from mcp_server.elabftw import ElabftwClient
from mcp_server.journal import SagaJournal
from mcp_server.models import ContainerStock, InventoryResult
from mcp_server.resolve import ResourceResolver
class InventoryWorkflow:
def __init__(
self,
client: ElabftwClient,
resolver: ResourceResolver,
journal: SagaJournal,
settings: Settings,
) -> None:
self.client = client
self.resolver = resolver
self.journal = journal
self.settings = settings
async def stock_for_resource(self, resource_key: str) -> list[ContainerStock]:
"""Containers holding the resolved resource with compatible units and current stock."""
raise NotImplementedError
async def adjust_inventory(
self,
*,
amount: float,
unit: str,
resource_key: str | None = None,
container_id: int | None = None,
note: str | None = None,
) -> InventoryResult:
"""Restock/correct a container (voice: “add 500 mL to …”); journaled."""
raise NotImplementedError