|
||
---|---|---|
.. | ||
migrations | ||
tests | ||
__init__.py | ||
api_v2.py | ||
models.py | ||
README.md |
Shipment Management
Functional Description
This module handles shipments that are processed by the lost&found team.
Feature List
- Shipment can contain n (often one, but a lostee can also be sent multiple items) items
- Shipment is linked to n tickets (for informative purposes)
- Shipment holds the address of the parcel
- Shipment holds the dhl voucher used
- On creation of a shipment, the agent can activate the features "adress retrieval", "item validation" and/or tracking
- address retrieval: the lostee recieves a email with publicly accessible link, on this page the user can enter his address.
- address sanitation
- address validation
- automatic state change after successful address entry (-> waiting for shipping)
- item validation: the lostee recieves a email with publicly accessible link, on this page the user see the images and confirm the items
- automatic state change after confirmation
- tracking: the lostee recieves a email with publicly accessible link, on this page the user can enter his address
- address retrieval: the lostee recieves a email with publicly accessible link, on this page the user can enter his address.
- Returning parcels could be managed to (e.g. if a shipment is marked as returned, the items will be unfound again)
State Model
The shipment process follows a defined state model to ensure proper workflow and validation:
States
-
CREATED (Initial State)
- Shipment is created without address, items, or tickets
- No validation requirements
-
PENDING_REVIEW
- Items have been added to the shipment
- Waiting for requester to verify items and/or address
- Requires specification of what needs to be reviewed:
- Items only
- Address only
- Both items and address
- Validation requirements depend on review type
-
READY_FOR_SHIPPING
- All required reviews completed
- All required fields validated
- Ready for shipping process
-
REJECTED
- Shipment was reviewed and rejected
- Terminal state (no further transitions possible)
-
SHIPPED
- Package has been shipped
- Requires complete address information
- Timestamp of shipping is recorded
-
COMPLETED
- Package has been delivered
- Terminal state (no further transitions possible)
- Timestamp of completion is recorded
State Transitions
- CREATED → PENDING_REVIEW (when items are added, requires specification of review type)
- PENDING_REVIEW → READY_FOR_SHIPPING (when approved and all required reviews completed)
- PENDING_REVIEW → REJECTED (when rejected)
- READY_FOR_SHIPPING → SHIPPED (when marked as shipped)
- SHIPPED → COMPLETED (when marked as delivered)
Validation Rules
- Review requirement must be specified when entering PENDING_REVIEW state
- Address fields are required for shipping-related states (READY_FOR_SHIPPING, SHIPPED, COMPLETED)
- At least one item is required for any state beyond CREATED
- Invalid state transitions will raise validation errors
- Terminal states (REJECTED, COMPLETED) cannot transition to other states
- Approval requires completion of all specified review requirements:
- For ITEMS review: items must be added
- For ADDRESS review: all address fields must be complete
- For BOTH review: both items and complete address are required