from __future__ import annotations
from dataclasses import dataclass, field
from .contract_type_enumeration import ContractTypeEnumeration
from .entity_in_version_structure import DataManagedObjectStructure
from .info_links_rel_structure import InfoLinksRelStructure
from .legal_status_enumeration import LegalStatusEnumeration
from .multilingual_string import MultilingualString
from .organisation_refs_rel_structure import OrganisationRefsRelStructure

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


@dataclass(slots=True, kw_only=True)
class ContractVersionStructure(DataManagedObjectStructure):
    class Meta:
        name = "Contract_VersionStructure"

    name: None | MultilingualString = field(
        default=None,
        metadata={
            "name": "Name",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    description: None | MultilingualString = field(
        default=None,
        metadata={
            "name": "Description",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contract_type: None | ContractTypeEnumeration = field(
        default=None,
        metadata={
            "name": "ContractType",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    legal_status: None | LegalStatusEnumeration = field(
        default=None,
        metadata={
            "name": "LegalStatus",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contract_governing_law: None | MultilingualString = field(
        default=None,
        metadata={
            "name": "ContractGoverningLaw",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contractees: None | OrganisationRefsRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contractors: OrganisationRefsRelStructure = field(
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contract_documents: None | InfoLinksRelStructure = field(
        default=None,
        metadata={
            "name": "contractDocuments",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )