* Vietnamese translation incomplete

Transport models Analyzing

Transport models Analyzing (English fallback)

Aug. 17, 2025

Posted by admin

Nhom

Notes

 

🌍 Transport Models - Detailed Field Analysis & Business Use

 

 

1. Country Model - Geographic Foundation

Purpose: Foundation model for geographical organization and localization

class Country(models.Model):

    name_en = models.CharField(max_length=100, verbose_name=_("English Name"))

    name_vi = models.CharField(max_length=100, blank=True, verbose_name=_("Vietnamese Name"))

    country_code = models.CharField(max_length=2, unique=True, help_text=_("ISO 3166-1 alpha-2 code"))

Field Details:

  • name_en: English country name (e.g., "United States", "Vietnam")
    • Use: Primary display name for international users
    • Business Logic: Used in dropdowns, search filters, route displays
  • name_vi: Vietnamese country name (e.g., "Hoa Kỳ", "Việt Nam")
    • Use: Localized display for Vietnamese users
    • Business Logic: Template switching based on user language preference
  • country_code: ISO 3166-1 alpha-2 standard (e.g., "US", "VN")
    • Use: API integrations, data standardization, flag displays
    • Business Logic: Links with international flight APIs, currency systems

Business Applications:

  • Visa requirement checks
  • Currency conversion systems
  • International flight routing

Localized content delivery

 

2. City Model - Urban Transportation Hubs

Purpose: Transportation centers within countries with timezone support

class City(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='cities')

    timezone = models.CharField(max_length=50, blank=True, help_text="e.g. Asia/Ho_Chi_Minh")

    unique_together = ['name_en', 'country']

Field Details:

  • name_en/name_vi: Bilingual city names
    • Use: Route displays, booking forms, search results
    • Example: "Ho Chi Minh City" / "Thành phố Hồ Chí Minh"
  • country: Foreign key relationship
    • Use: Hierarchical organization, filtering by country
    • Business Logic: Enables country-specific transport rules
  • timezone: IANA timezone identifier
    • Use: Critical for accurate departure/arrival time displays
    • Business Logic: Converts UTC times to local time zones
    • Example: "Asia/Ho_Chi_Minh", "America/New_York"

Business Applications:

  • Accurate flight schedule displays
  • Local time conversions for bookings
  • Route planning within countries

Weather integration by timezone

 

3. Airport Model - Aviation Infrastructure

Purpose: Complete airport data with international aviation standards

class Airport(models.Model):

    name_en = models.CharField(max_length=200, verbose_name="English Name")

    name_vi = models.CharField(max_length=200, blank=True, verbose_name="Vietnamese Name")

    iata_code = models.CharField(max_length=3, unique=True, help_text="3-letter IATA code (e.g. SGN)")

    icao_code = models.CharField(max_length=4, unique=True, help_text="4-letter ICAO code (e.g. VVTS)")

    city = models.ForeignKey(City, on_delete=models.CASCADE, related_name='airports')

    latitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    longitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • iata_code: 3-letter passenger airline code (SGN, LAX, JFK)
    • Use: Booking systems, ticket displays, search functionality
    • Business Logic: Primary identifier for flight booking APIs
  • icao_code: 4-letter air traffic control code (VVTS, KLAX, KJFK)
    • Use: Air traffic control, pilot systems, technical integrations
    • Business Logic: Required for flight tracking and aviation APIs
  • latitude/longitude: GPS coordinates
    • Use: Maps integration, distance calculations, weather data
    • Business Logic: Calculate flight distances, fuel estimates, route optimization
  • is_active: Operational status
    • Use: Hide closed/inactive airports from search
    • Business Logic: Prevents bookings to non-operational facilities

Business Applications:

  • Flight booking and search systems
  • Route optimization algorithms
  • Airport maps and navigation
  • Weather integration for delays
  • Distance-based pricing calculations

 

 

4. Airline Model - Carrier Information

Purpose: Airline company data with branding and identification

