Nhom
|
Notes
|
|
Cruise Models - Complete Field Analysis
π Model Architecture Overview
The cruise app contains 13 interconnected models that form a complete cruise booking and management system, designed to handle everything from cruise lines and ships to bookings and reviews
|
|
π’ 1. CruiseLine Model - Cruise Company Management
Purpose: Represents major cruise companies like Royal Caribbean, Norwegian Cruise Line, etc.
Field Analysis:
class CruiseLine(models.Model):
π§ Core Identity Fields:
- name (CharField(100)):
- Use: Primary English company name (e.g., "Royal Caribbean International")
- Business Logic: Main brand identification for marketing and search
- name_vi (CharField(100, blank=True)):
- Use: Vietnamese translation of company name
- Business Logic: Localization for Vietnamese market
- code (CharField(10, unique=True)):
- Use: Short identifier code (e.g., "RCL", "NCL", "MSC")
- Business Logic: Database efficiency, API integration, internal referencing
- Constraint: Must be unique across all cruise lines
π Content Fields:
- description (TextField(blank=True)):
- Use: Detailed English description of cruise line's history, fleet, specialties
- Business Logic: Marketing content, SEO optimization, customer education
- description_vi (TextField(blank=True)):
- Use: Vietnamese version of company description
- Business Logic: Market localization for Vietnamese customers
π¨ Media Fields:
- logo (ImageField(upload_to='cruise_lines/')):
- Use: Company logo for branding consistency
- Business Logic: Visual brand recognition, website aesthetics
π Contact Fields:
- website (URLField(blank=True)):
- Use: Official cruise line website URL
- Business Logic: Direct customer referrals, partnership verification
β Quality Fields:
- star_rating (DecimalField(2,1), default=3.0):
- Use: Overall cruise line quality rating (1.0-5.0)
- Business Logic: Customer decision-making, filtering, ranking
- Range: 1.0 (budget) to 5.0 (ultra-luxury)
π Status Fields:
- is_active (BooleanField(default=True)):
- Use: Controls visibility and availability
- Business Logic: Temporary disable without deletion, seasonal operations
π Relationship Fields:
- provider (ForeignKey(Provider)):
- Use: Links to service provider for commission tracking
- Business Logic: Revenue sharing, booking attribution, business partnerships
π
Audit Fields:
- created_at (DateTimeField(auto_now_add=True)):
- updated_at (DateTimeField(auto_now=True)):
- Use: Data lifecycle tracking, audit trails
π’ Computed Properties:
- ship_count (Property):
- Calculation: self.ships.filter(is_active=True).count()
- Use: Dashboard statistics, marketing materials
π― Business Use Cases:
- Cruise Line Comparison: Star ratings and descriptions help customers choose
- Partnership Management: Provider relationship enables commission tracking
- Inventory Management: Active status controls which lines appear in searches
- Branding: Logo and consistent naming across platforms
|
|
π³οΈ 2. Ship Model - Individual Vessel Management
Purpose: Represents specific cruise ships with detailed specifications and capabilities.
Field Analysis:
π·οΈ Identity Fields:
- name (CharField(100)):
- Use: Ship name (e.g., "Symphony of the Seas", "Norwegian Breakaway")
- Business Logic: Primary identification, booking references
- name_vi (CharField(100, blank=True)):
- Use: Vietnamese ship name if different
- Business Logic: Local market adaptation
π Relationship Fields:
- cruise_line (ForeignKey(CruiseLine)):
- Use: Links ship to parent cruise company
- Business Logic: Fleet organization, brand consistency
π·οΈ Classification Fields:
- category (CharField(20, choices=SHIP_CATEGORIES)):
- Options: luxury, premium, contemporary, budget, expedition, river
- Use: Market segmentation, price positioning
- Business Logic: Customer expectations, filtering, marketing positioning
π
Temporal Fields:
- year_built (PositiveIntegerField):
- Use: Construction year for age assessment
- Business Logic: Ship condition expectations, modern amenities assessment
- year_refurbished (PositiveIntegerField(null=True, blank=True)):
- Use: Last major renovation year
- Business Logic: Facility freshness, competitive positioning
π₯ Capacity Fields:
- capacity (PositiveIntegerField):
- Use: Maximum passenger capacity
- Business Logic: Inventory planning, cabin allocation, revenue calculations
- crew_size (PositiveIntegerField):
- Use: Number of crew members
- Business Logic: Service level indicator, operational costs
β Physical Specifications:
- gross_tonnage (PositiveIntegerField):
- Use: Ship size measurement
- Business Logic: Port compatibility, engineering specifications
- length (DecimalField(6,2)):
- Use: Ship length in meters
- Business Logic: Port docking capabilities, canal transit
- beam (DecimalField(5,2)):
- Use: Ship width in meters
- Business Logic: Port compatibility, stability assessments
- decks (PositiveIntegerField):
- Use: Number of passenger decks
- Business Logic: Cabin distribution, facility organization
π Content Fields:
- description/description_vi (TextField):
- Use: Detailed ship information, amenities, unique features
- Business Logic: Marketing content, customer education
πΌοΈ Media Fields:
- main_image (ImageField(upload_to='ships/')):
- Use: Primary ship photograph
- Business Logic: Visual appeal, marketing materials
π Computed Properties:
- passenger_to_crew_ratio (Property):
- Calculation: capacity / crew_size
- Use: Service level indicator (lower ratio = better service)
- Business Logic: Quality assessment, customer expectations
π― Business Applications:
- Capacity Planning: Passenger capacity drives pricing and availability
- Service Quality: Crew ratio indicates service levels
- Port Compatibility: Physical dimensions determine itinerary possibilities
- Market Positioning: Category and year built influence pricing strategy
|
|
π 3. ShipAmenity Model - Facility Management
Purpose: Manages ship facilities and features with categorization for easy filtering.
Field Analysis:
π·οΈ Identity Fields:
- name/name_vi (CharField(100)):
- Use: Amenity name (e.g., "Main Dining Room", "Rock Climbing Wall")
- Business Logic: Feature identification, marketing descriptions
π·οΈ Classification Fields:
- category (CharField(20, choices=AMENITY_CATEGORIES)):
- Categories: dining, entertainment, activities, spa, sports, kids, shopping, accessibility
- Use: Organized feature presentation, filtering capabilities
- Business Logic: Customer interest targeting, feature comparison
π Content Fields:
- description/description_vi (TextField):
- Use: Detailed amenity information, operating hours, special features
- Business Logic: Customer education, expectation setting
πΌοΈ Visual Fields:
- icon (ImageField(upload_to='amenities/')):
- Use: Visual representation for quick recognition
- Business Logic: UI enhancement, quick feature identification
π Relationship Fields:
- ships (ManyToManyField(Ship)):
- Use: Which ships have this amenity
- Business Logic: Feature-based ship filtering, comparison tools
π― Business Applications:
- Feature Comparison: Customers can compare ships by amenities
- Targeted Marketing: Category-based promotion (families → kids amenities)
- Accessibility Compliance: Dedicated accessibility category
- Service Differentiation: Premium ships showcase luxury amenities
|
|
ποΈ 4. CabinCategory Model - Accommodation Types
Purpose: Defines different cabin types available on ships with pricing and specifications.
Field Analysis:
π Ship Association:
- ship (ForeignKey(Ship)):
- Use: Links cabin types to specific ships
- Business Logic: Ship-specific accommodation options
π·οΈ Cabin Classification:
- cabin_type (CharField(15, choices=CABIN_TYPES)):
- Types: interior, ocean_view, balcony, suite
- Use: Price tier identification, customer preference matching
- Business Logic: Revenue optimization, market segmentation
π Physical Specifications:
- size_sqft (PositiveIntegerField):
- Use: Cabin size in square feet
- Business Logic: Value assessment, space requirements
- max_occupancy (PositiveIntegerField(default=2)):
- Use: Maximum guests per cabin
- Business Logic: Family accommodation, pricing calculations
π’ Location Information:
- deck_location (CharField(100)):
- Use: Which decks contain this cabin category
- Business Logic: Customer preference (high/low deck), elevator access
π Amenity Information:
- amenities/amenities_vi (TextField):
- Use: List of in-cabin features
- Business Logic: Value proposition, customer expectations
πΌοΈ Visual Representation:
- image (ImageField(upload_to='cabins/')):
- Use: Cabin interior photos
- Business Logic: Customer decision-making, expectation setting
π― Pricing Strategy Applications:
- Revenue Optimization: Different cabin types enable price discrimination
- Inventory Management: Track availability by cabin category
- Customer Matching: Match preferences to appropriate cabin types
Upselling: Higher categories generate more revenue
|
|
πΊοΈ 5. CruiseItinerary Model - Route Planning
Purpose: Defines cruise routes, destinations, and journey specifications.
Field Analysis:
π·οΈ Journey Identity:
- name/name_vi (CharField(200)):
- Use: Itinerary name (e.g., "Eastern Caribbean Adventure")
- Business Logic: Marketing appeal, search optimization
β±οΈ Duration Specification:
- duration_days (PositiveIntegerField):
- Use: Total cruise length in days
- Business Logic: Vacation planning, pricing basis, calendar planning
π Journey Type:
- itinerary_type (CharField(15, choices=ITINERARY_TYPES)):
- Types: round_trip, one_way, open_jaw
- Use: Journey logistics, customer preference matching
- Business Logic:
- round_trip: Most popular, return to same port
- one_way: Repositioning cruises, different start/end
- open_jaw: Complex routing, specialized markets
π’ Port Management:
- departure_port (ForeignKey(Location)):
- Use: Starting port for cruise
- Business Logic: Customer convenience, logistics planning
- arrival_port (ForeignKey(Location)):
- Use: Ending port (may equal departure for round trips)
- Business Logic: Travel planning, transportation coordination
π Marketing Content:
- highlights/highlights_vi (TextField):
- Use: Key selling points of itinerary
- Business Logic: Marketing copy, customer excitement building
π Computed Properties:
- port_count (Property):
- Calculation: Count of ports in itinerary
- Use: Value assessment (more ports = more destinations)
π― Business Applications:
- Route Planning: Optimize for customer appeal and operational efficiency
- Seasonal Adjustments: Different itineraries for different seasons
- Market Segmentation: Various durations appeal to different customer segments
- Operational Efficiency: Balance fuel costs with customer satisfaction
|
|
β 6. ItineraryPort Model - Daily Schedule Management
Purpose: Manages day-by-day port visits within cruise itineraries.
Field Analysis:
π Relationship Management:
- itinerary (ForeignKey(CruiseItinerary)):
- Use: Links port visit to specific itinerary
- Business Logic: Journey organization, sequential planning
- port (ForeignKey(Location)):
- Use: Specific port being visited
- Business Logic: Destination information, shore excursion planning
π
Schedule Fields:
- day_number (PositiveIntegerField):
- Use: Day of cruise (1, 2, 3, etc.)
- Business Logic: Sequential organization, customer planning
- Constraint: Unique per itinerary (can't have duplicate days)
- arrival_time (TimeField(null=True)):
- Use: When ship arrives at port
- Business Logic: Shore excursion planning, customer scheduling
- departure_time (TimeField(null=True)):
- Use: When ship leaves port
- Business Logic: Excursion duration limits, customer planning
π Special Day Types:
- is_sea_day (BooleanField(default=False)):
- Use: Indicates days at sea with no port visits
- Business Logic:
- Relaxation time
- Onboard activity focus
- Ship amenity utilization
- Transit between distant ports
π Additional Information:
- notes/notes_vi (TextField):
- Use: Special information about port visit
- Business Logic:
- Tender ports (ship anchors offshore)
- Weather considerations
- Special events at port
- Visa requirements
π― Operational Applications:
- Customer Planning: Daily schedules help passengers plan activities
- Shore Excursion Coordination: Timing determines available tours
- Fuel Management: Sea days vs. port days affect operational costs
- Customer Satisfaction: Balance of port time vs. sea time
|
|
π’ 7. Cruise Model - Specific Departure Management
Purpose: Represents specific cruise departures with pricing, deals, and availability.
Field Analysis:
π Core Relationships:
- ship (ForeignKey(Ship)):
- Use: Which ship operates this cruise
- Business Logic: Capacity, amenities, service level determination
- itinerary (ForeignKey(CruiseItinerary)):
- Use: Route and destinations for this cruise
- Business Logic: Experience definition, marketing appeal
π
Temporal Management:
- departure_date (DateField):
- Use: When cruise begins
- Business Logic: Inventory management, customer planning, seasonality
- return_date (DateField):
- Use: When cruise ends
- Business Logic: Duration calculation, planning coordination
π Status Management:
- status (CharField(15, choices=STATUS_CHOICES)):
- Options: active, sold_out, cancelled, completed
- Use: Availability control, booking eligibility
- Business Logic:
- active: Available for booking
- sold_out: No cabins available
- cancelled: Operational cancellation
- completed: Historical record
π° Deal Management System:
- is_deal (BooleanField(default=False)):
- Use: Flags special pricing offers
- Business Logic: Marketing promotion, revenue optimization
- deal_type (CharField(15, choices=DEAL_TYPES)):
- Types: early_bird, last_minute, group, senior, military, repeat, two_for_one
- Use: Targeted customer segments
- Business Logic:
- early_bird: Book far in advance
- last_minute: Fill inventory quickly
- group: Volume discounts
- senior/military: Demographic targeting
- repeat: Customer loyalty
- two_for_one: Aggressive promotion
- deal_discount_percent (DecimalField(5,2)):
- Use: Percentage discount amount
- Business Logic: Pricing calculation, margin management
- deal_expires (DateTimeField(null=True)):
- Use: Deal expiration deadline
- Business Logic: Urgency creation, inventory management
π Included Services:
- airfare_included (BooleanField):
- shore_excursions_included (BooleanField):
- wifi_included (BooleanField):
- drinks_package_included (BooleanField):
- gratuities_included (BooleanField):
- Use: Package value propositions
- Business Logic: Competitive differentiation, all-inclusive pricing
π Computed Properties:
- days_until_departure (Property):
- Calculation: Days from today to departure
- Use: Urgency indicators, last-minute deal eligibility
- is_last_minute (Property):
- Logic: True if departure ≤ 90 days
- Use: Special pricing triggers, marketing campaigns
π― Revenue Management Applications:
- Dynamic Pricing: Deals and discounts optimize revenue
- Inventory Control: Status management prevents overbooking
- Market Segmentation: Different deal types target different customers
- Package Optimization: Included services create value perception
|
|
π° 8. CruisePrice Model - Revenue Management
Purpose: Manages pricing for different cabin categories with complex pricing structures.
Field Analysis:
π Pricing Relationships:
- cruise (ForeignKey(Cruise)):
- cabin_category (ForeignKey(CabinCategory)):
- Use: Links specific pricing to cruise and cabin type
- Business Logic: Dynamic pricing by cabin quality and cruise demand
- Constraint: Unique combination prevents duplicate pricing
π΅ Base Pricing Structure:
- price_per_person (DecimalField(10,2)):
- Use: Standard per-person rate for double occupancy
- Business Logic: Primary pricing metric, revenue calculation
- single_supplement (DecimalField(10,2)):
- Use: Additional fee for solo travelers
- Business Logic: Compensates for lost double occupancy revenue
π¨π©π§π¦ Family Pricing:
- third_guest_price (DecimalField(10,2, null=True)):
- fourth_guest_price (DecimalField(10,2, null=True)):
- Use: Reduced rates for additional guests in same cabin
- Business Logic: Family market targeting, cabin space optimization
π’ Inventory Management:
- total_cabins (PositiveIntegerField(default=0)):
- Use: Total cabins available in this category
- Business Logic: Inventory planning, ship capacity allocation
- available_cabins (PositiveIntegerField(default=0)):
- Use: Currently available cabins for booking
- Business Logic: Real-time availability, revenue optimization
πΌ Fee Structure:
- port_charges (DecimalField(8,2)):
- Use: Mandatory port fees (not cruise line revenue)
- Business Logic: Transparent pricing, regulatory compliance
- government_fees (DecimalField(8,2)):
- Use: Government taxes and fees
- Business Logic: Regulatory compliance, transparent pricing
π Computed Properties:
- total_price_per_person (Property):
- Calculation: Base price + port charges + government fees
- Use: Complete cost transparency
- discounted_price (Property):
- Calculation: Applies cruise deal discounts
- Use: Promotional pricing display
- savings_amount (Property):
- Calculation: Original price - discounted price
- Use: Deal value communication
- is_available (Property):
- Logic: available_cabins > 0
- Use: Booking eligibility, search filtering
π― Revenue Optimization Applications:
- Dynamic Pricing: Adjust prices based on demand and availability
- Yield Management: Optimize revenue per cabin
- Competitive Positioning: Price comparison with other cruise lines
- Family Marketing: Special family rates attract multi-guest bookings
|
|
π· 9. CruiseImage Model - Visual Content Management
Purpose: Manages images for cruises and ships with categorization and ordering.
Field Analysis:
π Content Relationships:
- cruise (ForeignKey(Cruise, null=True, blank=True)):
- ship (ForeignKey(Ship, null=True, blank=True)):
- Use: Flexible image association with either cruises or ships
- Business Logic: Shared image library, content reuse
πΌοΈ Image Management:
- image (ImageField(upload_to='cruise_images/')):
- Use: Actual image file storage
- Business Logic: Visual marketing, customer attraction
π·οΈ Content Categorization:
- image_type (CharField(20, choices=IMAGE_TYPES)):
- Types: ship_exterior, ship_interior, cabin, dining, entertainment, destination, amenity
- Use: Organized image galleries, targeted display
- Business Logic:
- ship_exterior: Ship beauty, size impression
- cabin: Accommodation quality
- dining: Food quality, restaurant ambiance
- entertainment: Activity options
- destination: Port appeal
π Content Description:
- caption/caption_vi (CharField(200)):
- Use: Image descriptions and context
- Business Logic: SEO optimization, accessibility, context
β Presentation Control:
- is_featured (BooleanField(default=False)):
- Use: Highlights best images for primary display
- Business Logic: Marketing impact, first impression management
- order (PositiveIntegerField(default=0)):
- Use: Controls image sequence in galleries
- Business Logic: Narrative flow, impact optimization
π― Marketing Applications:
- Visual Storytelling: Organized image types tell complete cruise story
- First Impressions: Featured images create immediate appeal
- Expectation Setting: Accurate representation builds trust
- SEO Optimization: Proper captions improve search visibility
|
|
β 10. CruiseReview Model - Customer Feedback System
Purpose: Comprehensive customer review system with multiple rating dimensions.
Field Analysis:
π Review Relationships:
- cruise (ForeignKey(Cruise)):
- user (ForeignKey(User)):
- Use: Links reviews to specific cruises and users
- Business Logic: Authentic feedback, prevents duplicate reviews
- Constraint: One review per user per cruise
β Multi-Dimensional Rating System:
- overall_rating (IntegerField(choices=RATING_CHOICES)):
- Use: General satisfaction score (1-5)
- Business Logic: Primary ranking metric, quick assessment
- ship_rating (IntegerField(choices=RATING_CHOICES)):
- Use: Ship condition, cleanliness, layout satisfaction
- Business Logic: Ship maintenance feedback, facility quality
- service_rating (IntegerField(choices=RATING_CHOICES)):
- Use: Staff service quality
- Business Logic: Training needs identification, service excellence
- dining_rating (IntegerField(choices=RATING_CHOICES)):
- Use: Food quality and dining experience
- Business Logic: Culinary program feedback, chef performance
- entertainment_rating (IntegerField(choices=RATING_CHOICES)):
- Use: Shows, activities, entertainment quality
- Business Logic: Entertainment program evaluation, guest satisfaction
- value_rating (IntegerField(choices=RATING_CHOICES)):
- Use: Price-to-value perception
- Business Logic: Pricing strategy validation, competitive positioning
π Detailed Feedback:
- title (CharField(200)):
- Use: Review headline for quick scanning
- Business Logic: Attention grabbing, summary sentiment
- review_text (TextField):
- Use: Detailed review content
- Business Logic: Comprehensive feedback, specific improvement areas
- pros (TextField(blank=True)):
- cons (TextField(blank=True)):
- Use: Structured positive and negative feedback
- Business Logic: Balanced perspective, specific improvement identification
π§³ Travel Context:
- travel_date (DateField):
- Use: When customer took the cruise
- Business Logic: Review recency, seasonal feedback patterns
- cabin_category (ForeignKey(CabinCategory)):
- Use: Which cabin type reviewer experienced
- Business Logic: Cabin-specific feedback, pricing validation
- traveler_type (CharField(50)):
- Use: Travel context (Couple, Family, Solo, Group)
- Business Logic: Market segment feedback, targeted improvements
π Quality Assurance:
- is_verified (BooleanField(default=False)):
- Use: Confirms reviewer actually took the cruise
- Business Logic: Review authenticity, trust building
- helpful_votes (PositiveIntegerField(default=0)):
- Use: Community validation of review usefulness
- Business Logic: Review ranking, quality indication
π― Business Intelligence Applications:
- Service Improvement: Multi-dimensional ratings identify specific improvement areas
- Quality Control: Verified reviews ensure authentic feedback
- Market Research: Traveler type analysis reveals segment preferences
Competitive Analysis: Value ratings indicate pricing competitiveness
|
|
β€οΈ 11. CruiseWishlist Model - Customer Interest Tracking
Purpose: Tracks customer interest in specific cruises for marketing and inventory management.
Field Analysis:
π Interest Relationships:
- user (ForeignKey(User)):
- cruise (ForeignKey(Cruise)):
- Use: Links customer interest to specific cruises
- Business Logic: Personalized marketing, demand forecasting
- Constraint: Prevents duplicate wishlist entries
π
Timing Information:
- created_at (DateTimeField(auto_now_add=True)):
- Use: When customer added cruise to wishlist
- Business Logic: Interest timing, priority indication
π― Marketing Applications:
- Targeted Promotions: Market deals to interested customers first
- Demand Forecasting: High wishlist counts indicate popular cruises
- Inventory Alerts: Notify customers when wishlisted cruises have deals
- Customer Retention: Personalized recommendations based on interests
|
|
π 12. CruiseBooking Model - Transaction Management
Purpose: Complete booking management system with payment tracking and commission calculation.
Field Analysis:
π Booking Relationships:
- user (ForeignKey(User)):
- cruise (ForeignKey(Cruise)):
- cabin_category (ForeignKey(CabinCategory)):
- Use: Complete booking specification
- Business Logic: Customer assignment, inventory allocation, service delivery
π·οΈ Booking Identity:
- booking_number (CharField(20, unique=True)):
- Use: Unique booking identifier (auto-generated: "CR" + 8 random chars)
- Business Logic: Customer service reference, payment tracking, confirmation
π₯ Guest Management:
- primary_guest_name (CharField(200)):
- primary_guest_email (EmailField):
- primary_guest_phone (CharField(20)):
- Use: Primary contact for booking communications
- Business Logic: Customer service, emergency contact, marketing
- number_of_guests (PositiveIntegerField(default=2)):
- Use: Total guests in booking
- Business Logic: Cabin assignment, pricing calculation, safety compliance
- special_requests (TextField(blank=True)):
- Use: Dietary restrictions, accessibility needs, celebrations
- Business Logic: Service customization, guest satisfaction
π° Financial Management:
- base_price (DecimalField(10,2)):
- Use: Cruise fare before taxes and fees
- Business Logic: Revenue calculation, pricing transparency
- taxes_and_fees (DecimalField(10,2)):
- Use: Government and port charges
- Business Logic: Cost transparency, regulatory compliance
- total_price (DecimalField(10,2)):
- Use: Complete booking cost
- Business Logic: Payment processing, customer billing
- commission_rate (DecimalField(5,2, default=10)):
- commission_amount (DecimalField(10,2)):
- Use: Partner commission tracking
- Business Logic: Revenue sharing, partner compensation
π Status Tracking:
- status (CharField(15, choices=STATUS_CHOICES)):
- Options: pending, confirmed, cancelled, completed
- Use: Booking lifecycle management
- Business Logic:
- pending: Awaiting payment or confirmation
- confirmed: Active booking, cabin assigned
- cancelled: Booking terminated, cabin released
- completed: Cruise finished, final status
π³ Payment Management:
- deposit_amount (DecimalField(10,2)):
- deposit_paid (BooleanField(default=False)):
- Use: Initial payment tracking
- Business Logic: Booking security, cash flow management
- final_payment_due (DateField(null=True)):
- final_payment_made (BooleanField(default=False)):
- Use: Balance payment tracking
- Business Logic: Payment deadlines, booking confirmation
π
Date Tracking:
- booking_date (DateTimeField(auto_now_add=True)):
- confirmation_date (DateTimeField(null=True)):
- cancellation_date (DateTimeField(null=True)):
- Use: Booking lifecycle timestamps
- Business Logic: SLA tracking, customer service, reporting
|
|
π― Business Operations Applications:
- Revenue Management: Track booking values and commission payments
- Customer Service: Complete booking history and contact information
- Inventory Control: Cabin allocation and availability management
- Payment Processing: Deposit and final payment workflow management
- Reporting: Financial reporting and partner commission calculations
|
|
π Model Relationships Summary
Primary Hierarchies:
- CruiseLine → Ship → CabinCategory → CruisePrice
- CruiseItinerary → ItineraryPort → Cruise → CruiseBooking
- Ship → ShipAmenity (Many-to-Many)
- Cruise → CruiseReview, CruiseWishlist, CruiseImage
Key Business Flows:
- Content Creation: CruiseLine → Ship → Amenities → CabinCategories
- Route Planning: CruiseItinerary → ItineraryPort scheduling
- Inventory Management: Cruise → CruisePrice → availability tracking
- Customer Journey: Search → Wishlist → Booking → Review
- Revenue Tracking: Booking → commission calculation → provider payment
This comprehensive model structure enables a full-featured cruise booking platform with sophisticated inventory management, dynamic pricing, customer relationship management, and business intelligence capabilities
|