Source code for bo4e.bo.vertrag

"""
Contains Vertrag class
and corresponding marshmallow schema for de-/serialization
"""
from datetime import datetime
from typing import List, Optional

# pylint: disable=unused-argument
# pylint: disable=no-name-in-module
from pydantic import conlist

from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt
from bo4e.bo.geschaeftspartner import Geschaeftspartner
from bo4e.com.unterschrift import Unterschrift
from bo4e.com.vertragskonditionen import Vertragskonditionen
from bo4e.com.vertragsteil import Vertragsteil
from bo4e.enum.botyp import BoTyp
from bo4e.enum.sparte import Sparte
from bo4e.enum.vertragsart import Vertragsart
from bo4e.enum.vertragsstatus import Vertragsstatus

# pylint: disable=too-many-instance-attributes, too-few-public-methods


[docs]class Vertrag(Geschaeftsobjekt): """ Modell für die Abbildung von Vertragsbeziehungen; Das Objekt dient dazu, alle Arten von Verträgen, die in der Energiewirtschaft Verwendung finden, abzubilden. .. raw:: html <object data="../_static/images/bo4e/bo/Vertrag.svg" type="image/svg+xml"></object> .. HINT:: `Vertrag JSON Schema <https://json-schema.app/view/%23?url=https://raw.githubusercontent.com/Hochfrequenz/BO4E-python/main/json_schemas/bo/Vertrag.json>`_ """ # required attributes bo_typ: BoTyp = BoTyp.VERTRAG # pylint: disable=duplicate-code #: Eine im Verwendungskontext eindeutige Nummer für den Vertrag vertragsnummer: str #: Hier ist festgelegt, um welche Art von Vertrag es sich handelt. vertragsart: Vertragsart #: Gibt den Status des Vertrags an vertragsstatus: Vertragsstatus #: Unterscheidungsmöglichkeiten für die Sparte sparte: Sparte #: Gibt an, wann der Vertrag beginnt (inklusiv) vertragsbeginn: datetime #: Gibt an, wann der Vertrag (voraussichtlich) endet oder beendet wurde (exklusiv) vertragsende: datetime # todo: add von/bis validator vertragspartner1: Geschaeftspartner """ Der "erstgenannte" Vertragspartner. In der Regel der Aussteller des Vertrags. Beispiel: "Vertrag zwischen Vertragspartner 1 ..." """ vertragspartner2: Geschaeftspartner """ Der "zweitgenannte" Vertragspartner. In der Regel der Empfänger des Vertrags. Beispiel "Vertrag zwischen Vertragspartner 1 und Vertragspartner 2". """ vertragsteile: conlist(Vertragsteil, min_items=1) # type: ignore[valid-type] """ Der Vertragsteil wird dazu verwendet, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen. """ # optional attributes #: Beschreibung zum Vertrag beschreibung: Optional[str] = None #: Festlegungen zu Laufzeiten und Kündigungsfristen vertragskonditionen: Optional[Vertragskonditionen] = None #: Unterzeichner des Vertragspartners 1 unterzeichnervp1: Optional[List[Unterschrift]] = None #: Unterzeichner des Vertragspartners 2 unterzeichnervp2: Optional[List[Unterschrift]] = None