class Airline(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    iata_code = models.CharField(max_length=2, unique=True, help_text="2-letter IATA code (e.g. VN)")

    icao_code = models.CharField(max_length=3, unique=True, help_text="3-letter ICAO code (e.g. HVN)")

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='airlines')

    logo = models.ImageField(upload_to='airlines/', blank=True, null=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • iata_code: 2-letter airline designator (VN, AA, BA)
    • Use: Flight numbers, booking references, ticket displays
    • Business Logic: Combined with flight number for unique identification
  • icao_code: 3-letter air traffic control identifier (HVN, AAL, BAW)
    • Use: Flight tracking, air traffic control, regulatory systems
  • logo: Airline branding image
    • Use: Search results, booking confirmations, mobile apps
    • Business Logic: Brand recognition, professional presentation
  • country: Airline's country of registration
    • Use: Regulatory compliance, safety ratings, regional filtering

Business Applications:

  • Flight search result displays
  • Airline preference filtering
  • Safety rating systems
  • Partnership program integration
  • Brand-based marketing

 

 

5. Aircraft Model - Fleet Information

Purpose: Aircraft specifications for capacity and service planning

class Aircraft(models.Model):

    model = models.CharField(max_length=50, help_text="e.g. Boeing 777-300ER")

    manufacturer = models.CharField(max_length=50, help_text="e.g. Boeing, Airbus")

    capacity = models.PositiveIntegerField(default=0, help_text="Total passenger capacity")

Field Details:

  • model: Specific aircraft variant
    • Use: Passenger information, seat maps, service expectations
    • Examples: "Boeing 777-300ER", "Airbus A350-900"
  • manufacturer: Aircraft builder
    • Use: Fleet analysis, maintenance scheduling, passenger preferences
    • Business Logic: Some passengers prefer specific manufacturers
  • capacity: Total passenger seats
    • Use: Booking limits, revenue calculations, seat availability
    • Business Logic: Prevents overbooking, calculates load factors

Business Applications:

  • Seat availability management
  • Aircraft-specific service information
  • Passenger comfort ratings
  • Route planning based on capacity
  • Maintenance and operational planning

 


 

 

6. Flight Model - Core Aviation Operations

Purpose: Individual flight schedules with comprehensive operational data

class Flight(models.Model):

    flight_number = models.CharField(max_length=20, help_text="e.g. VN151")

    airline = models.ForeignKey(Airline, on_delete=models.CASCADE, related_name='flights', null=True)

    aircraft = models.ForeignKey(Aircraft, on_delete=models.SET_NULL, null=True, blank=True)

    

    origin_airport = models.ForeignKey(Airport, on_delete=models.CASCADE, related_name='departing_flights', null=True)

    destination_airport = models.ForeignKey(Airport, on_delete=models.CASCADE, related_name='arriving_flights', null=True)

    

    departure_time = models.DateTimeField()

    arrival_time = models.DateTimeField()

    duration_minutes = models.PositiveIntegerField(default=0, help_text="Flight duration in minutes")

    

    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='SCHEDULED')

    gate = models.CharField(max_length=10, blank=True, help_text="Departure gate")

    terminal = models.CharField(max_length=10, blank=True, help_text="Departure terminal")

    

    # Pricing

    economy_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    business_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    first_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

Field Details:

Flight Identification:

  • flight_number: Airline-specific flight identifier (e.g., "VN151", "AA1234")
    • Use: Passenger communications, tracking, check-in systems
    • Business Logic: Combined with airline code for global uniqueness

Aircraft Assignment:

  • aircraft: Aircraft type for this flight
    • Use: Seat maps, service level expectations, passenger information
    • Business Logic: SET_NULL allows aircraft changes without deleting flight data

Route Information:

  • origin_airport/destination_airport: Flight endpoints
    • Use: Search functionality, route displays, connection planning
    • Business Logic: Related names enable efficient queries for airport schedules

Timing:

  • departure_time/arrival_time: Scheduled times in UTC
    • Use: Search filtering, booking systems, passenger notifications
    • Business Logic: Stored in UTC, converted to local time using city timezones
  • duration_minutes: Flight time for planning and passenger information
    • Use: Connection time calculations, passenger expectations
    • Business Logic: Used for minimum connection time validations

Operational Status:

  • status: Real-time flight status (SCHEDULED, DELAYED, CANCELLED, etc.)
    • Use: Passenger notifications, rebooking systems, operations management
    • Business Logic: Triggers automated passenger communications
  • gate/terminal: Airport facilities for passenger navigation
    • Use: Check-in systems, mobile apps, airport displays

Pricing Structure:

Business Applications:

  • Flight booking and reservation systems
  • Real-time status updates and passenger notifications
  • Route planning and connection optimization
  • Revenue management and pricing strategies
  • Operational planning and crew scheduling

 

 

7. TransportStation Model - Ground Transportation Hubs

Purpose: Bus, train, ferry, and metro stations with multilingual support

class TransportStation(models.Model):

    STATION_TYPES = [

        ('BUS', 'Bus Station'),

        ('TRAIN', 'Train Station'),

        ('FERRY', 'Ferry Terminal'),

        ('METRO', 'Metro Station'),

    ]

    

    name_en = models.CharField(max_length=200, verbose_name="English Name")

    name_vi = models.CharField(max_length=200, blank=True, verbose_name="Vietnamese Name")

    type = models.CharField(max_length=10, choices=STATION_TYPES)

    city = models.ForeignKey(City, on_delete=models.CASCADE, related_name='transport_stations')

    address_en = models.TextField(blank=True, verbose_name="English Address")

    address_vi = models.TextField(blank=True, verbose_name="Vietnamese Address")

    latitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    longitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • type: Transportation mode classification
    • Use: Filtering by transport type, icon displays, routing logic
    • Business Logic: Different transport types have different booking rules
  • address_en/address_vi: Detailed location information
    • Use: Passenger directions, GPS navigation, pickup instructions
    • Business Logic: Essential for ground transportation coordination
  • latitude/longitude: GPS coordinates for mapping
    • Use: Distance calculations, route optimization, mobile maps
    • Business Logic: Calculate walking distances, transfer times

Business Applications:

  • Multi-modal journey planning
  • Last-mile transportation connections
  • Station-to-station routing
  • Transfer time calculations
  • Mobile navigation assistance

 

 

8. TransportOperator Model - Service Providers

Purpose: Companies operating ground transportation services

