from __future__ import annotations
from dataclasses import dataclass, field
from .deck_level_ref import DeckLevelRef
from .deck_navigation_paths_rel_structure import DeckNavigationPathsRelStructure
from .deck_path_junction_refs_rel_structure import DeckPathJunctionRefsRelStructure
from .deck_path_link_refs_rel_structure import DeckPathLinkRefsRelStructure
from .deck_spaces_rel_structure import DeckSpacesRelStructure
from .multilingual_string import MultilingualString
from .spot_columns_rel_structure import SpotColumnsRelStructure
from .spot_rows_rel_structure import SpotRowsRelStructure
from .zone_version_structure import ZoneVersionStructure

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


@dataclass(slots=True, kw_only=True)
class DeckVersionStructure(ZoneVersionStructure):
    class Meta:
        name = "Deck_VersionStructure"

    label: None | MultilingualString = field(
        default=None,
        metadata={
            "name": "Label",
            "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",
        }
    )
    deck_spaces: None | DeckSpacesRelStructure = field(
        default=None,
        metadata={
            "name": "deckSpaces",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    spot_rows: None | SpotRowsRelStructure = field(
        default=None,
        metadata={
            "name": "spotRows",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    spot_columns: None | SpotColumnsRelStructure = field(
        default=None,
        metadata={
            "name": "spotColumns",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    deck_path_junctions: None | DeckPathJunctionRefsRelStructure = field(
        default=None,
        metadata={
            "name": "deckPathJunctions",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    deck_path_links: None | DeckPathLinkRefsRelStructure = field(
        default=None,
        metadata={
            "name": "deckPathLinks",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    deck_navigation_paths: None | DeckNavigationPathsRelStructure = field(
        default=None,
        metadata={
            "name": "deckNavigationPaths",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )