2.5 KiB
2.5 KiB
POS-003 — Implementer evidence
What
POS module skeleton: domain + repos + application use cases. No routes (POS-004 covers that).
Files
src/modules/pos/domain/errors.ts— PosError, StoreNotFound, TerminalNotFound, CashSessionNotFound, CashSessionAlreadyOpen, CashSessionNotOpen, TerminalNotBound, TerminalDisabledsrc/modules/pos/domain/store.ts— PosStore, ListStoresOptionssrc/modules/pos/domain/terminal.ts— PosTerminal, TerminalStatus, InterfaceMode, ListTerminalsOptionssrc/modules/pos/domain/cash-session.ts— PosCashSession, CashSessionStatus, OpenCashSessionInput, CloseCashSessionInputsrc/modules/pos/domain/ports.ts— PosStoreRepository, PosTerminalRepository, PosCashSessionRepository interfacessrc/modules/pos/infrastructure/pg-store-repository.ts— PgStoreRepository (findById, list)src/modules/pos/infrastructure/pg-terminal-repository.ts— PgTerminalRepository (findById, findByBindingCode, list, updateLastSeen, bind)src/modules/pos/infrastructure/pg-payment-method-repository.ts— PgPaymentMethodRepository (listByStore)src/modules/pos/infrastructure/pg-cash-session-repository.ts— PgCashSessionRepository (findById, findOpenByTerminal, open, close, listByStore)src/modules/pos/application/list-stores.ts— ListStoresUseCasesrc/modules/pos/application/list-terminals.ts— ListTerminalsUseCasesrc/modules/pos/application/get-pos-config.ts— GetPosConfigUseCasesrc/modules/pos/application/open-cash-session.ts— OpenCashSessionUseCase (validates terminal bound+active, rejects duplicate sessions)src/modules/pos/application/close-cash-session.ts— CloseCashSessionUseCasesrc/modules/pos/tests/store-repository.test.ts— 2 testssrc/modules/pos/tests/cash-session.test.ts— 6 testssrc/app/build-app.ts— wired POS repos
Verification
npm run build→ 0 TypeScript errors.npm test -- --run src/modules/pos/tests/→ 8 passed.check-module-boundaries.mjs src→ 0 NEW violations../scripts/verify.sh→ green.
AC traceability
| AC | Estado | Evidencia |
|---|---|---|
| AC1 domain types | ✅ | PosStore, PosTerminal, PosCashSession + errors |
| AC2 repos | ✅ | 4 Pg*Repository implementations |
| AC3 use cases | ✅ | 5 use cases (list-stores, list-terminals, get-pos-config, open, close) |
| AC4 tests | ✅ | 8 unit tests covering core scenarios |
| AC5 build-app wired | ✅ | POS repos added to build-app.ts |
| AC6 scope out | ✅ | No routes (POS-004) |