feat(parser): scaffold parsing pipeline skeleton and static facade #89
Labels
No labels
area:backend
area:frontend
area:infra
area:ocr
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
phase:M1
phase:M2
phase:M3
phase:M4
phase:M5
phase:M6
phase:M7
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
TJC/bill-splitter#89
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #77 (Phase A, step 1). Invariants live in the epic.
Stand up the pipeline shape without changing behaviour. This PR is pure
scaffolding: the facade still runs today's code path unchanged.
Anchors
backend/src/BillSplitter.Domain/ReceiptParser.cs- the whole static class tobe decomposed over Phase A.
backend/src/BillSplitter.Domain/OcrResult.cs-OcrLine,OcrBoxinputs.backend/src/BillSplitter.Domain/ParsedReceipt.cs-ParsedReceipt,ParsedItemoutputs (unchanged).backend/src/BillSplitter.Infrastructure/Ocr/OcrWorker.cs:70- the one callsite; must stay
ReceiptParser.Parse(result).Steps
BillSplitter.Domain/Parsing/**:Models,Normalization,Classification,Rules,Engine,Validation.LineTypeenum,ParseDecision, and move the privateCandidaterecord (ReceiptParser.cs:319) intoModels.ReceiptParser.Parse(OcrResult)as a thin static facade that delegatesto a new internal engine class which, for now, contains the current logic
verbatim.
Done
OcrWorker.cs:70unchanged; no new dependencies; Domain stays pure.