class TransportOperator(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    type = models.CharField(max_length=10, choices=TransportStation.STATION_TYPES)

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='transport_operators')

    website = models.URLField(blank=True)

    phone = models.CharField(max_length=20, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • type: Primary transportation mode
    • Use: Service categorization, partnership management, API integrations
    • Business Logic: Different operators have different booking APIs and rules
  • website/phone: Contact information
    • Use: Customer service, direct booking links, support escalation
    • Business Logic: Enables deep-linking to operator booking systems

Business Applications:

  • Partnership management
  • API integration coordination
  • Customer service routing
  • Service quality monitoring
  • Competitive analysis

 

 

9. Transit Model - Ground Transportation Schedules

Purpose: Individual ground transportation schedules and services

class Transit(models.Model):

    TRANSIT_TYPES = (

        ('BUS', 'Bus'),

        ('TRAIN', 'Train'),

        ('FERRY', 'Ferry'),

        ('METRO', 'Metro'),

        ('CAR', 'Car Rental'),

        ('TAXI', 'Taxi'),

        ('OTHER', 'Other'),

    )

    

    route_name = models.CharField(max_length=100, blank=True, help_text="e.g. Route 109, Express Line")

    type = models.CharField(max_length=10, choices=TRANSIT_TYPES)

    operator = models.ForeignKey(TransportOperator, on_delete=models.CASCADE, related_name='transits', null=True)

    

    origin_station = models.ForeignKey(TransportStation, on_delete=models.CASCADE, related_name='departing_transits', null=True)

    destination_station = models.ForeignKey(TransportStation, on_delete=models.CASCADE, related_name='arriving_transits', null=True)

    

    departure_time = models.DateTimeField()

    arrival_time = models.DateTimeField()

    duration_minutes = models.PositiveIntegerField(default=0, help_text="Transit duration in minutes")

    

    # Pricing

    standard_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    premium_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    

    # Additional info

    vehicle_number = models.CharField(max_length=20, blank=True)

    platform = models.CharField(max_length=10, blank=True)

    notes_en = models.TextField(blank=True, verbose_name="English Notes")

    notes_vi = models.TextField(blank=True, verbose_name="Vietnamese Notes")

Field Details:

Service Identification:

  • route_name: Service line identifier (e.g., "Route 109", "Express Line")
    • Use: Passenger identification, schedule displays, booking systems
    • Business Logic: Helps passengers identify correct service
  • type: Extended transport categories including car rental and taxi
    • Use: Service filtering, pricing models, booking workflows
    • Business Logic: Different types have different booking and payment rules

Routing:

  • origin_station/destination_station: Service endpoints
    • Use: Route planning, connection optimization, passenger navigation
    • Business Logic: Enables point-to-point and multi-leg journey planning

Timing:

Pricing:

  • standard_price/premium_price: Service class pricing
    • Use: Revenue management, service differentiation, booking options
    • Business Logic: Enables upselling and service tier management

 

Operational Details:

  • vehicle_number: Specific vehicle identifier
    • Use: Real-time tracking, passenger assistance, operational management
  • platform: Departure platform/bay
    • Use: Passenger navigation, station management, boarding coordination
  • notes_en/notes_vi: Service-specific information
    • Use: Special instructions, accessibility info, passenger alerts
    • Business Logic: Critical for passenger experience and operational requirements

Business Applications:

  • Multi-modal journey planning
  • Real-time passenger information
  • Dynamic pricing and revenue management
  • Operational coordination and tracking
  • Customer service and support

 

 

🔄 Model Relationships & Business Flow

Hierarchical Structure:

Country

── Cities

│   ── Airports → Airlines → Flights

│   └── TransportStations → TransportOperators → Transits

└── Airlines (country-based)

 

 

Business Integration Points:

  1. Airport-Station Connections: Link air travel with ground transportation
  2. Timezone Coordination: Ensure accurate scheduling across different time zones
  3. Multilingual Support: Seamless experience for international and local users
  4. Pricing Integration: Unified pricing across all transportation modes
  5. Operational Coordination: Real-time status updates and passenger communications

This comprehensive transport system enables complete journey planning from flights to ground transportation, with full multilingual support and operational management capabilities.

 

Vietnamese translation is not available for this article. Showing English content:

Nhom

Notes

 

🌍 Transport Models - Detailed Field Analysis & Business Use

 

 

1. Country Model - Geographic Foundation

Purpose: Foundation model for geographical organization and localization

class Country(models.Model):

    name_en = models.CharField(max_length=100, verbose_name=_("English Name"))

    name_vi = models.CharField(max_length=100, blank=True, verbose_name=_("Vietnamese Name"))

    country_code = models.CharField(max_length=2, unique=True, help_text=_("ISO 3166-1 alpha-2 code"))

Field Details:

  • name_en: English country name (e.g., "United States", "Vietnam")
    • Use: Primary display name for international users
    • Business Logic: Used in dropdowns, search filters, route displays
  • name_vi: Vietnamese country name (e.g., "Hoa Kỳ", "Việt Nam")
    • Use: Localized display for Vietnamese users
    • Business Logic: Template switching based on user language preference
  • country_code: ISO 3166-1 alpha-2 standard (e.g., "US", "VN")
    • Use: API integrations, data standardization, flag displays
    • Business Logic: Links with international flight APIs, currency systems

Business Applications:

  • Visa requirement checks
  • Currency conversion systems
  • International flight routing

Localized content delivery

 

2. City Model - Urban Transportation Hubs

Purpose: Transportation centers within countries with timezone support

class City(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='cities')

    timezone = models.CharField(max_length=50, blank=True, help_text="e.g. Asia/Ho_Chi_Minh")

    unique_together = ['name_en', 'country']

Field Details:

  • name_en/name_vi: Bilingual city names
    • Use: Route displays, booking forms, search results
    • Example: "Ho Chi Minh City" / "Thành phố Hồ Chí Minh"
  • country: Foreign key relationship
    • Use: Hierarchical organization, filtering by country
    • Business Logic: Enables country-specific transport rules
  • timezone: IANA timezone identifier
    • Use: Critical for accurate departure/arrival time displays
    • Business Logic: Converts UTC times to local time zones
    • Example: "Asia/Ho_Chi_Minh", "America/New_York"

Business Applications:

  • Accurate flight schedule displays
  • Local time conversions for bookings
  • Route planning within countries

Weather integration by timezone

 

3. Airport Model - Aviation Infrastructure

Purpose: Complete airport data with international aviation standards

class Airport(models.Model):

    name_en = models.CharField(max_length=200, verbose_name="English Name")

    name_vi = models.CharField(max_length=200, blank=True, verbose_name="Vietnamese Name")

    iata_code = models.CharField(max_length=3, unique=True, help_text="3-letter IATA code (e.g. SGN)")

    icao_code = models.CharField(max_length=4, unique=True, help_text="4-letter ICAO code (e.g. VVTS)")

    city = models.ForeignKey(City, on_delete=models.CASCADE, related_name='airports')

    latitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    longitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • iata_code: 3-letter passenger airline code (SGN, LAX, JFK)
    • Use: Booking systems, ticket displays, search functionality
    • Business Logic: Primary identifier for flight booking APIs
  • icao_code: 4-letter air traffic control code (VVTS, KLAX, KJFK)
    • Use: Air traffic control, pilot systems, technical integrations
    • Business Logic: Required for flight tracking and aviation APIs
  • latitude/longitude: GPS coordinates
    • Use: Maps integration, distance calculations, weather data
    • Business Logic: Calculate flight distances, fuel estimates, route optimization
  • is_active: Operational status
    • Use: Hide closed/inactive airports from search
    • Business Logic: Prevents bookings to non-operational facilities

Business Applications:

  • Flight booking and search systems
  • Route optimization algorithms
  • Airport maps and navigation
  • Weather integration for delays
  • Distance-based pricing calculations

 

 

4. Airline Model - Carrier Information

Purpose: Airline company data with branding and identification

class Airline(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    iata_code = models.CharField(max_length=2, unique=True, help_text="2-letter IATA code (e.g. VN)")

    icao_code = models.CharField(max_length=3, unique=True, help_text="3-letter ICAO code (e.g. HVN)")

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='airlines')

    logo = models.ImageField(upload_to='airlines/', blank=True, null=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • iata_code: 2-letter airline designator (VN, AA, BA)
    • Use: Flight numbers, booking references, ticket displays
    • Business Logic: Combined with flight number for unique identification
  • icao_code: 3-letter air traffic control identifier (HVN, AAL, BAW)
    • Use: Flight tracking, air traffic control, regulatory systems
  • logo: Airline branding image
    • Use: Search results, booking confirmations, mobile apps
    • Business Logic: Brand recognition, professional presentation
  • country: Airline's country of registration
    • Use: Regulatory compliance, safety ratings, regional filtering

Business Applications:

  • Flight search result displays
  • Airline preference filtering
  • Safety rating systems
  • Partnership program integration
  • Brand-based marketing

 

 

5. Aircraft Model - Fleet Information

Purpose: Aircraft specifications for capacity and service planning

class Aircraft(models.Model):

    model = models.CharField(max_length=50, help_text="e.g. Boeing 777-300ER")

    manufacturer = models.CharField(max_length=50, help_text="e.g. Boeing, Airbus")

    capacity = models.PositiveIntegerField(default=0, help_text="Total passenger capacity")

Field Details:

  • model: Specific aircraft variant
    • Use: Passenger information, seat maps, service expectations
    • Examples: "Boeing 777-300ER", "Airbus A350-900"
  • manufacturer: Aircraft builder
    • Use: Fleet analysis, maintenance scheduling, passenger preferences
    • Business Logic: Some passengers prefer specific manufacturers
  • capacity: Total passenger seats
    • Use: Booking limits, revenue calculations, seat availability
    • Business Logic: Prevents overbooking, calculates load factors

Business Applications:

  • Seat availability management
  • Aircraft-specific service information
  • Passenger comfort ratings
  • Route planning based on capacity
  • Maintenance and operational planning

 


 

 

6. Flight Model - Core Aviation Operations

Purpose: Individual flight schedules with comprehensive operational data

class Flight(models.Model):

    flight_number = models.CharField(max_length=20, help_text="e.g. VN151")

    airline = models.ForeignKey(Airline, on_delete=models.CASCADE, related_name='flights', null=True)

    aircraft = models.ForeignKey(Aircraft, on_delete=models.SET_NULL, null=True, blank=True)

    

    origin_airport = models.ForeignKey(Airport, on_delete=models.CASCADE, related_name='departing_flights', null=True)

    destination_airport = models.ForeignKey(Airport, on_delete=models.CASCADE, related_name='arriving_flights', null=True)

    

    departure_time = models.DateTimeField()

    arrival_time = models.DateTimeField()

    duration_minutes = models.PositiveIntegerField(default=0, help_text="Flight duration in minutes")

    

    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='SCHEDULED')

    gate = models.CharField(max_length=10, blank=True, help_text="Departure gate")

    terminal = models.CharField(max_length=10, blank=True, help_text="Departure terminal")

    

    # Pricing

    economy_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    business_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    first_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

Field Details:

Flight Identification:

  • flight_number: Airline-specific flight identifier (e.g., "VN151", "AA1234")
    • Use: Passenger communications, tracking, check-in systems
    • Business Logic: Combined with airline code for global uniqueness

Aircraft Assignment:

  • aircraft: Aircraft type for this flight
    • Use: Seat maps, service level expectations, passenger information
    • Business Logic: SET_NULL allows aircraft changes without deleting flight data

Route Information:

  • origin_airport/destination_airport: Flight endpoints
    • Use: Search functionality, route displays, connection planning
    • Business Logic: Related names enable efficient queries for airport schedules

Timing:

  • departure_time/arrival_time: Scheduled times in UTC
    • Use: Search filtering, booking systems, passenger notifications
    • Business Logic: Stored in UTC, converted to local time using city timezones
  • duration_minutes: Flight time for planning and passenger information
    • Use: Connection time calculations, passenger expectations
    • Business Logic: Used for minimum connection time validations

Operational Status:

  • status: Real-time flight status (SCHEDULED, DELAYED, CANCELLED, etc.)
    • Use: Passenger notifications, rebooking systems, operations management
    • Business Logic: Triggers automated passenger communications
  • gate/terminal: Airport facilities for passenger navigation
    • Use: Check-in systems, mobile apps, airport displays

Pricing Structure:

Business Applications:

  • Flight booking and reservation systems
  • Real-time status updates and passenger notifications
  • Route planning and connection optimization
  • Revenue management and pricing strategies
  • Operational planning and crew scheduling

 

 

7. TransportStation Model - Ground Transportation Hubs

Purpose: Bus, train, ferry, and metro stations with multilingual support

class TransportStation(models.Model):

    STATION_TYPES = [

        ('BUS', 'Bus Station'),

        ('TRAIN', 'Train Station'),

        ('FERRY', 'Ferry Terminal'),

        ('METRO', 'Metro Station'),

    ]

    

    name_en = models.CharField(max_length=200, verbose_name="English Name")

    name_vi = models.CharField(max_length=200, blank=True, verbose_name="Vietnamese Name")

    type = models.CharField(max_length=10, choices=STATION_TYPES)

    city = models.ForeignKey(City, on_delete=models.CASCADE, related_name='transport_stations')

    address_en = models.TextField(blank=True, verbose_name="English Address")

    address_vi = models.TextField(blank=True, verbose_name="Vietnamese Address")

    latitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    longitude = models.DecimalField(max_digits=10, decimal_places=7, null=True, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • type: Transportation mode classification
    • Use: Filtering by transport type, icon displays, routing logic
    • Business Logic: Different transport types have different booking rules
  • address_en/address_vi: Detailed location information
    • Use: Passenger directions, GPS navigation, pickup instructions
    • Business Logic: Essential for ground transportation coordination
  • latitude/longitude: GPS coordinates for mapping
    • Use: Distance calculations, route optimization, mobile maps
    • Business Logic: Calculate walking distances, transfer times

Business Applications:

  • Multi-modal journey planning
  • Last-mile transportation connections
  • Station-to-station routing
  • Transfer time calculations
  • Mobile navigation assistance

 

 

8. TransportOperator Model - Service Providers

Purpose: Companies operating ground transportation services

class TransportOperator(models.Model):

    name_en = models.CharField(max_length=100, verbose_name="English Name")

    name_vi = models.CharField(max_length=100, blank=True, verbose_name="Vietnamese Name")

    type = models.CharField(max_length=10, choices=TransportStation.STATION_TYPES)

    country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='transport_operators')

    website = models.URLField(blank=True)

    phone = models.CharField(max_length=20, blank=True)

    is_active = models.BooleanField(default=True)

Field Details:

  • type: Primary transportation mode
    • Use: Service categorization, partnership management, API integrations
    • Business Logic: Different operators have different booking APIs and rules
  • website/phone: Contact information
    • Use: Customer service, direct booking links, support escalation
    • Business Logic: Enables deep-linking to operator booking systems

Business Applications:

  • Partnership management
  • API integration coordination
  • Customer service routing
  • Service quality monitoring
  • Competitive analysis

 

 

9. Transit Model - Ground Transportation Schedules

Purpose: Individual ground transportation schedules and services

class Transit(models.Model):

    TRANSIT_TYPES = (

        ('BUS', 'Bus'),

        ('TRAIN', 'Train'),

        ('FERRY', 'Ferry'),

        ('METRO', 'Metro'),

        ('CAR', 'Car Rental'),

        ('TAXI', 'Taxi'),

        ('OTHER', 'Other'),

    )

    

    route_name = models.CharField(max_length=100, blank=True, help_text="e.g. Route 109, Express Line")

    type = models.CharField(max_length=10, choices=TRANSIT_TYPES)

    operator = models.ForeignKey(TransportOperator, on_delete=models.CASCADE, related_name='transits', null=True)

    

    origin_station = models.ForeignKey(TransportStation, on_delete=models.CASCADE, related_name='departing_transits', null=True)

    destination_station = models.ForeignKey(TransportStation, on_delete=models.CASCADE, related_name='arriving_transits', null=True)

    

    departure_time = models.DateTimeField()

    arrival_time = models.DateTimeField()

    duration_minutes = models.PositiveIntegerField(default=0, help_text="Transit duration in minutes")

    

    # Pricing

    standard_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    premium_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    

    # Additional info

    vehicle_number = models.CharField(max_length=20, blank=True)

    platform = models.CharField(max_length=10, blank=True)

    notes_en = models.TextField(blank=True, verbose_name="English Notes")

    notes_vi = models.TextField(blank=True, verbose_name="Vietnamese Notes")

Field Details:

Service Identification:

  • route_name: Service line identifier (e.g., "Route 109", "Express Line")
    • Use: Passenger identification, schedule displays, booking systems
    • Business Logic: Helps passengers identify correct service
  • type: Extended transport categories including car rental and taxi
    • Use: Service filtering, pricing models, booking workflows
    • Business Logic: Different types have different booking and payment rules

Routing:

  • origin_station/destination_station: Service endpoints
    • Use: Route planning, connection optimization, passenger navigation
    • Business Logic: Enables point-to-point and multi-leg journey planning

Timing:

Pricing:

  • standard_price/premium_price: Service class pricing
    • Use: Revenue management, service differentiation, booking options
    • Business Logic: Enables upselling and service tier management

 

Operational Details:

  • vehicle_number: Specific vehicle identifier
    • Use: Real-time tracking, passenger assistance, operational management
  • platform: Departure platform/bay
    • Use: Passenger navigation, station management, boarding coordination
  • notes_en/notes_vi: Service-specific information
    • Use: Special instructions, accessibility info, passenger alerts
    • Business Logic: Critical for passenger experience and operational requirements

Business Applications:

  • Multi-modal journey planning
  • Real-time passenger information
  • Dynamic pricing and revenue management
  • Operational coordination and tracking
  • Customer service and support

 

 

🔄 Model Relationships & Business Flow

Hierarchical Structure:

Country

── Cities

│   ── Airports → Airlines → Flights

│   └── TransportStations → TransportOperators → Transits

└── Airlines (country-based)

 

 

Business Integration Points:

  1. Airport-Station Connections: Link air travel with ground transportation
  2. Timezone Coordination: Ensure accurate scheduling across different time zones
  3. Multilingual Support: Seamless experience for international and local users
  4. Pricing Integration: Unified pricing across all transportation modes
  5. Operational Coordination: Real-time status updates and passenger communications

This comprehensive transport system enables complete journey planning from flights to ground transportation, with full multilingual support and operational management capabilities.

 

Attached Files

0 files found.

You are viewing this article in public mode. Some features may be limited.