from __future__ import annotations
from dataclasses import dataclass, field
from decimal import Decimal
from xsdata.models.datatype import XmlDuration
from .compatible_equipment_refs_rel_structure import CompatibleEquipmentRefsRelStructure
from .current_type_enumeration import CurrentTypeEnumeration
from .plug_type_enumeration import PlugTypeEnumeration
from .power_coupling_type_enumeration import PowerCouplingTypeEnumeration
from .type_of_plug_ref import TypeOfPlugRef
from .vehicle_equipment_profile_version_structure import VehicleEquipmentProfileVersionStructure

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


@dataclass(slots=True, kw_only=True)
class RechargingEquipmentProfileVersionStructure(VehicleEquipmentProfileVersionStructure):
    class Meta:
        name = "RechargingEquipmentProfile_VersionStructure"

    power_coupling_type: None | PowerCouplingTypeEnumeration = field(
        default=None,
        metadata={
            "name": "PowerCouplingType",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    plug_type: None | PlugTypeEnumeration = field(
        default=None,
        metadata={
            "name": "PlugType",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    type_of_plug_ref: None | TypeOfPlugRef = field(
        default=None,
        metadata={
            "name": "TypeOfPlugRef",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    current_type: None | CurrentTypeEnumeration = field(
        default=None,
        metadata={
            "name": "CurrentType",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    charging_voltage: None | Decimal = field(
        default=None,
        metadata={
            "name": "ChargingVoltage",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    maximum_charging_power: None | Decimal = field(
        default=None,
        metadata={
            "name": "MaximumChargingPower",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    preparation_duration: None | XmlDuration = field(
        default=None,
        metadata={
            "name": "PreparationDuration",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    finalisation_duration: None | XmlDuration = field(
        default=None,
        metadata={
            "name": "FinalisationDuration",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    compatible_with: None | CompatibleEquipmentRefsRelStructure = field(
        default=None,
        metadata={
            "name": "compatibleWith",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )