Skip to content

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

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:

  1. View Companies
  2. System displays the company tree in the left panel
  3. Administrator views all existing companies

  4. Create Company

  5. Administrator clicks "Add Company" button
  6. System displays Company dialog
  7. Administrator enters company code and name
  8. Administrator clicks Save
  9. System validates input (code unique, required fields)
  10. System creates company record
  11. System refreshes company tree
  12. System displays success notification

  13. Edit Company

  14. Administrator clicks edit button on company node
  15. System displays Company dialog with existing data
  16. Administrator modifies company details
  17. Administrator clicks Save
  18. System validates and updates company record
  19. System refreshes company tree

  20. Delete Company

  21. Administrator clicks delete button on company node
  22. System checks for associated ships
  23. System displays confirmation dialog
  24. Administrator confirms deletion
  25. System deletes company record
  26. 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:

  1. View Areas
  2. Administrator opens Settings dialog
  3. Administrator selects "Cruise Areas" tab
  4. System displays table of all cruise areas

  5. Create Area

  6. Administrator clicks "Add Area" button
  7. System displays Area dialog
  8. Administrator enters area code and description
  9. Administrator clicks Save
  10. System validates and creates area record
  11. System refreshes areas table

  12. Edit Area

  13. Administrator clicks edit button on area row
  14. System displays Area dialog with existing data
  15. Administrator modifies area details
  16. Administrator clicks Save
  17. System validates and updates area record

  18. Delete Area

  19. Administrator clicks delete button on area row
  20. System checks for associated itineraries
  21. System displays confirmation dialog
  22. Administrator confirms deletion
  23. 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:

  1. View Ships
  2. Administrator opens Settings dialog
  3. Administrator selects "Ships" tab
  4. System displays table of all ships with company names

  5. Create Ship

  6. Administrator clicks "Add Ship" button
  7. System displays Ship dialog
  8. Administrator enters ship code, name, description
  9. Administrator selects company from dropdown
  10. Administrator optionally enters document URL
  11. Administrator clicks Save
  12. System validates and creates ship record
  13. System refreshes ships table

  14. Edit Ship

  15. Administrator clicks edit button on ship row
  16. System displays Ship dialog with existing data
  17. Administrator modifies ship details
  18. Administrator clicks Save
  19. System validates and updates ship record

  20. Delete Ship

  21. Administrator clicks delete button on ship row
  22. System checks for associated itineraries and ship cabins
  23. System displays confirmation dialog
  24. Administrator confirms deletion
  25. 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:

  1. View Cabin Types
  2. Administrator opens Settings dialog
  3. Administrator selects "Cabin Types" tab
  4. System displays table of all cabin types

  5. Create Cabin Type

  6. Administrator clicks "Add Cabin Type" button
  7. System displays Cabin Type dialog
  8. Administrator enters code and name
  9. Administrator clicks Save
  10. System validates and creates cabin type record

  11. Edit Cabin Type

  12. Administrator clicks edit button on cabin type row
  13. System displays dialog with existing data
  14. Administrator modifies details
  15. Administrator clicks Save
  16. System validates and updates record

  17. Delete Cabin Type

  18. Administrator clicks delete button
  19. System checks for ship cabin assignments
  20. System displays confirmation dialog
  21. Administrator confirms deletion
  22. 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:

  1. View Charge Types
  2. Administrator opens Settings dialog
  3. Administrator selects "Charge Types" tab
  4. System displays table of all charge types

  5. Create Charge Type

  6. Administrator clicks "Add Charge Type" button
  7. System displays Charge Type dialog
  8. Administrator enters code and name
  9. Administrator clicks Save
  10. System validates and creates charge type record

  11. Edit Charge Type

  12. Administrator clicks edit button
  13. System displays dialog with existing data
  14. Administrator modifies details
  15. Administrator clicks Save
  16. System updates record

  17. Delete Charge Type

  18. Administrator clicks delete button
  19. System checks for usage in other charges
  20. System displays confirmation dialog
  21. Administrator confirms deletion
  22. 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:

  1. View Ports
  2. Administrator opens Settings dialog
  3. Administrator selects "Cruise Ports" tab
  4. System displays table of all cruise ports

  5. Create Port

  6. Administrator clicks "Add Port" button
  7. System displays Port dialog
  8. Administrator enters port code and name
  9. Administrator clicks Save
  10. System validates and creates port record

  11. Edit Port

  12. Administrator clicks edit button
  13. System displays dialog with existing data
  14. Administrator modifies details
  15. Administrator clicks Save
  16. System updates record

  17. Delete Port

  18. Administrator clicks delete button
  19. System checks for usage in templates and cruise points
  20. System displays confirmation dialog
  21. Administrator confirms deletion
  22. 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:

  1. User clicks Settings button in toolbar
  2. System displays Settings dialog with tabs
  3. User selects desired tab (Areas, Ports, Cabin Types, Charge Types, Ships)
  4. System displays table of records for selected tab
  5. User views data (Cruise Manager has read-only access)
  6. 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:

  1. Administrator navigates to ship management (Settings > Ships)
  2. Administrator selects a ship
  3. Administrator clicks "Assign Cabins" button
  4. System displays Cabin Assignment dialog with all cabin types as checkboxes
  5. System pre-selects cabin types already assigned to this ship
  6. Administrator checks/unchecks cabin types
  7. For each selected cabin type, administrator enters max passenger capacity
  8. Administrator clicks Save
  9. System creates new ship cabin records for newly selected types
  10. System updates max pax for existing assignments
  11. 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:

  1. Administrator opens Cabin Assignment dialog for ship
  2. Administrator locates the cabin type
  3. Administrator modifies max passenger value
  4. Administrator clicks Save
  5. 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:

  1. Administrator opens Cabin Assignment dialog for ship
  2. Administrator unchecks a previously assigned cabin type
  3. Administrator clicks Save
  4. System checks for cabin charges linked to this ship cabin
  5. If no charges exist, system deletes ship cabin record
  6. 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:

  1. Administrator opens Cabin Assignment dialog for ship
  2. Administrator selects multiple cabin types by checking checkboxes
  3. Administrator enters max passenger capacity for each
  4. Administrator clicks Save
  5. System creates all ship cabin records in a single transaction
  6. 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:

  1. Cruise Manager selects a company in the tree
  2. Cruise Manager clicks "Add Itinerary" button on company node
  3. System displays Itinerary dialog
  4. Cruise Manager enters itinerary code
  5. Cruise Manager enters duration in nights
  6. Cruise Manager selects ship from dropdown (filtered by company)
  7. Cruise Manager selects cruise area
  8. Cruise Manager optionally enters image URL
  9. Cruise Manager clicks Save
  10. System validates input
  11. System creates itinerary record with Active status
  12. System refreshes company tree showing new itinerary
  13. 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:

  1. Cruise Manager selects itinerary in tree
  2. System displays itinerary details in workspace panel
  3. Cruise Manager modifies fields (code, duration, ship, area, image URL)
  4. Cruise Manager clicks Save
  5. System validates input
  6. System updates itinerary record
  7. System refreshes display
  8. 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:

  1. Cruise Manager selects itinerary in tree
  2. Cruise Manager clicks Delete button
  3. System checks for associated cruises
  4. System displays confirmation dialog
  5. Cruise Manager confirms deletion
  6. System deletes itinerary and its template entries
  7. System refreshes company tree
  8. 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:

  1. Cruise Manager selects itinerary in tree
  2. Cruise Manager clicks Toggle Status button
  3. System changes status from Active to Inactive (or vice versa)
  4. System updates itinerary record
  5. System refreshes display with updated status badge
  6. 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:

  1. View Template
  2. Cruise Manager selects itinerary
  3. Cruise Manager clicks "Manage Template" button
  4. System displays Template Management view/dialog
  5. System shows list of template entries sorted by stop sequence

  6. Add Template Entry

  7. Cruise Manager clicks "Add Stop" button
  8. System displays Template Entry dialog
  9. Cruise Manager enters: Stop Sequence, Day Offset (arrival), Day Offset (departure), Arrival Time, Departure Time, Port, Description
  10. Cruise Manager clicks Save
  11. System validates input
  12. System creates template entry
  13. System refreshes template list

  14. Edit Template Entry

  15. Cruise Manager clicks edit on template entry
  16. System displays dialog with existing data
  17. Cruise Manager modifies details
  18. Cruise Manager clicks Save
  19. System updates template entry

  20. Delete Template Entry

  21. Cruise Manager clicks delete on template entry
  22. System displays confirmation
  23. Cruise Manager confirms
  24. System deletes template entry

  25. Reorder Template Entries

  26. Cruise Manager modifies stop sequence values
  27. 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:

  1. System loads and displays company tree on page load
  2. Companies are shown as expandable parent nodes
  3. Cruise Manager clicks company node to expand
  4. System shows itineraries under the company
  5. Cruise Manager clicks itinerary to select it
  6. System highlights selected itinerary
  7. 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:

  1. Cruise Manager clicks "Add Cruise" button in toolbar
  2. System displays Cruise dialog showing itinerary name and duration
  3. Cruise Manager selects start date using date picker
  4. Cruise Manager clicks Save
  5. System creates cruise record with status "Available"
  6. System generates cruise points from template:
  7. For each template entry, system creates cruise point
  8. Arrival date = Start date + day offset (arrival)
  9. Departure date = Start date + day offset (departure)
  10. Times from template entry
  11. Port from template entry
  12. System adds cruise button to selection bar
  13. System selects the new cruise
  14. System displays cruise points in detail panel
  15. 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:

  1. Cruise Manager views cruise buttons in selection bar
  2. Cruise Manager clicks a cruise date button
  3. System highlights selected cruise button
  4. System loads cruise points for selected cruise
  5. System displays cruise points table showing:
  6. Day number (calculated from start date)
  7. Port name
  8. Arrival date and time
  9. Departure date and time
  10. Description
  11. System displays cruise status badge
  12. 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:

  1. Cruise Manager selects a cruise
  2. Cruise Manager clicks edit button on a cruise point row
  3. System displays Cruise Point Edit dialog
  4. Cruise Manager modifies: Port, Arrival Date/Time, Departure Date/Time, Description
  5. Cruise Manager clicks Save
  6. System validates input
  7. System updates cruise point record
  8. System refreshes cruise points table
  9. 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:

  1. Cruise Manager selects a cruise
  2. Cruise Manager clicks "Regenerate Points" button
  3. System displays warning: "This will replace all existing cruise points with new ones generated from the template. Any manual changes will be lost. Continue?"
  4. Cruise Manager confirms
  5. System deletes existing cruise points
  6. System generates new cruise points from template
  7. System refreshes cruise points table
  8. 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:

  1. Cruise Manager selects a cruise
  2. Cruise Manager clicks status change button/dropdown
  3. System displays status options: Available, Cancelled, Sold-out
  4. Cruise Manager selects new status
  5. System updates cruise status
  6. System updates status badge on cruise button
  7. 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:

  1. Cruise Manager selects a cruise
  2. Cruise Manager clicks Delete button
  3. System displays confirmation: "Delete this cruise? This will also delete all cruise points, cabin charges, and other charges."
  4. Cruise Manager confirms
  5. System deletes:
  6. Other charges for cruise
  7. Cabin charges for cruise
  8. Cruise points for cruise
  9. Cruise record
  10. System removes cruise button from selection bar
  11. System clears cruise details panel
  12. 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:

  1. Cruise Manager selects a cruise
  2. Cruise Manager clicks "Configure Pricing" button
  3. System navigates to Pricing page
  4. System displays list of all cabin types assigned to the cruise's ship
  5. For each cabin type, Cruise Manager enters:
  6. Amount (base price per cabin per trip)
  7. Currency (3-letter code)
  8. Exchange rate
  9. Cruise Manager clicks Save
  10. System validates input
  11. System creates/updates cabin charge records
  12. 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:

  1. Cruise Manager is on Pricing page for a cruise
  2. Cruise Manager locates cabin type row
  3. Cruise Manager toggles availability switch
  4. System immediately updates cabin charge availability status
  5. 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:

  1. Cruise Manager is on Pricing page
  2. Cruise Manager clicks "Add Charge" in Other Charges section
  3. System displays Other Charge dialog
  4. Cruise Manager selects charge type from dropdown
  5. Cruise Manager enters amount, currency, exchange rate
  6. Cruise Manager sets mandatory flag (checkbox)
  7. Cruise Manager clicks Save
  8. System creates other charge record
  9. System adds charge to Other Charges table
  10. 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:

  1. Cruise Manager is on Pricing page
  2. Cruise Manager clicks edit on other charge row
  3. System displays dialog with existing data
  4. Cruise Manager modifies amount, currency, exchange rate, or mandatory flag
  5. Cruise Manager clicks Save
  6. System updates other charge record
  7. 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:

  1. Cruise Manager is on Pricing page
  2. Cruise Manager clicks delete on other charge row
  3. System displays confirmation: "Remove this charge?"
  4. Cruise Manager confirms
  5. System deletes other charge record
  6. 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:

  1. Cruise Manager is on Pricing page
  2. System detects no cabin charges exist
  3. Cruise Manager clicks "Initialize Pricing" button
  4. System creates cabin charge record for each ship cabin with:
  5. Amount: 0.00 (to be filled in)
  6. Currency: default (e.g., USD)
  7. Exchange rate: 1.00
  8. Available: true
  9. System displays cabin charges table with all entries
  10. 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:

  1. Booking Agent accesses cruise search interface
  2. Booking Agent enters search criteria:
  3. Cruise area (dropdown)
  4. Date range (from/to date pickers)
  5. Duration range (min/max nights)
  6. Company (optional)
  7. Ship (optional)
  8. Booking Agent clicks Search
  9. System queries cruises matching criteria
  10. System returns results with:
  11. Itinerary name
  12. Ship name
  13. Start date
  14. Duration
  15. Lowest cabin price
  16. Status
  17. 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:

  1. Booking Agent selects a cruise from search results
  2. System displays cruise availability:
  3. Cruise details (ship, dates, route)
  4. Available cabin types with prices
  5. Sold-out cabin types (marked as unavailable)
  6. Mandatory other charges
  7. Optional other charges (packages)
  8. 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:

  1. Booking Agent selects a cruise area
  2. System retrieves all active itineraries for that area
  3. System returns itineraries with:
  4. Itinerary name/code
  5. Ship name
  6. Duration
  7. Number of upcoming cruises
  8. Lowest price available
  9. 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:

  1. Booking Agent specifies:
  2. Cruise ID
  3. Cabin type selection
  4. Number of adults
  5. Number of children
  6. Selected optional charges
  7. System calculates total price:
  8. Cabin base price (per cabin)
  9. Mandatory charges × number of passengers
  10. Optional charges × number of passengers (where applicable)
  11. System returns price breakdown:
  12. Cabin charge
  13. Per-person charges subtotal
  14. Optional charges subtotal
  15. Total price
  16. 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:

  1. Booking Agent selects a cruise
  2. System retrieves cruise points
  3. System displays route:
  4. Day-by-day itinerary
  5. Port names
  6. Arrival and departure times
  7. Duration at each port
  8. Special notes/descriptions
  9. 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:

  1. Cruise Manager navigates to itinerary page and selects a sailing
  2. Cruise Manager clicks "Prebook" button in cabin pricing section
  3. System displays Prebook dialog with cabin type selector
  4. Cruise Manager selects a cabin type
  5. System shows current pre-booking count and booked/reserved count for this cabin type + sailing
  6. Cruise Manager enters target count, cost per cabin, price per cabin, and commission percentage
  7. Cruise Manager optionally checks "Apply price to all" checkbox
  8. Cruise Manager clicks Save
  9. System calls managePrebookings which:
  10. Validates target count >= non-Available (Reserved + Booked) count
  11. Creates new Available pre-bookings if target > current total
  12. Deletes excess Available pre-bookings if target < current total
  13. Optionally updates price/cost/commission on all existing pre-bookings
  14. System refreshes cabin charges table showing updated Prebk and Avail columns
  15. 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:

  1. User views the cabin availability table for a sailing
  2. User clicks the "+" button next to a cabin type's prebook count
  3. System creates one new Available pre-booking for that cabin type + sailing
  4. System updates the Prebk and Avail columns
  5. Alternatively, user clicks "-" button
  6. System deletes one Available pre-booking (if any exist)
  7. 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:

  1. Booking Agent navigates to agent booking page
  2. Booking Agent selects a sailing from the sailing strip
  3. System loads cabin availability and existing bookings
  4. Booking Agent clicks "New Booking" button
  5. System displays New Booking dialog with:
  6. Adults count (default 2)
  7. Children count (default 0)
  8. Infants count (default 0)
  9. Cabin type selector (populated from available ship cabins)
  10. Lead passenger fields: first name, last name, nationality (with autocomplete)
  11. Booking Agent enters passenger counts and selects cabin type
  12. Booking Agent enters lead passenger details with nationality autocomplete
  13. Booking Agent clicks Create
  14. System generates booking number: PT-DDMM-XXXXXXXX (using createId)
  15. System creates booking record with status "Documents pending"
  16. System creates lead passenger record (isLeadPassenger=true)
  17. 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)
  18. System navigates to the new booking's detail view
  19. 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:

  1. View Passengers
  2. System displays passengers table with columns: Name, Nationality, DOB, Age, Passport, Visa, Actions
  3. Each passenger shows age badge (Adult/Child/Infant) computed from DOB vs sailing date
  4. Each passenger shows visa badges for destination ports

  5. Add Passenger

  6. Booking Agent clicks "Add Passenger" button
  7. System displays Passenger dialog
  8. Booking Agent enters: first name, last name, nationality (autocomplete), date of birth, passport number, passport expiry, remarks
  9. System computes and displays age category based on DOB
  10. Booking Agent clicks Save
  11. System creates passenger record
  12. System performs visa check and displays results in visa info area
  13. System refreshes passenger table

  14. Edit Passenger

  15. Booking Agent clicks edit button on passenger row
  16. System displays dialog with existing data
  17. Booking Agent modifies details
  18. Booking Agent clicks Save
  19. System updates passenger record

  20. Delete Passenger

  21. Booking Agent clicks delete button on passenger row
  22. System displays confirmation dialog
  23. Booking Agent confirms
  24. 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:

  1. View Cabins
  2. System displays booked cabins table with columns: Cabin Type, Pax, Own, Price, Actions
  3. Own column shows badge (Yes/No) indicating pre-booking ownership
  4. Footer shows total cabin cost

  5. Add Cabin

  6. Booking Agent clicks "Add Cabin" button
  7. System displays Add Cabin dialog with cabin type selector and number of passengers
  8. System shows pre-booking availability info for selected cabin type
  9. Booking Agent selects cabin type and enters pax count
  10. System auto-fills price from cabin charge template
  11. Booking Agent clicks Save
  12. System checks for available pre-bookings:
    • Available prebook exists → isOwn=true, preBookingId set
    • No available prebook → isOwn=false
  13. System creates booked cabin record
  14. System recalculates booking totals
  15. System refreshes display

  16. Delete Cabin

  17. Booking Agent clicks delete button on cabin row
  18. System displays confirmation dialog
  19. Booking Agent confirms
  20. System deletes booked cabin record
  21. 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:

  1. View Add-ons
  2. System displays add-ons table with columns: Charge Type, Passenger, Amount, Currency, Actions
  3. Footer shows total add-on amount

  4. Add Add-on

  5. Booking Agent clicks "Add Add-on" button
  6. 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)
  7. Booking Agent selects charge type
  8. System auto-fills amount and currency
  9. Booking Agent optionally selects a passenger
  10. Booking Agent clicks Save
  11. System creates add-on record
  12. System recalculates booking totals

  13. Delete Add-on

  14. Booking Agent clicks delete on add-on row
  15. System displays confirmation
  16. Booking Agent confirms
  17. System deletes add-on record
  18. 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:

  1. Booking Agent views booking details
  2. Booking Agent selects new status from status dropdown
  3. System validates the status transition
  4. System displays confirmation: "Change booking status from '[current]' to '[new]'?"
  5. Booking Agent confirms
  6. System updates booking status
  7. System refreshes status badge in booking header
  8. 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:

  1. Booking Agent views booking details
  2. Booking Agent clicks Delete button
  3. System displays confirmation: "Delete this booking? This will remove all passengers, cabins, and add-ons."
  4. Booking Agent confirms
  5. System cascades deletion:
  6. Deletes all booking add-ons
  7. Deletes all booked cabins
  8. Deletes all passengers
  9. Deletes booking record
  10. System clears booking detail view
  11. System refreshes bookings list
  12. 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:

  1. System receives cruise creation with itinerary ID and start date
  2. System retrieves template entries for itinerary
  3. For each template entry (sorted by stop sequence):
  4. Calculate arrival date = start date + day offset (arrival)
  5. Calculate departure date = start date + day offset (departure)
  6. Combine with arrival/departure times from template
  7. Create cruise point record with:
    • Cruise ID
    • Port ID (from template)
    • Arrival datetime
    • Departure datetime
    • Description (from template)
  8. 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:

  1. System receives delete request for entity
  2. System identifies entity type and ID
  3. System queries for dependent records:
  4. Company: Check for ships
  5. Ship: Check for itineraries, ship cabins
  6. Itinerary: Check for cruises
  7. Cruise: Check for cruise points, cabin charges, other charges
  8. Cabin Type: Check for ship cabin assignments
  9. Charge Type: Check for other charges
  10. Port: Check for template entries, cruise points
  11. If dependencies exist:
  12. Return error with dependency count
  13. OR return warning for cascade delete confirmation
  14. If no dependencies:
  15. 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