from __future__ import annotations
from dataclasses import dataclass, field
from .dated_vehicle_journey_ref import DatedVehicleJourneyRef
from .entity_in_version_structure import DataManagedObjectStructure
from .passenger_spot_allocations_rel_structure import PassengerSpotAllocationsRelStructure
from .seat_allocation_method_enumeration import SeatAllocationMethodEnumeration
from .spot_allocation_method_ref import SpotAllocationMethodRef

__NAMESPACE__ = "http://www.netex.org.uk/netex"


@dataclass(slots=True, kw_only=True)
class VehicleJourneySpotAllocationVersionStructure(DataManagedObjectStructure):
    class Meta:
        name = "VehicleJourneySpotAllocation_VersionStructure"

    dated_vehicle_journey_ref: None | DatedVehicleJourneyRef = field(
        default=None,
        metadata={
            "name": "DatedVehicleJourneyRef",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    seat_allocation_method: None | SeatAllocationMethodEnumeration = field(
        default=None,
        metadata={
            "name": "SeatAllocationMethod",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    spot_allocation_method_ref: None | SpotAllocationMethodRef = field(
        default=None,
        metadata={
            "name": "SpotAllocationMethodRef",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    passenger_spot_allocations: None | PassengerSpotAllocationsRelStructure = field(
        default=None,
        metadata={
            "name": "passengerSpotAllocations",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )