# Tasks: fulfillment-invoices ## 1. Schema - [x] Migration: shipments, shipment_items, invoices; status enums; shipment_no/invoice_no sequences ## 2. Shipments - [x] POST /api/shop/orders/{id}/shipments (qty validation vs unshipped remainder) - [x] POST /api/shop/shipments/{id}/ship; order status propagation (fulfilling/shipped) - [x] GET /api/shipments (customer), POST /api/shipments/{id}/confirm-delivered → order completed when done - [x] GET /api/shop/shipments ## 3. Invoices - [x] POST /api/orders/{id}/invoice (one open invoice per order; amount = order total) - [x] GET /api/invoices (customer), GET /api/shop/invoices, POST /api/shop/invoices/{id}/issue ## 4. Tests - [x] cargo test: partial shipment qty math, order status propagation, duplicate invoice rejected, issue flow