Cruise Offer Management - Use Cases¶
1. Introduction¶
1.1 Purpose¶
This document defines the use cases for the Cruise Offer Management module. Each use case describes a specific interaction between an actor and the system to achieve a goal.
1.2 Scope¶
This document covers all use cases for the administration interface of the Cruise Offer Management module. Booking interface use cases are included but marked as separate scope.
1.3 References¶
- General Requirements: Cruise-Offer-General-Requirements.md
- Functional Requirements: Cruise-Offer-Management-Requirements.md
- UI Requirements: Cruise-Offer-UI-Requirements.md
1.4 Actors¶
| Actor | Description |
|---|---|
| Administrator | User with full access to manage all cruise data including dimension data |
| Cruise Manager | User who manages itineraries, cruises, and pricing |
| Booking Agent | User who searches and views cruise availability for booking purposes |
| System | Automated system processes |
2. Use Case Overview¶
2.1 Use Case Diagram¶
Cruise Offer Management System
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Dimension Data │ │ Itinerary │ │
│ │ Management │ │ Management │ │
│ │ ───────────────── │ │ ───────────────── │ │
│ │ UC-DIM-01 to 07 │ │ UC-ITN-01 to 06 │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Ship Cabin │ │ Cruise Instance │ │
│ │ Management │ │ Management │ │
│ │ ───────────────── │ │ ───────────────── │ │
│ │ UC-CAB-01 to 04 │ │ UC-CRU-01 to 06 │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Pricing │ │
│ │ Management │ │
│ │ ───────────────── │ │
│ │ UC-PRC-01 to 06 │ │
│ └─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Search & Booking │ │
│ │ ───────────────── │ │
│ │ UC-BKG-01 to 05 │ │
│ └─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Pre-Booking │ │
│ │ Management │ │
│ │ ───────────────── │ │
│ │ UC-PRE-01 to 02 │ │
│ └─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Booking Management │ │
│ │ ───────────────── │ │
│ │ UC-BKG-06 to 11 │ │
│ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
▲ ▲ ▲ ▲
│ │ │ │
┌──────┴──────┐ ┌─────┴─────┐ ┌──────┴──────┐ ┌──────┴──────┐
│Administrator│ │ Cruise │ │ Booking │ │ System │
│ │ │ Manager │ │ Agent │ │ │
└─────────────┘ └───────────┘ └─────────────┘ └─────────────┘
2.2 Use Case Summary¶
| ID | Use Case Name | Actor(s) | Priority |
|---|---|---|---|
| Dimension Data Management | |||
| UC-DIM-01 | Manage Cruise Companies | Administrator | High |
| UC-DIM-02 | Manage Cruise Areas | Administrator | High |
| UC-DIM-03 | Manage Cruise Ships | Administrator | High |
| UC-DIM-04 | Manage Cabin Types | Administrator | High |
| UC-DIM-05 | Manage Charge Types | Administrator | High |
| UC-DIM-06 | Manage Cruise Ports | Administrator | High |
| UC-DIM-07 | View Dimension Data Settings | Administrator, Cruise Manager | Medium |
| Ship Cabin Management | |||
| UC-CAB-01 | Assign Cabin Types to Ship | Administrator | High |
| UC-CAB-02 | Update Ship Cabin Capacity | Administrator | Medium |
| UC-CAB-03 | Remove Cabin Type from Ship | Administrator | Medium |
| UC-CAB-04 | Bulk Assign Cabin Types | Administrator | Medium |
| Itinerary Management | |||
| UC-ITN-01 | Create Itinerary | Cruise Manager | High |
| UC-ITN-02 | Edit Itinerary | Cruise Manager | High |
| UC-ITN-03 | Delete Itinerary | Cruise Manager | Medium |
| UC-ITN-04 | Toggle Itinerary Status | Cruise Manager | Medium |
| UC-ITN-05 | Manage Itinerary Template | Cruise Manager | High |
| UC-ITN-06 | View Itinerary Tree | Cruise Manager | High |
| Cruise Instance Management | |||
| UC-CRU-01 | Create Cruise Instance | Cruise Manager | High |
| UC-CRU-02 | View Cruise Details | Cruise Manager | High |
| UC-CRU-03 | Edit Cruise Points | Cruise Manager | Medium |
| UC-CRU-04 | Regenerate Cruise Points | Cruise Manager | Low |
| UC-CRU-05 | Change Cruise Status | Cruise Manager | High |
| UC-CRU-06 | Delete Cruise Instance | Cruise Manager | Medium |
| Pricing Management | |||
| UC-PRC-01 | Configure Cabin Charges | Cruise Manager | High |
| UC-PRC-02 | Set Cabin Availability | Cruise Manager | High |
| UC-PRC-03 | Add Other Charges | Cruise Manager | High |
| UC-PRC-04 | Edit Other Charges | Cruise Manager | Medium |
| UC-PRC-05 | Remove Other Charges | Cruise Manager | Medium |
| UC-PRC-06 | Initialize Pricing for Cruise | Cruise Manager | Medium |
| Search & Booking | |||
| UC-BKG-01 | Search Cruises by Criteria | Booking Agent | High |
| UC-BKG-02 | View Cruise Availability | Booking Agent | High |
| UC-BKG-03 | Get Itineraries by Area | Booking Agent | High |
| UC-BKG-04 | Calculate Cruise Price | Booking Agent | High |
| UC-BKG-05 | View Cruise Route | Booking Agent | Medium |
| Pre-Booking Management | |||
| UC-PRE-01 | Manage Pre-Bookings via Dialog | Cruise Manager | High |
| UC-PRE-02 | Quick Add/Remove Pre-Booking | Cruise Manager, Booking Agent | Medium |
| Booking Management | |||
| UC-BKG-06 | Create New Booking | Booking Agent | High |
| UC-BKG-07 | Manage Passengers | Booking Agent | High |
| UC-BKG-08 | Manage Booked Cabins | Booking Agent | High |
| UC-BKG-09 | Manage Add-ons | Booking Agent | High |
| UC-BKG-10 | Change Booking Status | Booking Agent | High |
| UC-BKG-11 | Delete Booking | Booking Agent | Medium |
3. Dimension Data Management Use Cases¶
UC-DIM-01: Manage Cruise Companies¶
Use Case ID: UC-DIM-01 Use Case Name: Manage Cruise Companies Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes cruise company records.
Preconditions: - User is authenticated with Administrator role - User has navigated to the Cruise Management page
Basic Flow:
- View Companies
- System displays the company tree in the left panel
-
Administrator views all existing companies
-
Create Company
- Administrator clicks "Add Company" button
- System displays Company dialog
- Administrator enters company code and name
- Administrator clicks Save
- System validates input (code unique, required fields)
- System creates company record
- System refreshes company tree
-
System displays success notification
-
Edit Company
- Administrator clicks edit button on company node
- System displays Company dialog with existing data
- Administrator modifies company details
- Administrator clicks Save
- System validates and updates company record
-
System refreshes company tree
-
Delete Company
- Administrator clicks delete button on company node
- System checks for associated ships
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes company record
- System refreshes company tree
Alternative Flows:
- A1: Validation Failure
- System displays validation error message
-
Administrator corrects input and retries
-
A2: Delete with Dependencies
- System detects associated ships exist
- System displays error: "Cannot delete company with associated ships"
-
Administrator must delete or reassign ships first
-
A3: Duplicate Code
- System detects code already exists
- System displays error: "Company code must be unique"
Postconditions: - Company record is created/updated/deleted as requested - Company tree reflects current data
UC-DIM-02: Manage Cruise Areas¶
Use Case ID: UC-DIM-02 Use Case Name: Manage Cruise Areas Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes cruise area records.
Preconditions: - User is authenticated with Administrator role - User has opened Settings dialog, Areas tab
Basic Flow:
- View Areas
- Administrator opens Settings dialog
- Administrator selects "Cruise Areas" tab
-
System displays table of all cruise areas
-
Create Area
- Administrator clicks "Add Area" button
- System displays Area dialog
- Administrator enters area code and description
- Administrator clicks Save
- System validates and creates area record
-
System refreshes areas table
-
Edit Area
- Administrator clicks edit button on area row
- System displays Area dialog with existing data
- Administrator modifies area details
- Administrator clicks Save
-
System validates and updates area record
-
Delete Area
- Administrator clicks delete button on area row
- System checks for associated itineraries
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes area record
Alternative Flows:
- A1: Delete with Dependencies
- System detects associated itineraries exist
- System displays error: "Cannot delete area with associated itineraries"
Postconditions: - Area record is created/updated/deleted as requested
UC-DIM-03: Manage Cruise Ships¶
Use Case ID: UC-DIM-03 Use Case Name: Manage Cruise Ships Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes cruise ship records.
Preconditions: - User is authenticated with Administrator role - At least one cruise company exists
Basic Flow:
- View Ships
- Administrator opens Settings dialog
- Administrator selects "Ships" tab
-
System displays table of all ships with company names
-
Create Ship
- Administrator clicks "Add Ship" button
- System displays Ship dialog
- Administrator enters ship code, name, description
- Administrator selects company from dropdown
- Administrator optionally enters document URL
- Administrator clicks Save
- System validates and creates ship record
-
System refreshes ships table
-
Edit Ship
- Administrator clicks edit button on ship row
- System displays Ship dialog with existing data
- Administrator modifies ship details
- Administrator clicks Save
-
System validates and updates ship record
-
Delete Ship
- Administrator clicks delete button on ship row
- System checks for associated itineraries and ship cabins
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes ship record
Alternative Flows:
- A1: Delete with Dependencies
- System detects associated itineraries or ship cabins exist
- System displays error with dependency details
Postconditions: - Ship record is created/updated/deleted as requested
UC-DIM-04: Manage Cabin Types¶
Use Case ID: UC-DIM-04 Use Case Name: Manage Cabin Types Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes cabin type records.
Preconditions: - User is authenticated with Administrator role
Basic Flow:
- View Cabin Types
- Administrator opens Settings dialog
- Administrator selects "Cabin Types" tab
-
System displays table of all cabin types
-
Create Cabin Type
- Administrator clicks "Add Cabin Type" button
- System displays Cabin Type dialog
- Administrator enters code and name
- Administrator clicks Save
-
System validates and creates cabin type record
-
Edit Cabin Type
- Administrator clicks edit button on cabin type row
- System displays dialog with existing data
- Administrator modifies details
- Administrator clicks Save
-
System validates and updates record
-
Delete Cabin Type
- Administrator clicks delete button
- System checks for ship cabin assignments
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes cabin type record
Alternative Flows:
- A1: Delete with Dependencies
- System detects cabin type is assigned to ships
- System displays error: "Cannot delete cabin type assigned to ships"
Postconditions: - Cabin type record is created/updated/deleted as requested
UC-DIM-05: Manage Charge Types¶
Use Case ID: UC-DIM-05 Use Case Name: Manage Charge Types Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes charge type records.
Preconditions: - User is authenticated with Administrator role
Basic Flow:
- View Charge Types
- Administrator opens Settings dialog
- Administrator selects "Charge Types" tab
-
System displays table of all charge types
-
Create Charge Type
- Administrator clicks "Add Charge Type" button
- System displays Charge Type dialog
- Administrator enters code and name
- Administrator clicks Save
-
System validates and creates charge type record
-
Edit Charge Type
- Administrator clicks edit button
- System displays dialog with existing data
- Administrator modifies details
- Administrator clicks Save
-
System updates record
-
Delete Charge Type
- Administrator clicks delete button
- System checks for usage in other charges
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes charge type record
Alternative Flows:
- A1: Delete with Dependencies
- System detects charge type is used in cruise other charges
- System displays error: "Cannot delete charge type in use"
Postconditions: - Charge type record is created/updated/deleted as requested
UC-DIM-06: Manage Cruise Ports¶
Use Case ID: UC-DIM-06 Use Case Name: Manage Cruise Ports Actor(s): Administrator Priority: High Description: Administrator creates, views, edits, or deletes cruise port records.
Preconditions: - User is authenticated with Administrator role
Basic Flow:
- View Ports
- Administrator opens Settings dialog
- Administrator selects "Cruise Ports" tab
-
System displays table of all cruise ports
-
Create Port
- Administrator clicks "Add Port" button
- System displays Port dialog
- Administrator enters port code and name
- Administrator clicks Save
-
System validates and creates port record
-
Edit Port
- Administrator clicks edit button
- System displays dialog with existing data
- Administrator modifies details
- Administrator clicks Save
-
System updates record
-
Delete Port
- Administrator clicks delete button
- System checks for usage in templates and cruise points
- System displays confirmation dialog
- Administrator confirms deletion
- System deletes port record
Alternative Flows:
- A1: Delete with Dependencies
- System detects port is referenced in templates or cruise points
- System displays error: "Cannot delete port in use"
Postconditions: - Port record is created/updated/deleted as requested
UC-DIM-07: View Dimension Data Settings¶
Use Case ID: UC-DIM-07 Use Case Name: View Dimension Data Settings Actor(s): Administrator, Cruise Manager Priority: Medium Description: User views all dimension data in a consolidated settings view.
Preconditions: - User is authenticated - User has navigated to Cruise Management page
Basic Flow:
- User clicks Settings button in toolbar
- System displays Settings dialog with tabs
- User selects desired tab (Areas, Ports, Cabin Types, Charge Types, Ships)
- System displays table of records for selected tab
- User views data (Cruise Manager has read-only access)
- User closes dialog
Postconditions: - User has viewed dimension data
4. Ship Cabin Management Use Cases¶
UC-CAB-01: Assign Cabin Types to Ship¶
Use Case ID: UC-CAB-01 Use Case Name: Assign Cabin Types to Ship Actor(s): Administrator Priority: High Description: Administrator assigns available cabin types to a specific ship.
Preconditions: - User is authenticated with Administrator role - Ship record exists - At least one cabin type exists
Basic Flow:
- Administrator navigates to ship management (Settings > Ships)
- Administrator selects a ship
- Administrator clicks "Assign Cabins" button
- System displays Cabin Assignment dialog with all cabin types as checkboxes
- System pre-selects cabin types already assigned to this ship
- Administrator checks/unchecks cabin types
- For each selected cabin type, administrator enters max passenger capacity
- Administrator clicks Save
- System creates new ship cabin records for newly selected types
- System updates max pax for existing assignments
- System displays success notification
Alternative Flows:
- A1: No Cabin Types Defined
- System displays message: "No cabin types available. Create cabin types first."
Postconditions: - Ship cabin assignments are updated - Each assigned cabin type has max passenger capacity defined
UC-CAB-02: Update Ship Cabin Capacity¶
Use Case ID: UC-CAB-02 Use Case Name: Update Ship Cabin Capacity Actor(s): Administrator Priority: Medium Description: Administrator updates the maximum passenger capacity for a ship cabin.
Preconditions: - Ship cabin assignment exists
Basic Flow:
- Administrator opens Cabin Assignment dialog for ship
- Administrator locates the cabin type
- Administrator modifies max passenger value
- Administrator clicks Save
- System updates ship cabin record
Postconditions: - Ship cabin max passenger capacity is updated
UC-CAB-03: Remove Cabin Type from Ship¶
Use Case ID: UC-CAB-03 Use Case Name: Remove Cabin Type from Ship Actor(s): Administrator Priority: Medium Description: Administrator removes a cabin type assignment from a ship.
Preconditions: - Ship cabin assignment exists
Basic Flow:
- Administrator opens Cabin Assignment dialog for ship
- Administrator unchecks a previously assigned cabin type
- Administrator clicks Save
- System checks for cabin charges linked to this ship cabin
- If no charges exist, system deletes ship cabin record
- System displays success notification
Alternative Flows:
- A1: Cabin Charges Exist
- System detects cabin charges exist for this ship cabin
- System displays warning: "Removing this cabin type will also delete X cabin charge records. Continue?"
- Administrator confirms cascade delete
-
System deletes cabin charges and ship cabin record
-
A2: Cancel Cascade Delete
- Administrator cancels at warning dialog
- Ship cabin assignment remains unchanged
Postconditions: - Ship cabin assignment is removed - Related cabin charges are deleted (if confirmed)
UC-CAB-04: Bulk Assign Cabin Types¶
Use Case ID: UC-CAB-04 Use Case Name: Bulk Assign Cabin Types Actor(s): Administrator Priority: Medium Description: Administrator assigns multiple cabin types to a ship in a single operation.
Preconditions: - Ship record exists - Multiple cabin types exist
Basic Flow:
- Administrator opens Cabin Assignment dialog for ship
- Administrator selects multiple cabin types by checking checkboxes
- Administrator enters max passenger capacity for each
- Administrator clicks Save
- System creates all ship cabin records in a single transaction
- System displays success notification with count of assignments created
Postconditions: - Multiple ship cabin assignments are created
5. Itinerary Management Use Cases¶
UC-ITN-01: Create Itinerary¶
Use Case ID: UC-ITN-01 Use Case Name: Create Itinerary Actor(s): Cruise Manager Priority: High Description: Cruise Manager creates a new itinerary for a ship.
Preconditions: - User is authenticated with Cruise Manager role - At least one company with ships exists - At least one cruise area exists
Basic Flow:
- Cruise Manager selects a company in the tree
- Cruise Manager clicks "Add Itinerary" button on company node
- System displays Itinerary dialog
- Cruise Manager enters itinerary code
- Cruise Manager enters duration in nights
- Cruise Manager selects ship from dropdown (filtered by company)
- Cruise Manager selects cruise area
- Cruise Manager optionally enters image URL
- Cruise Manager clicks Save
- System validates input
- System creates itinerary record with Active status
- System refreshes company tree showing new itinerary
- System displays success notification
Alternative Flows:
- A1: Validation Failure
- System displays validation errors
- Cruise Manager corrects input
Postconditions: - New itinerary record is created - Itinerary appears in company tree
UC-ITN-02: Edit Itinerary¶
Use Case ID: UC-ITN-02 Use Case Name: Edit Itinerary Actor(s): Cruise Manager Priority: High Description: Cruise Manager edits an existing itinerary's details.
Preconditions: - Itinerary exists - User has selected itinerary in tree
Basic Flow:
- Cruise Manager selects itinerary in tree
- System displays itinerary details in workspace panel
- Cruise Manager modifies fields (code, duration, ship, area, image URL)
- Cruise Manager clicks Save
- System validates input
- System updates itinerary record
- System refreshes display
- System displays success notification
Alternative Flows:
- A1: Change Ship with Existing Cruises
- System warns: "Changing ship will affect X existing cruises"
- Cruise Manager confirms or cancels
Postconditions: - Itinerary record is updated
UC-ITN-03: Delete Itinerary¶
Use Case ID: UC-ITN-03 Use Case Name: Delete Itinerary Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager deletes an itinerary that is no longer needed.
Preconditions: - Itinerary exists - Itinerary has no associated cruises
Basic Flow:
- Cruise Manager selects itinerary in tree
- Cruise Manager clicks Delete button
- System checks for associated cruises
- System displays confirmation dialog
- Cruise Manager confirms deletion
- System deletes itinerary and its template entries
- System refreshes company tree
- System displays success notification
Alternative Flows:
- A1: Cruises Exist
- System displays error: "Cannot delete itinerary with existing cruises"
- Cruise Manager must delete cruises first or deactivate itinerary instead
Postconditions: - Itinerary and template entries are deleted
UC-ITN-04: Toggle Itinerary Status¶
Use Case ID: UC-ITN-04 Use Case Name: Toggle Itinerary Status Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager activates or deactivates an itinerary.
Preconditions: - Itinerary exists
Basic Flow:
- Cruise Manager selects itinerary in tree
- Cruise Manager clicks Toggle Status button
- System changes status from Active to Inactive (or vice versa)
- System updates itinerary record
- System refreshes display with updated status badge
- System displays notification: "Itinerary [activated/deactivated]"
Alternative Flows:
- A1: Deactivate with Future Cruises
- System warns: "This itinerary has X future cruises. Deactivating will hide it from new bookings."
- Cruise Manager confirms or cancels
Postconditions: - Itinerary status is toggled - Inactive itineraries are hidden from tree (unless filter is enabled)
UC-ITN-05: Manage Itinerary Template¶
Use Case ID: UC-ITN-05 Use Case Name: Manage Itinerary Template Actor(s): Cruise Manager Priority: High Description: Cruise Manager creates and manages the route template for an itinerary.
Preconditions: - Itinerary exists - At least one cruise port exists
Basic Flow:
- View Template
- Cruise Manager selects itinerary
- Cruise Manager clicks "Manage Template" button
- System displays Template Management view/dialog
-
System shows list of template entries sorted by stop sequence
-
Add Template Entry
- Cruise Manager clicks "Add Stop" button
- System displays Template Entry dialog
- Cruise Manager enters: Stop Sequence, Day Offset (arrival), Day Offset (departure), Arrival Time, Departure Time, Port, Description
- Cruise Manager clicks Save
- System validates input
- System creates template entry
-
System refreshes template list
-
Edit Template Entry
- Cruise Manager clicks edit on template entry
- System displays dialog with existing data
- Cruise Manager modifies details
- Cruise Manager clicks Save
-
System updates template entry
-
Delete Template Entry
- Cruise Manager clicks delete on template entry
- System displays confirmation
- Cruise Manager confirms
-
System deletes template entry
-
Reorder Template Entries
- Cruise Manager modifies stop sequence values
- System reorders entries on save
Alternative Flows:
- A1: Day Offset Exceeds Duration
- System validates day offset against itinerary duration
- System displays error: "Day offset cannot exceed itinerary duration"
Postconditions: - Template entries are created/updated/deleted - Template defines the route pattern for cruise generation
UC-ITN-06: View Itinerary Tree¶
Use Case ID: UC-ITN-06 Use Case Name: View Itinerary Tree Actor(s): Cruise Manager Priority: High Description: Cruise Manager navigates the hierarchical view of companies and itineraries.
Preconditions: - User is authenticated - User has navigated to Cruise Management page
Basic Flow:
- System loads and displays company tree on page load
- Companies are shown as expandable parent nodes
- Cruise Manager clicks company node to expand
- System shows itineraries under the company
- Cruise Manager clicks itinerary to select it
- System highlights selected itinerary
- System loads itinerary details in workspace panel
Alternative Flows:
- A1: Toggle Inactive Filter
- Cruise Manager clicks filter toggle button
- System shows/hides inactive itineraries
-
Tree refreshes to reflect filter state
-
A2: Empty Tree
- No companies exist
- System shows empty state: "No cruise companies yet"
Postconditions: - User can navigate and select itineraries
6. Cruise Instance Management Use Cases¶
UC-CRU-01: Create Cruise Instance¶
Use Case ID: UC-CRU-01 Use Case Name: Create Cruise Instance Actor(s): Cruise Manager Priority: High Description: Cruise Manager creates a new cruise (sailing) for an itinerary with a specific start date.
Preconditions: - Itinerary exists and is selected - Itinerary has at least one template entry
Basic Flow:
- Cruise Manager clicks "Add Cruise" button in toolbar
- System displays Cruise dialog showing itinerary name and duration
- Cruise Manager selects start date using date picker
- Cruise Manager clicks Save
- System creates cruise record with status "Available"
- System generates cruise points from template:
- For each template entry, system creates cruise point
- Arrival date = Start date + day offset (arrival)
- Departure date = Start date + day offset (departure)
- Times from template entry
- Port from template entry
- System adds cruise button to selection bar
- System selects the new cruise
- System displays cruise points in detail panel
- System displays success notification
Alternative Flows:
- A1: No Template Defined
-
System displays error: "Cannot create cruise. Please define template entries first."
-
A2: Duplicate Start Date
- System warns: "A cruise already exists for this date. Create anyway?"
- Cruise Manager confirms or cancels
Postconditions: - Cruise record is created - Cruise points are generated from template - Cruise appears in selection bar
UC-CRU-02: View Cruise Details¶
Use Case ID: UC-CRU-02 Use Case Name: View Cruise Details Actor(s): Cruise Manager Priority: High Description: Cruise Manager views the details and route of a specific cruise.
Preconditions: - Cruise exists - Itinerary is selected
Basic Flow:
- Cruise Manager views cruise buttons in selection bar
- Cruise Manager clicks a cruise date button
- System highlights selected cruise button
- System loads cruise points for selected cruise
- System displays cruise points table showing:
- Day number (calculated from start date)
- Port name
- Arrival date and time
- Departure date and time
- Description
- System displays cruise status badge
- System enables "Configure Pricing" button
Postconditions: - Cruise details and route are displayed
UC-CRU-03: Edit Cruise Points¶
Use Case ID: UC-CRU-03 Use Case Name: Edit Cruise Points Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager modifies individual cruise point details after generation.
Preconditions: - Cruise exists with cruise points
Basic Flow:
- Cruise Manager selects a cruise
- Cruise Manager clicks edit button on a cruise point row
- System displays Cruise Point Edit dialog
- Cruise Manager modifies: Port, Arrival Date/Time, Departure Date/Time, Description
- Cruise Manager clicks Save
- System validates input
- System updates cruise point record
- System refreshes cruise points table
- System displays success notification
Alternative Flows:
- A1: Invalid Time Sequence
- System validates departure is after arrival
- System displays error if invalid
Postconditions: - Cruise point is updated with new details
UC-CRU-04: Regenerate Cruise Points¶
Use Case ID: UC-CRU-04 Use Case Name: Regenerate Cruise Points Actor(s): Cruise Manager Priority: Low Description: Cruise Manager regenerates cruise points from template, replacing any manual modifications.
Preconditions: - Cruise exists - Itinerary template has entries
Basic Flow:
- Cruise Manager selects a cruise
- Cruise Manager clicks "Regenerate Points" button
- System displays warning: "This will replace all existing cruise points with new ones generated from the template. Any manual changes will be lost. Continue?"
- Cruise Manager confirms
- System deletes existing cruise points
- System generates new cruise points from template
- System refreshes cruise points table
- System displays success notification
Alternative Flows:
- A1: Cancel Regeneration
- Cruise Manager cancels at warning
- No changes are made
Postconditions: - Cruise points are regenerated from template - Manual modifications are lost
UC-CRU-05: Change Cruise Status¶
Use Case ID: UC-CRU-05 Use Case Name: Change Cruise Status Actor(s): Cruise Manager Priority: High Description: Cruise Manager changes the status of a cruise (available, cancelled, sold-out).
Preconditions: - Cruise exists and is selected
Basic Flow:
- Cruise Manager selects a cruise
- Cruise Manager clicks status change button/dropdown
- System displays status options: Available, Cancelled, Sold-out
- Cruise Manager selects new status
- System updates cruise status
- System updates status badge on cruise button
- System displays notification: "Cruise status changed to [status]"
Alternative Flows:
- A1: Cancel Cruise with Bookings
- System warns: "This cruise may have bookings. Cancellation will require notifying customers."
- Cruise Manager confirms or cancels
Postconditions: - Cruise status is updated - Status reflected in UI
UC-CRU-06: Delete Cruise Instance¶
Use Case ID: UC-CRU-06 Use Case Name: Delete Cruise Instance Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager deletes a cruise that is no longer needed.
Preconditions: - Cruise exists and is selected
Basic Flow:
- Cruise Manager selects a cruise
- Cruise Manager clicks Delete button
- System displays confirmation: "Delete this cruise? This will also delete all cruise points, cabin charges, and other charges."
- Cruise Manager confirms
- System deletes:
- Other charges for cruise
- Cabin charges for cruise
- Cruise points for cruise
- Cruise record
- System removes cruise button from selection bar
- System clears cruise details panel
- System displays success notification
Alternative Flows:
- A1: Cancel Deletion
- Cruise Manager cancels at confirmation
- No changes are made
Postconditions: - Cruise and all related records are deleted
7. Pricing Management Use Cases¶
UC-PRC-01: Configure Cabin Charges¶
Use Case ID: UC-PRC-01 Use Case Name: Configure Cabin Charges Actor(s): Cruise Manager Priority: High Description: Cruise Manager sets the base price for each cabin type on a specific cruise.
Preconditions: - Cruise exists - Ship has cabin types assigned
Basic Flow:
- Cruise Manager selects a cruise
- Cruise Manager clicks "Configure Pricing" button
- System navigates to Pricing page
- System displays list of all cabin types assigned to the cruise's ship
- For each cabin type, Cruise Manager enters:
- Amount (base price per cabin per trip)
- Currency (3-letter code)
- Exchange rate
- Cruise Manager clicks Save
- System validates input
- System creates/updates cabin charge records
- System displays success notification
Alternative Flows:
- A1: No Cabin Types Assigned
-
System displays message: "No cabin types assigned to this ship. Configure ship cabins first."
-
A2: Validation Error
- System highlights invalid fields
- Cruise Manager corrects and retries
Postconditions: - Cabin charges are configured for the cruise
UC-PRC-02: Set Cabin Availability¶
Use Case ID: UC-PRC-02 Use Case Name: Set Cabin Availability Actor(s): Cruise Manager Priority: High Description: Cruise Manager marks cabin types as available or sold-out for a cruise.
Preconditions: - Cabin charge exists for cruise
Basic Flow:
- Cruise Manager is on Pricing page for a cruise
- Cruise Manager locates cabin type row
- Cruise Manager toggles availability switch
- System immediately updates cabin charge availability status
- System displays visual feedback (switch position, row styling)
Alternative Flows:
- A1: Mark All Sold-Out
- All cabins marked sold-out
- System prompts: "Mark cruise as sold-out?"
- Cruise Manager confirms to update cruise status
Postconditions: - Cabin availability status is updated
UC-PRC-03: Add Other Charges¶
Use Case ID: UC-PRC-03 Use Case Name: Add Other Charges Actor(s): Cruise Manager Priority: High Description: Cruise Manager adds additional charges (taxes, fees, packages) to a cruise.
Preconditions: - Cruise exists - At least one charge type exists
Basic Flow:
- Cruise Manager is on Pricing page
- Cruise Manager clicks "Add Charge" in Other Charges section
- System displays Other Charge dialog
- Cruise Manager selects charge type from dropdown
- Cruise Manager enters amount, currency, exchange rate
- Cruise Manager sets mandatory flag (checkbox)
- Cruise Manager clicks Save
- System creates other charge record
- System adds charge to Other Charges table
- System displays success notification
Alternative Flows:
- A1: Duplicate Charge Type
- System detects charge type already exists for cruise
- System displays error: "This charge type is already added to this cruise"
Postconditions: - Other charge is added to cruise
UC-PRC-04: Edit Other Charges¶
Use Case ID: UC-PRC-04 Use Case Name: Edit Other Charges Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager modifies an existing other charge.
Preconditions: - Other charge exists for cruise
Basic Flow:
- Cruise Manager is on Pricing page
- Cruise Manager clicks edit on other charge row
- System displays dialog with existing data
- Cruise Manager modifies amount, currency, exchange rate, or mandatory flag
- Cruise Manager clicks Save
- System updates other charge record
- System refreshes display
Postconditions: - Other charge is updated
UC-PRC-05: Remove Other Charges¶
Use Case ID: UC-PRC-05 Use Case Name: Remove Other Charges Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager removes an other charge from a cruise.
Preconditions: - Other charge exists for cruise
Basic Flow:
- Cruise Manager is on Pricing page
- Cruise Manager clicks delete on other charge row
- System displays confirmation: "Remove this charge?"
- Cruise Manager confirms
- System deletes other charge record
- System removes charge from table
Postconditions: - Other charge is removed from cruise
UC-PRC-06: Initialize Pricing for Cruise¶
Use Case ID: UC-PRC-06 Use Case Name: Initialize Pricing for Cruise Actor(s): Cruise Manager Priority: Medium Description: Cruise Manager initializes cabin charge entries for all ship cabins with default values.
Preconditions: - Cruise exists - Ship has cabin types assigned - Cabin charges not yet created for this cruise
Basic Flow:
- Cruise Manager is on Pricing page
- System detects no cabin charges exist
- Cruise Manager clicks "Initialize Pricing" button
- System creates cabin charge record for each ship cabin with:
- Amount: 0.00 (to be filled in)
- Currency: default (e.g., USD)
- Exchange rate: 1.00
- Available: true
- System displays cabin charges table with all entries
- Cruise Manager proceeds to enter amounts
Alternative Flows:
- A1: Charges Already Exist
- System warns: "Cabin charges already exist. Initialize will reset all values. Continue?"
- Cruise Manager confirms or cancels
Postconditions: - Cabin charge entries exist for all ship cabins on cruise
8. Search & Booking Use Cases¶
UC-BKG-01: Search Cruises by Criteria¶
Use Case ID: UC-BKG-01 Use Case Name: Search Cruises by Criteria Actor(s): Booking Agent Priority: High Description: Booking Agent searches for available cruises using various filter criteria.
Preconditions: - User is authenticated - Cruises exist in the system
Basic Flow:
- Booking Agent accesses cruise search interface
- Booking Agent enters search criteria:
- Cruise area (dropdown)
- Date range (from/to date pickers)
- Duration range (min/max nights)
- Company (optional)
- Ship (optional)
- Booking Agent clicks Search
- System queries cruises matching criteria
- System returns results with:
- Itinerary name
- Ship name
- Start date
- Duration
- Lowest cabin price
- Status
- Booking Agent views search results
Alternative Flows:
- A1: No Results
-
System displays: "No cruises found matching your criteria"
-
A2: Filter by Port
- Booking Agent specifies port of call
- System returns cruises that stop at specified port
Postconditions: - Search results are displayed
UC-BKG-02: View Cruise Availability¶
Use Case ID: UC-BKG-02 Use Case Name: View Cruise Availability Actor(s): Booking Agent Priority: High Description: Booking Agent views detailed availability and pricing for a specific cruise.
Preconditions: - Cruise exists - Cabin charges are configured
Basic Flow:
- Booking Agent selects a cruise from search results
- System displays cruise availability:
- Cruise details (ship, dates, route)
- Available cabin types with prices
- Sold-out cabin types (marked as unavailable)
- Mandatory other charges
- Optional other charges (packages)
- Booking Agent reviews availability
Postconditions: - Booking Agent has availability information for booking decision
UC-BKG-03: Get Itineraries by Area¶
Use Case ID: UC-BKG-03 Use Case Name: Get Itineraries by Area Actor(s): Booking Agent Priority: High Description: Booking Agent retrieves all itineraries available in a specific cruise area.
Preconditions: - Cruise areas exist - Itineraries exist
Basic Flow:
- Booking Agent selects a cruise area
- System retrieves all active itineraries for that area
- System returns itineraries with:
- Itinerary name/code
- Ship name
- Duration
- Number of upcoming cruises
- Lowest price available
- Booking Agent views itinerary options
Postconditions: - Itineraries for area are displayed
UC-BKG-04: Calculate Cruise Price¶
Use Case ID: UC-BKG-04 Use Case Name: Calculate Cruise Price Actor(s): Booking Agent Priority: High Description: Booking Agent calculates the total price for a cruise booking.
Preconditions: - Cruise exists with pricing configured
Basic Flow:
- Booking Agent specifies:
- Cruise ID
- Cabin type selection
- Number of adults
- Number of children
- Selected optional charges
- System calculates total price:
- Cabin base price (per cabin)
- Mandatory charges × number of passengers
- Optional charges × number of passengers (where applicable)
- System returns price breakdown:
- Cabin charge
- Per-person charges subtotal
- Optional charges subtotal
- Total price
- Booking Agent reviews price calculation
Alternative Flows:
- A1: Cabin Not Available
- System returns error: "Selected cabin type is not available"
Postconditions: - Price calculation is returned
UC-BKG-05: View Cruise Route¶
Use Case ID: UC-BKG-05 Use Case Name: View Cruise Route Actor(s): Booking Agent Priority: Medium Description: Booking Agent views the detailed route (ports of call) for a cruise.
Preconditions: - Cruise exists with cruise points
Basic Flow:
- Booking Agent selects a cruise
- System retrieves cruise points
- System displays route:
- Day-by-day itinerary
- Port names
- Arrival and departure times
- Duration at each port
- Special notes/descriptions
- Booking Agent reviews route details
Postconditions: - Cruise route is displayed
8.5 Pre-Booking Management¶
UC-PRE-01: Manage Pre-Bookings via Dialog¶
Use Case ID: UC-PRE-01 Use Case Name: Manage Pre-Bookings via Dialog Actor(s): Cruise Manager Priority: High Description: Cruise Manager manages cabin pre-booking inventory for a sailing through the prebook dialog.
Preconditions: - User is authenticated with Cruise Manager role - Sailing exists with Active status - At least one ship cabin type is assigned to the ship
Basic Flow:
- Cruise Manager navigates to itinerary page and selects a sailing
- Cruise Manager clicks "Prebook" button in cabin pricing section
- System displays Prebook dialog with cabin type selector
- Cruise Manager selects a cabin type
- System shows current pre-booking count and booked/reserved count for this cabin type + sailing
- Cruise Manager enters target count, cost per cabin, price per cabin, and commission percentage
- Cruise Manager optionally checks "Apply price to all" checkbox
- Cruise Manager clicks Save
- System calls managePrebookings which:
- Validates target count >= non-Available (Reserved + Booked) count
- Creates new Available pre-bookings if target > current total
- Deletes excess Available pre-bookings if target < current total
- Optionally updates price/cost/commission on all existing pre-bookings
- System refreshes cabin charges table showing updated Prebk and Avail columns
- System displays success notification
Alternative Flows:
- A1: Target Below Minimum
- System validates target < non-Available count
- System displays error: "Target count (N) cannot be less than non-available pre-bookings (M)"
Postconditions: - Pre-booking count matches target - Cabin charges table shows updated Prebk and Avail columns
UC-PRE-02: Quick Add/Remove Pre-Booking¶
Use Case ID: UC-PRE-02 Use Case Name: Quick Add/Remove Pre-Booking Actor(s): Cruise Manager, Booking Agent Priority: Medium Description: User quickly adjusts pre-booking count using inline +/- buttons on the cabin availability table.
Preconditions: - Sailing exists - User is on the agent booking page with a sailing selected
Basic Flow:
- User views the cabin availability table for a sailing
- User clicks the "+" button next to a cabin type's prebook count
- System creates one new Available pre-booking for that cabin type + sailing
- System updates the Prebk and Avail columns
- Alternatively, user clicks "-" button
- System deletes one Available pre-booking (if any exist)
- System updates the display
Alternative Flows:
- A1: No Available Pre-Bookings to Remove
- User clicks "-" but no Available pre-bookings exist
- System displays notification: "No available pre-bookings to remove"
Postconditions: - Pre-booking count adjusted by one - Display updated
8.6 Booking Management¶
UC-BKG-06: Create New Booking¶
Use Case ID: UC-BKG-06 Use Case Name: Create New Booking Actor(s): Booking Agent Priority: High Description: Booking Agent creates a new booking for a selected sailing, including lead passenger and initial cabin assignment.
Preconditions: - User is authenticated with Agent role - Sailing exists with Active status - At least one cabin type has pricing configured
Basic Flow:
- Booking Agent navigates to agent booking page
- Booking Agent selects a sailing from the sailing strip
- System loads cabin availability and existing bookings
- Booking Agent clicks "New Booking" button
- System displays New Booking dialog with:
- Adults count (default 2)
- Children count (default 0)
- Infants count (default 0)
- Cabin type selector (populated from available ship cabins)
- Lead passenger fields: first name, last name, nationality (with autocomplete)
- Booking Agent enters passenger counts and selects cabin type
- Booking Agent enters lead passenger details with nationality autocomplete
- Booking Agent clicks Create
- System generates booking number: PT-DDMM-XXXXXXXX (using createId)
- System creates booking record with status "Documents pending"
- System creates lead passenger record (isLeadPassenger=true)
- System assigns cabin with pre-booking priority:
- Checks for Available pre-bookings for the selected cabin type + sailing
- If available: assigns as own cabin (isOwn=true, preBookingId set)
- If not: assigns as non-own cabin (isOwn=false)
- System navigates to the new booking's detail view
- System displays success notification
Alternative Flows:
- A1: Visa Check Warning
- System performs visa check for lead passenger nationality against cruise ports
- If visa required for any port, system shows visa warning badges
Postconditions: - Booking created with "Documents pending" status - Lead passenger created - Initial cabin assigned (own or non-own) - Booking visible in bookings list
UC-BKG-07: Manage Passengers¶
Use Case ID: UC-BKG-07 Use Case Name: Manage Passengers Actor(s): Booking Agent Priority: High Description: Booking Agent adds, edits, or removes passengers from a booking.
Preconditions: - Booking exists - User has selected the booking in the detail view
Basic Flow:
- View Passengers
- System displays passengers table with columns: Name, Nationality, DOB, Age, Passport, Visa, Actions
- Each passenger shows age badge (Adult/Child/Infant) computed from DOB vs sailing date
-
Each passenger shows visa badges for destination ports
-
Add Passenger
- Booking Agent clicks "Add Passenger" button
- System displays Passenger dialog
- Booking Agent enters: first name, last name, nationality (autocomplete), date of birth, passport number, passport expiry, remarks
- System computes and displays age category based on DOB
- Booking Agent clicks Save
- System creates passenger record
- System performs visa check and displays results in visa info area
-
System refreshes passenger table
-
Edit Passenger
- Booking Agent clicks edit button on passenger row
- System displays dialog with existing data
- Booking Agent modifies details
- Booking Agent clicks Save
-
System updates passenger record
-
Delete Passenger
- Booking Agent clicks delete button on passenger row
- System displays confirmation dialog
- Booking Agent confirms
- System deletes passenger record
Postconditions: - Passenger records updated - Visa badges reflect current nationality/destinations
UC-BKG-08: Manage Booked Cabins¶
Use Case ID: UC-BKG-08 Use Case Name: Manage Booked Cabins Actor(s): Booking Agent Priority: High Description: Booking Agent adds or removes cabin assignments for a booking.
Preconditions: - Booking exists - Ship cabin types have pricing configured
Basic Flow:
- View Cabins
- System displays booked cabins table with columns: Cabin Type, Pax, Own, Price, Actions
- Own column shows badge (Yes/No) indicating pre-booking ownership
-
Footer shows total cabin cost
-
Add Cabin
- Booking Agent clicks "Add Cabin" button
- System displays Add Cabin dialog with cabin type selector and number of passengers
- System shows pre-booking availability info for selected cabin type
- Booking Agent selects cabin type and enters pax count
- System auto-fills price from cabin charge template
- Booking Agent clicks Save
- System checks for available pre-bookings:
- Available prebook exists → isOwn=true, preBookingId set
- No available prebook → isOwn=false
- System creates booked cabin record
- System recalculates booking totals
-
System refreshes display
-
Delete Cabin
- Booking Agent clicks delete button on cabin row
- System displays confirmation dialog
- Booking Agent confirms
- System deletes booked cabin record
- System recalculates booking totals
Postconditions: - Cabin assignments updated - Booking total recalculated - Pre-booking inventory updated if own cabin added/removed
UC-BKG-09: Manage Add-ons¶
Use Case ID: UC-BKG-09 Use Case Name: Manage Add-ons Actor(s): Booking Agent Priority: High Description: Booking Agent manages optional charges (add-ons) for a booking.
Preconditions: - Booking exists - Sailing has non-mandatory other charges configured
Basic Flow:
- View Add-ons
- System displays add-ons table with columns: Charge Type, Passenger, Amount, Currency, Actions
-
Footer shows total add-on amount
-
Add Add-on
- Booking Agent clicks "Add Add-on" button
- System displays Add-on dialog with:
- Charge type selector (populated from sailing's non-mandatory other charges)
- Passenger selector (optional, from booking's passengers)
- Amount (pre-filled from other charge amount)
- Currency (pre-filled from other charge currency)
- Booking Agent selects charge type
- System auto-fills amount and currency
- Booking Agent optionally selects a passenger
- Booking Agent clicks Save
- System creates add-on record
-
System recalculates booking totals
-
Delete Add-on
- Booking Agent clicks delete on add-on row
- System displays confirmation
- Booking Agent confirms
- System deletes add-on record
- System recalculates booking totals
Postconditions: - Add-on records updated - Booking total recalculated
UC-BKG-10: Change Booking Status¶
Use Case ID: UC-BKG-10 Use Case Name: Change Booking Status Actor(s): Booking Agent Priority: High Description: Booking Agent changes the status of a booking through the defined lifecycle.
Preconditions: - Booking exists - New status is a valid transition from current status
Basic Flow:
- Booking Agent views booking details
- Booking Agent selects new status from status dropdown
- System validates the status transition
- System displays confirmation: "Change booking status from '[current]' to '[new]'?"
- Booking Agent confirms
- System updates booking status
- System refreshes status badge in booking header
- System displays success notification
Alternative Flows:
- A1: Invalid Transition
- System rejects invalid status transition
- System displays error: "Invalid status transition from '[current]' to '[new]'"
Valid Transitions: - Documents pending → Availability pending, Payment pending, Cancelled-NonRefundable - Availability pending → Payment pending, Cancelled-NonRefundable - Payment pending → Voucher pending, Cancelled-NonRefundable, Cancelled-RefundPending - Voucher pending → Vouchered, Cancelled-RefundPending - Vouchered → Cancelled-RefundPending - Cancelled-RefundPending → Cancelled-Refunded
Postconditions: - Booking status is updated - Status badge reflects new status
UC-BKG-11: Delete Booking¶
Use Case ID: UC-BKG-11 Use Case Name: Delete Booking Actor(s): Booking Agent Priority: Medium Description: Booking Agent deletes a booking and all its associated data.
Preconditions: - Booking exists
Basic Flow:
- Booking Agent views booking details
- Booking Agent clicks Delete button
- System displays confirmation: "Delete this booking? This will remove all passengers, cabins, and add-ons."
- Booking Agent confirms
- System cascades deletion:
- Deletes all booking add-ons
- Deletes all booked cabins
- Deletes all passengers
- Deletes booking record
- System clears booking detail view
- System refreshes bookings list
- System displays success notification
Postconditions: - Booking and all sub-entities are deleted - Bookings list refreshed
9. System Use Cases¶
UC-SYS-01: Generate Cruise Points from Template¶
Use Case ID: UC-SYS-01 Use Case Name: Generate Cruise Points from Template Actor(s): System Priority: High Description: System automatically generates cruise points when a cruise is created.
Trigger: Cruise record is created
Basic Flow:
- System receives cruise creation with itinerary ID and start date
- System retrieves template entries for itinerary
- For each template entry (sorted by stop sequence):
- Calculate arrival date = start date + day offset (arrival)
- Calculate departure date = start date + day offset (departure)
- Combine with arrival/departure times from template
- Create cruise point record with:
- Cruise ID
- Port ID (from template)
- Arrival datetime
- Departure datetime
- Description (from template)
- System commits all cruise points
Postconditions: - Cruise points exist for the new cruise
UC-SYS-02: Validate Cascade Delete¶
Use Case ID: UC-SYS-02 Use Case Name: Validate Cascade Delete Actor(s): System Priority: High Description: System validates and reports dependencies before delete operations.
Trigger: User initiates delete operation on parent entity
Basic Flow:
- System receives delete request for entity
- System identifies entity type and ID
- System queries for dependent records:
- Company: Check for ships
- Ship: Check for itineraries, ship cabins
- Itinerary: Check for cruises
- Cruise: Check for cruise points, cabin charges, other charges
- Cabin Type: Check for ship cabin assignments
- Charge Type: Check for other charges
- Port: Check for template entries, cruise points
- If dependencies exist:
- Return error with dependency count
- OR return warning for cascade delete confirmation
- If no dependencies:
- Allow delete to proceed
Postconditions: - User is informed of dependencies - Delete is blocked or requires explicit cascade confirmation
10. Appendix¶
10.1 Use Case - Actor Matrix¶
| Use Case | Administrator | Cruise Manager | Booking Agent | System |
|---|---|---|---|---|
| UC-DIM-01 to 06 | ● | |||
| UC-DIM-07 | ● | ○ | ||
| UC-CAB-01 to 04 | ● | |||
| UC-ITN-01 to 06 | ● | |||
| UC-CRU-01 to 06 | ● | |||
| UC-PRC-01 to 06 | ● | |||
| UC-BKG-01 to 05 | ● | |||
| UC-PRE-01 to 02 | ● | ○ | ||
| UC-BKG-06 to 11 | ● | |||
| UC-SYS-01 to 02 | ● |
● = Primary Actor, ○ = Secondary Actor
10.2 Use Case Priority Summary¶
| Priority | Count | Use Cases |
|---|---|---|
| High | 26 | UC-DIM-01 to 06, UC-CAB-01, UC-ITN-01, 02, 05, 06, UC-CRU-01, 02, 05, UC-PRC-01 to 03, UC-BKG-01 to 04, UC-PRE-01, UC-BKG-06 to 10, UC-SYS-01, 02 |
| Medium | 13 | UC-DIM-07, UC-CAB-02 to 04, UC-ITN-03, 04, UC-CRU-03, 06, UC-PRC-04 to 06, UC-BKG-05, UC-PRE-02, UC-BKG-11 |
| Low | 1 | UC-CRU-04 |
10.3 CRUD Operations by Entity¶
| Entity | Create | Read | Update | Delete |
|---|---|---|---|---|
| Cruise Company | UC-DIM-01 | UC-DIM-01, UC-ITN-06 | UC-DIM-01 | UC-DIM-01 |
| Cruise Area | UC-DIM-02 | UC-DIM-02, UC-BKG-03 | UC-DIM-02 | UC-DIM-02 |
| Cruise Ship | UC-DIM-03 | UC-DIM-03 | UC-DIM-03 | UC-DIM-03 |
| Cabin Type | UC-DIM-04 | UC-DIM-04, UC-PRC-01 | UC-DIM-04 | UC-DIM-04 |
| Charge Type | UC-DIM-05 | UC-DIM-05, UC-PRC-03 | UC-DIM-05 | UC-DIM-05 |
| Cruise Port | UC-DIM-06 | UC-DIM-06, UC-ITN-05 | UC-DIM-06 | UC-DIM-06 |
| Ship Cabin | UC-CAB-01, 04 | UC-CAB-01, UC-PRC-01 | UC-CAB-02 | UC-CAB-03 |
| Itinerary | UC-ITN-01 | UC-ITN-06, UC-BKG-03 | UC-ITN-02, 04 | UC-ITN-03 |
| Cruise Template | UC-ITN-05 | UC-ITN-05 | UC-ITN-05 | UC-ITN-05 |
| Cruise | UC-CRU-01 | UC-CRU-02, UC-BKG-01, 02 | UC-CRU-05 | UC-CRU-06 |
| Cruise Point | UC-SYS-01 | UC-CRU-02, UC-BKG-05 | UC-CRU-03 | UC-CRU-04, 06 |
| Cabin Charge | UC-PRC-01, 06 | UC-PRC-01, UC-BKG-02 | UC-PRC-01, 02 | UC-CRU-06 |
| Other Charge | UC-PRC-03 | UC-PRC-03, UC-BKG-02 | UC-PRC-04 | UC-PRC-05, UC-CRU-06 |
| Cabin PreBooking | UC-PRE-01 | UC-PRE-01 | UC-PRE-01 | UC-PRE-01 |
| Cruise Booking | UC-BKG-06 | UC-BKG-06, 10 | UC-BKG-10 | UC-BKG-11 |
| Cruise Passenger | UC-BKG-07 | UC-BKG-07 | UC-BKG-07 | UC-BKG-07 |
| Booked Cabin | UC-BKG-08 | UC-BKG-08 | UC-BKG-08 | UC-BKG-08 |
| Booking Add-on | UC-BKG-09 | UC-BKG-09 | UC-BKG-09 | UC-BKG-09 |