"""内存仓库。单测和 OMS_REPO=memory 用,进程退出即丢。 按 oms_id 判重,已存在就 DuplicateOmsId,不覆盖。 """ from __future__ import annotations from .repo import DuplicateOmsId class MemorySalesGoodsRepo: def __init__(self): self._rows: dict[int, dict] = {} def insert(self, record: dict) -> None: oms_id = record["oms_id"] if oms_id in self._rows: raise DuplicateOmsId(oms_id) self._rows[oms_id] = dict(record) def get(self, oms_id: int) -> dict | None: row = self._rows.get(oms_id) return dict(row) if row is not None else None def count(self) -> int: return len(self._rows)