from __future__ import annotations
from dataclasses import dataclass, field
from .accessibility_assessment import AccessibilityAssessment
from .class_of_use_ref import ClassOfUseRef
from .deck_level_ref import DeckLevelRef
from .fare_class_enumeration import FareClassEnumeration
from .onboard_space_version_structure import OnboardSpaceVersionStructure

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


@dataclass(slots=True, kw_only=True)
class DeckComponentVersionStructure(OnboardSpaceVersionStructure):
    class Meta:
        name = "DeckComponent_VersionStructure"

    public_use: None | bool = field(
        default=None,
        metadata={
            "name": "PublicUse",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    deck_level_ref: None | DeckLevelRef = field(
        default=None,
        metadata={
            "name": "DeckLevelRef",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    class_of_use_ref: None | ClassOfUseRef = field(
        default=None,
        metadata={
            "name": "ClassOfUseRef",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    fare_class: None | FareClassEnumeration = field(
        default=None,
        metadata={
            "name": "FareClass",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    accessibility_assessment: None | AccessibilityAssessment = field(
        default=None,
        metadata={
            "name": "AccessibilityAssessment",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )