User Story #684
openEPIC #670: Package Catalogue Management - 2 days front end and 2 days backend
Feature #683: Package CRUD
Frontend – Publish, Unpublish & Archive Package
0%
Description
As a Super Admin, I want to publish, unpublish, or archive a package so that only approved and relevant travel packages are visible to customers while maintaining control over the package lifecycle.
Business Background¶
Creating a package does not automatically make it available to customers. A package should only become visible after all mandatory business information has been completed and verified. Similarly, packages may need to be unpublished for temporary maintenance or archived when they are no longer offered. The lifecycle management process ensures accurate catalogue management and prevents customers from viewing incomplete or obsolete travel packages. This aligns with the package management process described in the build specification.
Objective¶
Allow the Super Admin to:
- Publish a completed package.
- Temporarily unpublish a package.
- Archive obsolete packages.
- View package lifecycle status.
- Prevent invalid lifecycle transitions.
Preconditions¶
- User is authenticated.
- User has Publish Package permission.
- Package exists.
- Package has passed required validation checks.
Screen Name¶
Package Lifecycle Management
Accessible from:
- Package Listing
- Package Details
- Action Menu
Lifecycle Actions¶
Publish Package¶
Available only when:
- Package is in Draft status.
- Mandatory information is complete.
- Validation checks have passed.
Unpublish Package¶
Available only for Published packages.
Purpose:
- Temporarily hide package from customers.
- Keep package available for future publication.
Archive Package¶
Available for:
- Draft
- Unpublished
- Published (with confirmation)
Purpose:
- Remove package from active catalogue.
- Preserve historical information.
Package Status Workflow¶
Draft
│
Publish
│
Published
│
Unpublish
│
Unpublished
│
Archive
│
Archived
Allowed Status Transitions¶
| Current Status | Allowed Action | New Status |
|---|---|---|
| Draft | Publish | Published |
| Draft | Archive | Archived |
| Published | Unpublish | Unpublished |
| Published | Archive | Archived |
| Unpublished | Publish | Published |
| Unpublished | Archive | Archived |
| Archived | Restore (Separate Story) | Draft |
User Interface Behaviour¶
- Available actions shall change based on current status.
- Invalid actions shall not be displayed.
- Status badge updates immediately after successful action.
- Lifecycle history shall remain visible.
- Confirmation dialog required before status changes.
Confirmation Dialogs¶
Publish Package¶
Title
Publish Package
Message
This package will become visible to customers after publishing. Do you want to continue?
Buttons
- Publish
- Cancel
Unpublish Package¶
Title
Unpublish Package
Message
Customers will no longer be able to view this package until it is published again.
Buttons
- Unpublish
- Cancel
Archive Package¶
Title
Archive Package
Message
Archived packages will be removed from the active catalogue but retained for future reference.
Buttons
- Archive
- Cancel
Success Messages¶
| Action | Message |
|---|---|
| Publish | Package published successfully. |
| Unpublish | Package unpublished successfully. |
| Archive | Package archived successfully. |
User-facing Error Messages¶
| Scenario | Message |
|---|---|
| Validation incomplete | Complete all required package information before publishing. |
| Permission denied | You do not have permission to perform this action. |
| Invalid status | This action cannot be performed in the current package status. |
| Action failed | Unable to complete the requested action. Please try again. |
Business Rules Matrix¶
| Rule | Behaviour |
|---|---|
| Draft packages | Can be Published or Archived |
| Published packages | Visible to customers |
| Unpublished packages | Hidden from customers |
| Archived packages | Hidden from all active catalogue listings |
| Only authorised users | May change lifecycle status |
Impact Analysis¶
Publish¶
- Package becomes visible on website.
- Package available in search results.
- Package available for quotation requests.
- Package included in promotional sections (if configured).
Unpublish¶
- Removed from customer search.
- Existing enquiries remain unaffected.
- Package editable by administrators.
Archive¶
- Removed from all active listings.
- Historical data retained.
- Cannot receive new enquiries.
Acceptance Criteria¶
- Only valid lifecycle actions are displayed.
- Publish is allowed only after validation passes.
- Confirmation dialog appears before status changes.
- Status badge updates immediately.
- Published package becomes visible to customers.
- Unpublished package is hidden from customers.
- Archived package is removed from active catalogue.
Role Permission Matrix¶
| Role | Publish | Unpublish | Archive |
|---|---|---|---|
| Super Admin | ✓ | ✓ | ✓ |
| Admin | Based on Permission | Based on Permission | Based on Permission |
| Supplier | ✗ | ✗ | ✗ |
| Partner | ✗ | ✗ | ✗ |
| Customer | ✗ | ✗ | ✗ |
In Scope¶
- Publish package
- Unpublish package
- Archive package
- Lifecycle workflow
- Confirmation dialogs
- Status updates
- Business rule validation
Out of Scope¶
- Package validation logic
- Package restoration
- Package deletion
- Pricing approval
- Supplier approval
Definition of Done¶
- Lifecycle actions implemented.
- Workflow rules enforced.
- Confirmation dialogs verified.
- Status updates displayed correctly.
- Customer visibility updated appropriately.
- Acceptance criteria passed.
- Product Owner approval completed.
No data to display