bo

package
v0.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2024 License: MIT Imports: 67 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AvisStructLevelValidation added in v0.0.44

func AvisStructLevelValidation(sl validator.StructLevel)

AvisStructLevelValidation combines all the single validators

func AvisStructLevelValidationAbweichung added in v0.0.44

func AvisStructLevelValidationAbweichung(sl validator.StructLevel)

func AvisStructLevelValidationZuZahlen added in v0.0.44

func AvisStructLevelValidationZuZahlen(sl validator.StructLevel)

AvisStructLevelValidationGesamtNetto verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtNetto

func AvisStructLevelValidationZuZahlenAbgelehnteForderung added in v0.0.44

func AvisStructLevelValidationZuZahlenAbgelehnteForderung(sl validator.StructLevel)

func CalculateMaLoIdCheckSum added in v0.8.4

func CalculateMaLoIdCheckSum(maloID string) (int, error)

CalculateMaLoIdCheckSum calculates the checksum (last digit) for the given malo ID. Takes both the 10-digit part of a MaLo or the whole MaLo (11 digits). Returns an error if maloID's length is neither 10 nor 11, or if the first ten characters do not constitute a maloID.

func EICFieldLevelValidation added in v0.0.21

func EICFieldLevelValidation(fl validator.FieldLevel) bool

EICFieldLevelValidation ensures that the string stored in the annotated/tagged field is a valid EIC code Therefore it has to obey the "Bildungsvorschrift" according to https://bdew-codes.de/Content/Files/EIC/Awh_20171218_EIC-Vergabe_V1-0.pdf section 2.2.1

func GetMaLoIdCheckSum deprecated added in v0.0.33

func GetMaLoIdCheckSum(maloIdWithoutCheckSum string) int

GetMaLoIdCheckSum returns the checksum (11th character of the malo ID) that matches the first ten characters long provided in maloIdWithoutCheckSum. This is going to crash if the length of the maloIdWithoutCheckSum is <10

Deprecated: Use CalculateMaLoIdCheckSum which provides error handling and doesn't panic.

func GetNeLoIdCheckSum added in v0.6.2

func GetNeLoIdCheckSum(neloIdWithoutCheckSum string) (int, error)

GetNeLoIdCheckSum returns the checksum (11th character of the nelo ID) that matches the first ten characters long provided in neloIdWithoutCheckSum. This is going to crash if the length of the neloIdWithoutCheckSum is <10. Use neloIdWithoutCheckSum + strconv.Itoa(returnValue) to generate a NeLoId

func GetSRIdCheckSum added in v0.20.0

func GetSRIdCheckSum(srIdWithoutCheckSum string) (int, error)

GetSRIdCheckSum returns the checksum (11th character of the SR ID) that matches the first ten characters long provided in srIdWithoutCheckSum. This is going to crash if the length of the srIdWithoutCheckSum is <10. Use srIdWithoutCheckSum + strconv.Itoa(returnValue) to generate a SR ID

func GetTRIdCheckSum added in v0.20.0

func GetTRIdCheckSum(trIdWithoutCheckSum string) (int, error)

GetTRIdCheckSum returns the checksum (11th character of the TR ID) that matches the first ten characters long provided in trIdWithoutCheckSum. This is going to crash if the length of the trIdWithoutCheckSum is <10. Use trIdWithoutCheckSum + strconv.Itoa(returnValue) to generate a TR ID

func MaloIdFieldLevelValidation added in v0.0.18

func MaloIdFieldLevelValidation(fl validator.FieldLevel) bool

MaloIdFieldLevelValidation validates the Marktlokationsid as specified by the BDEW https://bdew-codes.de/Content/Files/MaLo/2017-04-28-BDEW-Anwendungshilfe-MaLo-ID_Version1.0_FINAL.PDF

func RechnungStructLevelValidation added in v0.0.9

func RechnungStructLevelValidation(sl validator.StructLevel)

RechnungStructLevelValidation combines all the single validators

func RechnungStructLevelValidationGesamtBrutto added in v0.0.9

func RechnungStructLevelValidationGesamtBrutto(sl validator.StructLevel)

RechnungStructLevelValidationGesamtBrutto verifies that the sum of all Rechnungsposition. equals the Rechnung.GesamtBrutto

func RechnungStructLevelValidationGesamtNetto added in v0.0.9

func RechnungStructLevelValidationGesamtNetto(sl validator.StructLevel)

RechnungStructLevelValidationGesamtNetto verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtNetto

func RechnungStructLevelValidationGesamtSteuer added in v0.0.9

func RechnungStructLevelValidationGesamtSteuer(sl validator.StructLevel)

RechnungStructLevelValidationGesamtSteuer verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtSteuer

func RechnungStructLevelValidationZuZahlen added in v0.0.9

func RechnungStructLevelValidationZuZahlen(sl validator.StructLevel)

RechnungStructLevelValidationZuZahlen verifies that Rechnung.Zuzahlen = Rechnung.GesamtBrutto - Rechnung.Vorausgezahlt - Rechnung.RabattBrutto

func XorStructLevelMesslokationValidation added in v0.0.18

func XorStructLevelMesslokationValidation(sl validator.StructLevel)

XorStructLevelMesslokationValidation ensures that only one of the possible address types is given

func XorStructLevelValidation added in v0.0.18

func XorStructLevelValidation(sl validator.StructLevel)

XorStructLevelValidation ensures that only one of the possible address types is given

Types

type Angebot added in v0.19.0

type Angebot struct {
	Geschaeftsobjekt
	Angebotsnummer              string                 `json:"angebotsnummer,omitempty" validate:"required"` // Eindeutige Nummer des Angebotes.
	Anfragereferenz             *string                `json:"anfragereferenz,omitempty"`                    // Referenz auf eine Anfrage oder Ausschreibung. Kann dem Empfänger des Angebotes bei Zuordnung des Angebotes zur Anfrage bzw.Ausschreibung helfen.
	Angebotsdatum               time.Time              `json:"angebotsdatum,omitempty"`                      // Erstellungsdatum des Angebots
	Sparte                      sparte.Sparte          `json:"sparte,omitempty" validate:"required"`         // Sparte, für die das Angebot abgegeben wird (Strom/Gas).
	Bindefrist                  *time.Time             `json:"bindefrist,omitempty"`                         // Bis zu diesem Zeitpunkt(Tag/Uhrzeit) inklusive gilt das Angebot.
	Angebotgeber                *Geschaeftspartner     `json:"angebotgeber,omitempty" validate:"required"`   // Link auf den Ersteller des Angebots.
	Angebotnehmer               *Geschaeftspartner     `json:"angebotnehmer,omitempty" validate:"required"`  // Link auf den Empfänger des Angebots.
	UnterzeichnerAngebotsnehmer *Ansprechpartner       `json:"unterzeichnerAngebotsnehmer,omitempty"`        // Link auf die Person, die als Angebotsnehmer das Angebot angenommen hat.
	UnterzeichnerAngebotsgeber  *Ansprechpartner       `json:"unterzeichnerAngebotsgeber,omitempty"`         // Link auf die Person, die als Angebotsgeber das Angebot ausgestellt hat.
	Varianten                   []com.Angebotsvariante `json:"varianten,omitempty"`                          // Eine oder mehrere Varianten des Angebots mit den Angebotsteilen. Ein Angebot besteht mindestens aus einer Variante.
}

Mit diesem BO kann ein Versorgungsangebot zur Strom- oder Gasversorgung oder die Teilnahme an einer Ausschreibung übertragen werden. Es können verschiedene Varianten enthalten sein (z.B.ein- und mehrjährige Laufzeit). Innerhalb jeder Variante können Teile enthalten sein, die jeweils für eine oder mehrere Marktlokationen erstellt werden.

func (Angebot) GetDefaultJsonTags added in v0.19.0

func (_ Angebot) GetDefaultJsonTags() []string

type Ansprechpartner added in v0.0.21

type Ansprechpartner struct {
	Geschaeftsobjekt
	Anrede anrede.Anrede `json:"anrede,omitempty"` // Anrede ist die mögliche Anrede des Ansprechpartners
	// IndividuelleAnrede ermöglicht im Falle einer nicht standardisierten Anrede (7=anrede.INDIVIDUELL) eine frei definierbare Anrede vorzugeben.
	IndividuelleAnrede string               ``                                                          /* 135-byte string literal not displayed */
	Titel              titel.Titel          `json:"titel,omitempty"`                                    // Titel ist ein möglicher Titel des Ansprechpartners
	Vorname            string               `json:"vorname,omitempty"`                                  // Vorname ist der Vorname des Ansprechpartners
	Nachname           string               `json:"nachname,omitempty" validate:"required"`             // Nachname ist der Familienname des Ansprechpartners
	EMailAdresse       string               `json:"eMailAdresse,omitempty" validate:"omitempty,email"`  // EMailAdresse des Ansprechpartners
	Kommentar          string               `json:"kommentar,omitempty"`                                // Kommentar sind zusätzlich Freitextinformationen zum Ansprechpartner
	Geschaeftspartner  *Geschaeftspartner   `json:"geschaeftspartner,omitempty" validate:"required"`    // Geschaeftspartner ist der Geschäftspartner für den der Ansprechpartner modelliert wird
	Adresse            *com.Adresse         `json:"adresse,omitempty"`                                  // Adresse des Ansprechpartners, falls diese von der Adresse des Geschaeftspartner s abweicht
	Rufnummern         []com.Rufnummer      `json:"rufnummern,omitempty" validate:"omitempty,dive"`     // Rufnummern ist eine Liste der Telefonnummern, unter denen der Ansprechpartner erreichbar ist
	Zustaendigkeiten   []com.Zustaendigkeit `json:"zustaendigkeit,omitempty" validate:"omitempty,dive"` // Zustaendigkeiten ist eine Liste der Abteilungen und Zuständigkeiten des Ansprechpartner

}

Ansprechpartner sind ansprechbare Geschäftspartner (Personen)

func (Ansprechpartner) GetDefaultJsonTags added in v0.0.37

func (_ Ansprechpartner) GetDefaultJsonTags() []string

type Avis added in v0.0.44

type Avis struct {
	Geschaeftsobjekt
	AvisNummer     string             `json:"avisNummer,omitempty" validate:"required"`       // Eine im Verwendungskontext eindeutige Nummer für das Avis
	AvisTyp        avistyp.AvisTyp    `json:"avisTyp,omitempty" validate:"required"`          // Gibt den Typ des Avis an
	AvisPositionen []com.AvisPosition `json:"positionen,omitempty" validate:"required,min=1"` // Avispositionen
	ZuZahlen       com.Betrag         `json:"zuZahlen,omitempty" validate:"required"`         // Summenbetrag
}

func (Avis) GetDefaultJsonTags added in v0.0.44

func (_ Avis) GetDefaultJsonTags() []string

type Bilanzierung added in v0.0.21

type Bilanzierung struct {
	Geschaeftsobjekt
	Lastprofile              []com.Lastprofil `json:"lastprofile,omitempty"`                                                         // Lastprofile ist eine Liste der verwendeten Lastprofile (SLP, SLP/TLP, ALP etc.)
	Bilanzierungsbeginn      *time.Time       `json:"bilanzierungsbeginn,omitempty" validate:"omitempty,ltefield=Bilanzierungsende"` // Bilanzierungsbeginn ist der inklusive Beginn der Bilanzierung
	Bilanzierungsende        *time.Time       `json:"bilanzierungsende,omitempty" validate:"omitempty,gtefield=Bilanzierungsbeginn"` // Bilanzierungsende ist das exklusive Ende der Bilanzierung
	Bilanzkreis              *string          `json:"bilanzkreis,omitempty" validate:"omitempty,len=16,eic"`                         // Bilanzkreis ist der EIC-Code des Bilanzkreises
	Jahresverbrauchsprognose *com.Menge       `json:"jahresverbrauchsprognose,omitempty"`                                            // Jahresverbrauchsprognose ist die Jahresverbrauchsprognose
	Kundenwert               *com.Menge       `json:"kundenwert,omitempty"`                                                          // Kundenwert ist der Kundenwert
	// Verbrauchsaufteilung beschreibt, welcher Anteil im SLP- bzw. TLP-Profil steckt
	// 1. [Gemessene Energiemenge der OBIS "nicht Schwachlast"] * [Verbrauchsaufteilung in % / 100%] = [zu verlagernde Energiemenge]
	// 2. [Gemessene Energiemenge der OBIS "Schwachlast"] - [zu verlagernde Energiemenge] = [Ermittelte Energiemenge für Schwachlast]
	// 3. [Gemessene Energiemenge der OBIS "nicht Schwachlast"] + [zu verlagernde Energiemenge] = [Ermittelte Energiemenge für nicht Schwachlast]
	Verbrauchsaufteilung       decimal.NullDecimal                                    `json:"verbrauchsaufteilung,omitempty"`
	Zeitreihentyp              *zeitreihentyp.Zeitreihentyp                           `json:"zeitreihentyp,omitempty"`                                // Zeitreihentyp beschreibt den verwendeten Zeitreihentyp (SLS, TLS...)
	Aggregationsverantwortung  *aggregationsverantwortung.Aggregationsverantwortung   `json:"aggregationsverantwortung,omitempty"`                    // Aggregationsverantwortung benennt, bei wem die Aggregationsverantwortung liegt
	Prognosegrundlage          *prognosegrundlage.Prognosegrundlage                   `json:"prognosegrundlage,omitempty"`                            // Die Prognosegrundlage beschreibt die Prognosegrundlage
	DetailsPrognosegrundlage   []profiltyp.Profiltyp                                  `json:"detailsPrognosegrundlage,omitempty"`                     // ?
	WahlrechtPrognosegrundlage *wahlrechtprognosegrundlage.WahlrechtPrognosegrundlage `json:"wahlrechtPrognosegrundlage,omitempty"`                   // WahlrechtPrognosegrundlage
	Fallgruppenzuordnung       *fallgruppenzuordnung.Fallgruppenzuordnung             `json:"fallgruppenzuordnung,omitempty"`                         // Fallgruppenzuordnung (für Gas RLM)
	Prioritaet                 *int                                                   `json:"prioritaet,omitempty"`                                   // Prioritaet ist die Priorität des Bilanzkreises für Gas
	MarktlokationsId           *string                                                `json:"marktlokationsId,omitempty" validate:"omitempty,maloid"` // MarktlokationsId referenziert eine Marktlokation
	Abwicklungsmodell          *abwicklungsmodell.Abwicklungsmodell                   `json:"abwicklungsmodell,omitempty"`                            // Abwicklungsmodell beschreibt wo die Bilanzierung statt findet

}

Bilanzierung is a business object used for balancing. Note that this is not official BO4E standard (yet)!

func (Bilanzierung) GetDefaultJsonTags added in v0.0.37

func (bila Bilanzierung) GetDefaultJsonTags() []string

func (Bilanzierung) MarshalJSON added in v0.0.43

func (bila Bilanzierung) MarshalJSON() (bytes []byte, err error)

func (*Bilanzierung) UnmarshalJSON added in v0.0.43

func (bila *Bilanzierung) UnmarshalJSON(bytes []byte) (err error)

type BusinessObject

type BusinessObject interface {
	// GetBoTyp returns the Geschaeftsobjekt.BoTyp
	GetBoTyp() botyp.BOTyp
	// GetVersionStruktur returns the Geschaeftsobjekt.VersionStruktur
	GetVersionStruktur() string
	// GetDefaultJsonTags returns an array of string that represent the json tags that are (by default) used by this business object
	GetDefaultJsonTags() []string
}

BusinessObject is the interface that all Business Objects implement.

func NewBusinessObject added in v0.0.13

func NewBusinessObject(typ botyp.BOTyp) BusinessObject

NewBusinessObject creates an empty BusinessObject based on the provided type; Returns nil if the type is not implemented.

type BusinessObjectSlice added in v0.0.13

type BusinessObjectSlice []BusinessObject

BusinessObjectSlice is a slice that contains 0-n BusinessObject s

func (*BusinessObjectSlice) UnmarshalJSON added in v0.0.13

func (boSlice *BusinessObjectSlice) UnmarshalJSON(data []byte) error

type Einspeisung added in v0.14.0

type Einspeisung struct {
	Geschaeftsobjekt
	MarktlokationsId        *string                                          `json:"marktlokationsId,omitempty"`        // Für welche Marktlokation gelten diese Einspeisedaten
	TrancheId               *string                                          `json:"trancheId,omitempty"`               // Für welche Tranche gelten diese Einspeisedaten
	Verguetungsempfaenger   *geschaeftspartnerrolle.Geschaeftspartnerrolle   `json:"verguetungsempfaenger,omitempty"`   // Empfänger der Vergütung zur Einspeisung
	EEGVermarktungsform     *eegvermarktungsform.EEGVermarktungsform         `json:"eegVermarktungsform,omitempty"`     // Vermarktungsformen gemäß dem Erneuerbare-Energien-Gesetz (EEG).
	Landescode              *landescode.Landescode                           `json:"landescode,omitempty"`              // Land der Förderung
	FernsteuerbarkeitStatus *fernsteuerbarkeitstatus.FernsteuerbarkeitStatus `json:"fernsteuerbarkeitStatus,omitempty"` // Status der Fernsteuerbarkeit einer Marktlokation
}

Einspeisung

func (Einspeisung) GetDefaultJsonTags added in v0.14.0

func (_ Einspeisung) GetDefaultJsonTags() []string

type Energiemenge added in v0.0.4

type Energiemenge struct {
	Geschaeftsobjekt
	LokationsId  string                     `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId is the ID of the location (either a LokationsTyp MALO ID (11 digits) or a LokationsTyp MELO ID (33 alphanum))
	LokationsTyp *lokationstyp.Lokationstyp `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"`                                                    // LokationsTyp is the type of the location in LokationsId
	Verbrauch    []com.Verbrauch            `json:"energieverbrauch,omitempty" validate:"required,min=1"`                                                         // Verbrauch are consumption data
}

Energiemenge contains information about consumption at a location

func (Energiemenge) GetDefaultJsonTags added in v0.0.37

func (_ Energiemenge) GetDefaultJsonTags() []string

type Geschaeftsobjekt added in v0.0.13

type Geschaeftsobjekt struct {
	unmappeddatamarshaller.ExtensionData
	BoTyp             botyp.BOTyp           `json:"boTyp" validate:"required"`           // BoTyp is the type of business object, may be used as discriminator
	VersionStruktur   string                `json:"versionStruktur" validate:"required"` // VersionStruktur is the version of BO4E used
	ExterneReferenzen []com.ExterneReferenz `json:"externeReferenzen,omitempty"`         // ExterneReferenzen are external references of this object in various systems
}

Geschaeftsobjekt is the common base struct of all Business Objects

func (Geschaeftsobjekt) GetBoTyp added in v0.0.13

func (gob Geschaeftsobjekt) GetBoTyp() botyp.BOTyp

func (Geschaeftsobjekt) GetVersionStruktur added in v0.0.13

func (gob Geschaeftsobjekt) GetVersionStruktur() string

type Geschaeftspartner added in v0.0.5

type Geschaeftspartner struct {
	Geschaeftsobjekt
	Anrede                           *anrede.Anrede                                                  `json:"anrede,omitempty"`                                                               // Die Anrede für den Geschaeftspartner, Z.B. HERR
	Name1                            string                                                          `json:"name1,omitempty" validate:"required" example:"Yellow Strom GmbH,Hagen"`          // Name1 ist der erste Teil des Namens. Hier kann der Firmenname oder bei Privatpersonen beispielsweise der Nachname dargestellt werden.
	Name2                            string                                                          `json:"name2,omitempty" example:"'Bereich Süd','Nina'"`                                 // Name2 ist der zweite Teil des Namens. Hier kann der eine Erweiterung zum Firmennamen oder bei Privatpersonen beispielsweise der Vorname dargestellt werden.
	Name3                            string                                                          `json:"name3,omitempty" example:"Afrika,Sängerin"`                                      // Name3 enthält weitere Ergänzungen zum Firmennamen oder bei Privatpersonen Zusätze zum Namen dargestellt werden
	Gewerbekennzeichnung             bool                                                            `json:"gewerbekennzeichnung" validate:"omitempty,required"`                             // Gewerbekennzeichnung markiert, ob es sich um einen Gewerbe/Unternehmen (true) oder eine Privatperson handelt (false)
	HrNummer                         string                                                          `json:"hrnummer,omitempty"`                                                             // HrNummer ist die Handelsregisternummer des Geschäftspartners
	Amtsgericht                      string                                                          `json:"amtsgericht,omitempty"`                                                          // Amtsgericht bzw Handelsregistergericht, das die Handelsregisternummer herausgegeben hat
	Kontaktwege                      []kontaktart.Kontaktart                                         `json:"kontaktweg,omitempty"`                                                           // Kontaktwege sind die bevorzugten Kontaktwege des Geschäftspartners (todo: rename json tag, too)
	UmsatzsteuerId                   string                                                          `json:"umsatzsteuerId,omitempty" example:"DE 813281825"`                                // UmsatzsteuerId ist die Steuer-ID des Geschäftspartners
	GlaeubigerId                     string                                                          `json:"glaeubigerId,omitempty" example:"DE 47116789"`                                   // GlaeubigerId ist die Gläubiger-ID, welche im Zahlungsverkehr verwendet wird
	EMailAdresse                     string                                                          `json:"eMailAdresse,omitempty" validate:"omitempty,email" example:"info@mp-energie.de"` // EMailAdresse ist die E-Mail-Adresse des Ansprechpartners
	Website                          string                                                          `json:"website,omitempty" validate:"omitempty,url" example:"https://www.mp-energie.de"` // Website ist die Internetseite des Marktpartners
	Geschaeftspartnerrollen          []geschaeftspartnerrolle.Geschaeftspartnerrolle                 `json:"geschaeftspartnerrollen,omitempty" validate:"required,min=1"`                    // Geschaeftspartnerrollen sind die Rollen, die der Geschäftspartner hat
	Partneradresse                   *com.Adresse                                                    `json:"partneradresse,omitempty" validate:"required"`                                   // Partneradresse ist die Adresse des Geschäftspartners, an der sich der Hauptsitz befindet.
	Bankverbindung                   *com.Bankverbindung                                             `json:"bankverbindung,omitempty"`                                                       //Bankverbindung ist die Bankverbindung des Geschäftspartners
	Steuernummer                     string                                                          `json:"steuernummer,omitempty"`                                                         //Steuernummer ist die Steuernummer des Geschäftspartners
	Erreichbarkeit                   *com.Erreichbarkeit                                             `json:"erreichbarkeit,omitempty"`
	GruendeDerPrivilegierungNachEnFG []grundderprivilegierungnachenfg.GrundDerPrivilegierungNachEnFG `json:"gruendeDerPrivilegierungNachEnFG,omitempty"` //Erreichbarkeit ist die Erreichbarkeit des Geschäftspartners
}

Geschaeftspartner models business partners, both companies and private persons.

func (Geschaeftspartner) GetDefaultJsonTags added in v0.0.37

func (_ Geschaeftspartner) GetDefaultJsonTags() []string

type Handelsunstimmigkeit added in v0.0.42

type Handelsunstimmigkeit struct {
	Geschaeftsobjekt

	// Nummer contains the "Handelsunstimmigkeitsnummer".
	Nummer string `json:"nummer,omitempty" validate:"required"`

	// Typ specifies the type of discrepancy.
	Typ handelsunstimmigkeitstyp.Handelsunstimmigkeitstyp `json:"typ,omitempty" validate:"required"`

	// Begruendung contains the reason of discrepancy.
	Begruendung com.Handelsunstimmigkeitsbegruendung `json:"begruendung" validate:"required"`

	// Betrag is the requested sum amount (optional).
	Betrag *com.Betrag `json:"zuZahlen,omitempty"`
}

Handelsunstimmigkeit contains information about discrepancies in market communication.

func (Handelsunstimmigkeit) GetDefaultJsonTags added in v0.0.42

func (_ Handelsunstimmigkeit) GetDefaultJsonTags() []string

type Lastgang added in v0.0.4

type Lastgang struct {
	Geschaeftsobjekt
	Sparte       sparte.Sparte               `json:"sparte,omitempty" example:"STROM" validate:"required"`                                                         // Sparte ist eine Angabe, ob es sich um einen GAS- oder STROM-Lastgang handelt
	Version      string                      `json:"version,omitempty" validate:"alphanum"`                                                                        // Version ist die Versionsnummer des Lastgangs
	LokationsId  string                      `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId is the ID of the location (either a LokationsTyp MALO ID (11 digits) or a LokationsTyp MELO ID (33 alphanum))
	LokationsTyp lokationstyp.Lokationstyp   `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"`                                                    // LokationsTyp is the type of the location in LokationsId
	Messgroesse  mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required" example:"KWH"`                                                          // Messgroesse ist die Definition der gemessenen Größe anhand ihrer Einheit.
	Obiskennzahl string                      `json:"obiskennzahl,omitempty" example:"1-0:1.8.1"`                                                                   // Obiskennzahl ist die genormte OBIS-Kennzahl zur Kennzeichnung der Messgröße
	Werte        []com.Zeitreihenwert        `json:"energieverbrauch,omitempty" validate:"required,min=1"`                                                         // Werte sind die im Lastgang enthaltenen Messwerte.
}

Lastgang ist ein Modell zur Abbildung eines Lastganges. In diesem Modell werden die Messwerte mit einem vollständigen Zeitintervall angegeben und es bietet daher eine hohe Flexibilität in der Übertragung jeglicher zeitlich veränderlicher Messgrössen.

func (Lastgang) GetDefaultJsonTags added in v0.0.37

func (_ Lastgang) GetDefaultJsonTags() []string

type Marktlokation added in v0.0.18

type Marktlokation struct {
	unmappeddatamarshaller.ExtensionData
	Geschaeftsobjekt
	MarktlokationsId     string                                     `json:"marktlokationsId,omitempty" example:"12345678913" validate:"required,numeric,len=11,maloid"` // MarktlokationsId is the ID of the market location
	Sparte               sparte.Sparte                              `json:"sparte,omitempty" validate:"required"`                                                       // Sparte describes the Division
	Energierichtung      *energierichtung.Energierichtung           `json:"energierichtung,omitempty" validate:"omitnil,ne=0"`                                          // Energierichtung describes whether energy is supplied out of or fed into the grid.
	Bilanzierungsmethode *bilanzierungsmethode.Bilanzierungsmethode `json:"bilanzierungsmethode,omitempty" validate:"omitnil,ne=0"`                                     // Bilanzierungsmethode is the accounting method
	Verbrauchsart        verbrauchsart.Verbrauchsart                `json:"verbrauchsart,omitempty"`                                                                    // Verbrauchsart is the consumption type
	Unterbrechbar        *bool                                      `json:"unterbrechbar,omitempty"`                                                                    // Unterbrechbar describes whether the supply is interruptible
	Netzebene            netzebene.Netzebene                        `json:"netzebene,omitempty" validate:"required"`                                                    // Netzebene, in der der Bezug der Energie erfolgt. Bei Strom Spannungsebene der Lieferung, bei Gas Druckstufe.
	Netzbetreibercodenr  *string                                    `json:"netzbetreibercodenr,omitempty" validate:"omitnil,numeric,len=13"`                            // Netzbetreibercodenr is the code number of the "Netzbetreiber"
	Gebiettyp            gebiettyp.Gebiettyp                        `json:"gebiettyp,omitempty"`                                                                        // Gebiettyp is the type of the "Netzgebiet"
	Netzgebietnr         *string                                    `json:"netzgebietnr,omitempty"`                                                                     // Netzgebietnr is the number of the "Netzgebiet" in the enet database
	Bilanzierungsgebiet  *string                                    `json:"bilanzierungsgebiet,omitempty"`                                                              // Bilanzierungsgebiet, dem das Netzgebiet zugeordnet ist - im Falle eines Strom Netzes.
	Grundversorgercodenr *string                                    `json:"grundversorgercodenr,omitempty" validate:"omitnil,numeric,len=13"`                           // Grundversorgercodenr is the code number of the "Grundversorger" responsible for this market location
	Gasqualitaet         gasqualitaet.Gasqualitaet                  `json:"gasqualitaet,omitempty"`                                                                     // Gasqualitaet is the gas quality
	Endkunde             *Geschaeftspartner                         `json:"endkunde,omitempty" validate:"-"`                                                            // Endkunde is the Geschaeftspartner who owns this market location
	// only one of the following three optional address attributes can be set
	Lokationsadresse          *com.Adresse                 `json:"lokationsadresse,omitempty" validate:"required_without_all=Geoadresse Katasterinformation"` // Lokationsadresse is the address at which the energy supply or feed-in takes place
	Geoadresse                *com.Geokoordinaten          `json:"geoadresse,omitempty" validate:"required_without_all=Lokationsadresse Katasterinformation"` // Geoadresse are the gps coordinates
	Katasterinformation       *com.Katasteradresse         `json:"katasterinformation,omitempty" validate:"required_without_all=Lokationsadresse Geoadresse"` // Katasterinformation is the Cadastre address
	ZugehoerigeMesslokationen []com.Messlokationszuordnung `json:"zugehoerigemesslokationen,omitempty"`                                                       // ZugehoerigeMesslokationen is a list of MeLos belonging to this market location

	Regelzone   *string `json:"regelzone,omitempty"`
	Marktgebiet *string `json:"marktgebiet,omitempty"`

	Zeitreihentyp                  *zeitreihentyp.Zeitreihentyp                       `json:"zeitreihentyp,omitempty"`
	Zaehlwerke                     []com.Zaehlwerk                                    `json:"zaehlwerke,omitempty"`
	ZaehlwerkeBeteiligteMarktrolle []com.Zaehlwerk                                    `json:"zaehlwerkeBeteiligteMarktrolle,omitempty"`
	Messlokationen                 []Messlokation                                     `json:"messlokationen,omitempty"`
	MesstechnischeEinordnung       *messtechnischeeinordnung.MesstechnischeEinordnung `json:"messtechnischeEinordnung,omitempty"`

	Netznutzungsabrechnungsdaten []com.Netznutzungsabrechnungsdaten `json:"netznutzungsabrechnungsdaten,omitempty"` // Netznutzungsabrechnungsdaten sind Daten für die Prüfung der Netznutzungsabrechnung
	Sperrstatus                  *sperrstatus.Sperrstatus           `json:"sperrstatus,omitempty"`
}

Marktlokation contains information about a market location aka "MaLo"

func (Marktlokation) GetDefaultJsonTags added in v0.0.37

func (malo Marktlokation) GetDefaultJsonTags() []string

func (Marktlokation) MarshalJSON added in v0.0.36

func (malo Marktlokation) MarshalJSON() (bytes []byte, err error)

func (*Marktlokation) UnmarshalJSON added in v0.0.36

func (malo *Marktlokation) UnmarshalJSON(bytes []byte) (err error)

type Marktteilnehmer added in v0.0.13

type Marktteilnehmer struct {
	Geschaeftspartner
	Marktrolle       *marktrolle.Marktrolle      `json:"marktrolle,omitempty"`                                                 // Marktrolle gibt im Klartext die Bezeichnung der Marktrolle an. Details siehe ENUM Marktrolle
	Rollencodenummer string                      `json:"rollencodenummer,omitempty" validate:"required,numeric,min=13,max=13"` // Rollencodenummer gibt die Codenummer der Marktrolle an (13 digits)
	Rollencodetyp    rollencodetyp.Rollencodetyp `json:"rollencodetyp,omitempty" validate:"required"`                          // Rollencodetyp gibt den Typ des Codes an/Vergabestelle. Details siehe ENUM Rollencodetyp
	Makoadresse      string                      `json:"makoadresse,omitempty" validate:"omitempty"`                           // Makoadresse ist die 1:1-Kommunikationsadresse des Marktteilnehmers. Diese wird in der Marktkommunikation verwendet.
	Ansprechpartner  *Ansprechpartner            `json:"ansprechpartner,omitempty" validate:"omitempty"`                       // Ansprechpartner ist ein Kontakt zur bilateralen Klärung
}

Marktteilnehmer models participants of the German energy market

func (Marktteilnehmer) GetDefaultJsonTags added in v0.0.37

func (_ Marktteilnehmer) GetDefaultJsonTags() []string

type Messlokation

type Messlokation struct {
	Geschaeftsobjekt
	MesslokationsId                 string                     `json:"messlokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,len=33"` // MesslokationsId is the ID of the metering location
	Sparte                          sparte.Sparte              `json:"sparte,omitempty" validate:"required"`                                                                      // Sparte is the division
	NetzebeneMessung                *netzebene.Netzebene       `json:"netzebeneMessung,omitempty"`                                                                                // NetzebeneMessung is the grid level of measurement
	MessgebietNr                    string                     `json:"messgebietNr,omitempty"`                                                                                    // MessgebietNr is the number of the measurement area in ene't database
	Geraete                         []com.Hardware             `json:"geraete,omitempty"`                                                                                         // Geraete is a list of devices
	Messdienstleistung              *com.Dienstleistung        `json:"messdienstleistung,omitempty"`                                                                              // Messdienstleistung is a metering services
	GrundzustaendigerMsbCodeNr      string                     `json:"grundzustaendigerMSBCodeNr,omitempty" validate:"omitempty,numeric,len=13"`                                  // GrundzustaendigerMsbCodeNr is the code number of the "grundzuständige Messstellenbetreiber", responsitble for this MeLo
	GrundzustaendigerMsbImCodeNr    string                     `json:"GrundzustaendigerMsbImCodeNr,omitempty" validate:"omitempty,numeric,len=13"`                                // GrundzustaendigerMsbImCodeNr si the code number of the "grundzuständige Messsstellenbetreiber", responsible for intelligent meters at this MeLo
	Messlokationszaehler            []Zaehler                  `json:"messlokationszaehler,omitempty"`                                                                            // Messlokationszaehler meters associated to this Messlokation
	Gasqualitaet                    *gasqualitaet.Gasqualitaet `json:"gasqualitaet,omitempty"`                                                                                    // gasqualitaet für EDIFACT mapping
	Abrechnungmessstellenbetriebnna *bool                      `json:"abrechnungmessstellenbetriebnna,omitempty"`                                                                 //Dieser Wert ist true, falls die Abrechnungs des Messstellenbetriebs die Netznutzungsabrechnung enthält. false andernfalls
	// only one of the following three optional address attributes can be set
	Messadresse         *com.Adresse         `json:"messadresse,omitempty" validate:"required_without_all=Geoadresse Katasterinformation"` // Messadresse is a street address of the Messlokation
	Geoadresse          *com.Geokoordinaten  `json:"geoadresse,omitempty" validate:"required_without_all=Messadresse Katasterinformation"` // Geoadresse are gps coordinates of the Messlokation
	Katasterinformation *com.Katasteradresse `json:"katasterinformation,omitempty" validate:"required_without_all=Messadresse Geoadresse"` // Katasterinformation is a cadastre address of the Messlokation
}

Messlokation contains information about a metering location aka "MeLo"

func (Messlokation) GetDefaultJsonTags added in v0.0.37

func (melo Messlokation) GetDefaultJsonTags() []string

func (Messlokation) MarshalJSON added in v0.0.37

func (melo Messlokation) MarshalJSON() (bytes []byte, err error)

func (*Messlokation) UnmarshalJSON added in v0.0.37

func (melo *Messlokation) UnmarshalJSON(bytes []byte) (err error)

type Netzlokation added in v0.14.0

type Netzlokation struct {
	Geschaeftsobjekt
	NetzlokationsId            string                `json:"netzlokationsId,omitempty" example:"EOI05HSBJG0" validate:"alphanum,required,len=11"` // NetzlokationsId is the ID of the Netzlokation
	Sparte                     sparte.Sparte         `json:"sparte,omitempty" validate:"required"`                                                // Sparte describes the Division
	Netzanschlussleistung      *com.Menge            `json:"netzanschlussleistung,omitempty"`                                                     // Netzanschlussleistungsmenge der Netzlokation
	GrundzustaendigerMSBCodeNr *string               `json:"grundzustaendigerMSBCodeNr,omitempty"`                                                // Codenummer des grundzuständigen Messstellenbetreibers, der für diese Netzlokation zuständig ist.
	Steuerkanal                *bool                 `json:"steuerkanal,omitempty"`                                                               // Ob ein Steuerkanal der Netzlokation zugeordnet ist und somit die Netzlokation gesteuert werden kann. ZF2: Kein Steuerkanal vorhanden. ZF3: Steuerkanal vorhanden.
	ObisKennzahl               *string               `json:"obisKennzahl,omitempty"`                                                              // Die OBIS-Kennzahl für die Netzlokation
	Verwendungszweck           *com.Verwendungszweck `json:"verwendungszweck,omitempty"`                                                          // Verwendungungszweck der Werte Netzlokation
	// Konfigurationsprodukte is missing the Marktteilnehmer because adding it causes a serious issue: "could not import github.com/hochfrequenz/go-bo4e/bo (-: import cycle not allowed in test) (typecheck)".
	Konfigurationsprodukte     []com.Konfigurationsprodukt `json:"konfigurationsprodukte,omitempty"`     // Produkt-Daten der Netzlokation
	EigenschaftMSBLokation     *marktrolle.Marktrolle      `json:"eigenschaftMSBLokation,omitempty"`     // Eigenschaft des Messstellenbetreibers an der Lokation
	LokationsbuendelObjektcode *string                     `json:"lokationsbuendelObjektcode,omitempty"` // Lokationsbuendel-Code, der die Funktion dieses BOs an der Lokationsbuendelstruktur beschreibt.
}

Netzlokation is a minimalistic implementation of the BO Netzlokation. But this small implementation alone, allows use to unmarshall boneycombs that contain Netzlokation-BOs

func (Netzlokation) GetDefaultJsonTags added in v0.14.0

func (_ Netzlokation) GetDefaultJsonTags() []string

type Netznutzungsrechnung added in v0.0.12

type Netznutzungsrechnung struct {
	Rechnung
	Sparte               sparte.Sparte                 `json:"sparte,omitempty" validate:"required"`                                     // Sparte (STROM, GAS ...) für die die Rechnung ausgestellt ist
	Absendercodenummer   string                        `json:"absendercodenummer,omitempty" validate:"required,numeric,min=13,max=13"`   // Absendercodenummer ist die Rollencodenummer des Absenders (Rechnung.Rechnungsersteller). Über die Nummer können weitere Informationen zum Marktteilnehmer ermittelt werden.
	Empfaengercodenummer string                        `json:"empfaengercodenummer,omitempty" validate:"required,numeric,min=13,max=13"` // Absendercodenummer ist die Rollencodenummer des Empfängers (Rechnung.Rechnungsempfaenger). Über die Nummer können weitere Informationen zum Marktteilnehmer ermittelt werden.
	Nnrechnungsart       nnrechnungsart.NNRechnungsart `json:"nnrechnungsart,omitempty" validate:"required"`                             // Nnrechnungsart ist aus der INVOIC entnommen
	Nnrechnungstyp       nnrechnungstyp.NNRechnungstyp `json:"nnrechnungstyp,omitempty" validate:"required"`                             // Nnrechnungstyp ist aus der INVOIC entnommen
	Original             bool                          `json:"original"`                                                                 // Original ist ein Kennzeichen, ob es sich um ein Original (true) oder eine Kopie handelt (false).
	Simuliert            bool                          `json:"simuliert"`                                                                // Simuliert ist ein Kennzeichen, ob es sich um eine simulierte Rechnung, z.B. zur Rechnungsprüfung handelt.
	LokationsId          string                        `json:"lokationsId,omitempty" validate:"omitempty,alphanum,max=33,min=11"`        // LokationsId ist die Markt- oder Messlokations-Identifikation (als Malo/Melo-Id) der Lokation, auf die sich die Rechnung bezieht.
}

Netznutzungsrechnung models grid usage invoices

func (Netznutzungsrechnung) GetDefaultJsonTags added in v0.0.37

func (_ Netznutzungsrechnung) GetDefaultJsonTags() []string

type Preisblatt added in v0.0.34

type Preisblatt struct {
	Geschaeftsobjekt
	Bezeichnung     string                   `json:"bezeichnung" validate:"required"`           // Rechnungstitel ist die Bezeichnung für die vorliegende Rechnung.
	Sparte          *sparte.Sparte           `json:"sparte,omitempty" validate:"required"`      // Preisblatt gilt für angegebene Sparte.
	Preisstatus     *preisstatus.Preisstatus `json:"preisstatus,omitempty" validate:"required"` // Merkmal, das anzeigt, ob es sich um vorläufige oder endgültige Preise handelt
	Herausgeber     Marktteilnehmer          `json:"herausgeber" validate:"required"`           // Der Marktteilnehmer, der die Preise veröffentlicht hat. Details zum Marktteilnehmer
	Gueltigkeit     com.Zeitraum             `json:"gueltigkeit" validate:"required"`           // Der Zeitraum für den der Preis festgelegt ist
	Preispositionen []com.Preisposition      `json:"preispositionen" validate:"required"`       // Die einzelnen Positionen, die mit dem Preisblatt abgerechnet werden können. Z.B. Arbeitspreis, Grundpreis etc
}

Das allgemeine Modell zur Abbildung von Preisen. Davon abgeleitet können, über die Zuordnung identifizierender Merkmale, spezielle Preisblatt-Varianten modelliert werden. Die jeweiligen Sätze von Merkmalen sind in der Grafik ergänzt worden und stellen jeweils eine Ausprägung für die verschiedenen Anwendungsfälle der Preisblätter dar.

func (Preisblatt) GetDefaultJsonTags added in v0.0.37

func (_ Preisblatt) GetDefaultJsonTags() []string

type Rechnung added in v0.0.9

type Rechnung struct {
	Geschaeftsobjekt
	Rechnungstitel          string                                 `json:"rechnungstitel,omitempty"`                                             // Rechnungstitel ist die Bezeichnung für die vorliegende Rechnung.
	Rechnungsstatus         rechnungsstatus.Rechnungsstatus        `json:"rechnungsstatus,omitempty"`                                            // Rechnungsstatus ist der Status der Rechnung zur Kennzeichnung des Bearbeitungsstandes
	Storno                  bool                                   `json:"storno" validate:"required"`                                           // Storno ist eine Kennzeichnung, ob es sich um eine Stornorechnung handelt. Im Falle "true" findet sich im Attribut "originalrechnungsnummer" die Nummer der Originalrechnung
	Rechnungsnummer         string                                 `json:"rechnungsnummer,omitempty" validate:"required"`                        // Rechnungsnummer ist eine im Verwendungskontext eindeutige Nummer für die Rechnung
	Rechnungsdatum          time.Time                              `json:"rechnungsdatum,omitempty" validate:"required"`                         // Rechnungsdatum ist das Ausstellungsdatum der Rechnung
	Faelligkeitsdatum       time.Time                              `json:"faelligkeitsdatum,omitempty" validate:"required"`                      // Faelligkeitsdatum ist das Datum, zu dem die Zahlung fällig ist
	Rechnungstyp            rechnungstyp.Rechnungstyp              `json:"rechnungstyp,omitempty" validate:"required"`                           // Rechnungstyp ist ein kontextbezogener Rechnungstyp
	OriginalRechnungsnummer string                                 `json:"originalRechnungsnummer,omitempty" validate:"required_if=Storno true"` // OriginalRechnungsnummer: Im Falle einer Stornorechnung (Storno = true) steht hier die Rechnungsnummer der stornierten Rechnung
	Rechnungsperiode        com.Zeitraum                           `json:"rechnungsperiode,omitempty" validate:"required"`                       // Rechnungsperiode ist der Zeitraum der zugrunde liegenden Lieferung zur Rechnung
	Rechnungsersteller      Geschaeftspartner                      `json:"rechnungsersteller,omitempty" validate:"required"`                     // Rechnungsersteller ist der Aussteller der Rechnung
	Rechnungsempfaenger     Geschaeftspartner                      `json:"rechnungsempfaenger,omitempty" validate:"required"`                    // Rechnungsempfaenger ist der Empfänger der Rechnung
	GesamtNetto             com.Betrag                             `json:"gesamtnetto,omitempty" validate:"required"`                            // GesamtNetto ist die Summe der Nettobeträge der Rechnungsteile
	GesamtSteuer            com.Betrag                             `json:"gesamtsteuer,omitempty" validate:"required"`                           // GesamtSteuer ist die Summe der Steuerbeträge der Rechnungsteile
	GesamtBrutto            com.Betrag                             `json:"gesamtbrutto,omitempty" validate:"required"`                           // GesamtBrutto ist die Summe aus Netto- und Steuerbeträge
	Vorausgezahlt           *com.Betrag                            `json:"vorausgezahlt,omitempty"`                                              // Vorausgezahlt ist die Summe eventuell vorausbezahlter Beträge, z.B. Abschläge. Angabe als Bruttowert.
	RabattBrutto            *com.Betrag                            `json:"rabattBrutto,omitempty"`                                               // RabattBrutto ist der Gesamtrabatt auf den Bruttobetrag
	Zuzahlen                com.Betrag                             `json:"zuzahlen,omitempty" validate:"required"`                               // Zuzahlen ist der zu zahlende Betrag, der sich aus (gesamtbrutto - vorausbezahlt - rabattBrutto) ergibt
	Steuerbetraege          []com.Steuerbetrag                     `json:"steuerbetraege,omitempty"`                                             // Steuerbetraege ist eine Liste mit Steuerbeträgen pro Steuerkennzeichen/Steuersatz. Die Summe dieser Beträge ergibt den Wert für GesamtSteuer
	IstReverseCharge        *bool                                  `json:"istReverseCharge,omitempty"`
	IstSelbstausgestellt    *bool                                  `json:"istSelbstausgestellt,omitempty"`
	Rechnungspositionen     []com.Rechnungsposition                `json:"rechnungspositionen,omitempty" validate:"required,min=1"` // Rechnungspositionen sind die einzelnen Rechnungsposition en.
	Vorauszahlungen         []com.Vorauszahlung                    `json:"vorauszahlungen,omitempty"`                               // Vorauszahlungen sind evtl. vorausgezahlte Beträge, z.B. Abschläge. Angabe als Bruttowert
	Sonderrechnungsart      *sonderrechnungsart.Sonderrechnungsart `json:"sonderrechnungsart,omitempty"`
	Buchungsdatum           time.Time                              `json:"buchungsdatum,omitempty"` // Buchungsdatum ist das Datum, zu dem die Zahlung fällig ist
}

Rechnung ist ein Modell für die Abbildung von Rechnungen im Kontext der Energiewirtschaft. Ausgehend von diesem Basismodell werden weitere spezifische Formen abgeleitet.

func (Rechnung) GetDefaultJsonTags added in v0.0.37

func (_ Rechnung) GetDefaultJsonTags() []string

type Reklamation added in v0.0.41

type Reklamation struct {
	Geschaeftsobjekt
	LokationsId                string                              `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId gibt die ID der Lokation an (entweder LokationsTyp MALO ID (11 Stellen) oder LokationsTyp MELO ID (33 alphanum)).
	LokationsTyp               lokationstyp.Lokationstyp           `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"`                                                    // LokationsTyp gibt an, ob es sich um eine Markt- oder Messlokation handelt.
	Reklamationsgrund          reklamationsgrund.Reklamationsgrund `json:"reklamationsgrund,omitempty" validate:"required"`                                                              // Reklamationsgrund gibt den Grund der Reklamation an
	ObisKennzahl               *string                             `json:"obisKennzahl,omitempty" validate:"required" example:"1-0:1.8.1"`                                               // ObisKennzahl für das Zählwerk, die festlegt, welche auf die gemessene Größe mit dem Stand gemeldet wird. Nur Zählwerkstände mit dieser OBIS-Kennzahl werden an diesem Zählwerk registriert.
	ZeitraumMesswertanfrage    *com.Zeitraum                       `json:"zeitraumMesswertanfrage,omitempty" validate:"required"`                                                        // ZeitraumMesswertanfrage gibt den com.Zeitraum an, auf die sich die Reklamation bezieht.
	ReklamationsgrundBemerkung string                              `json:"reklamationsgrundBemerkung,omitempty" validate:"omitempty"`                                                    // ReklamationsgrundBemerkung ist ein Freitext für eine weitere Beschreibung des Reklamationsgrunds
	Positionsnummer            int                                 `json:"positionsnummer,omitempty" validate:"omitempty"`                                                               // Positionsnummer ist eine fortlaufende Nummer für die Position
}

Reklamation wird benutzt um eine fehlende, oder unplausible Energiemenge anzuzeigen. Für Reklamationen von Rechnungen, wird ein Avis vom Typ Nicht-Zahlungsavis benutzt

func (Reklamation) GetDefaultJsonTags added in v0.0.41

func (_ Reklamation) GetDefaultJsonTags() []string

type Statusbericht added in v0.2.2

type Statusbericht struct {
	Geschaeftsobjekt
	Status          berichtstatus.BerichtStatus `json:"status,omitempty"  validate:"required"` // Status des Berichtes (Fehlerhaft, Erfolgreich)
	Pruefgegenstand *string                     `json:"pruefgegenstand,omitempty"`             //  Das geprüfte Dokument, z.B. die Referenz auf die EDIFACT-Nachricht die geprüft / beanstandet wurde
	DatumPruefung   time.Time                   `json:"datumPruefung"`                         // Pruefdatum (wann wurde der Pruefgegenstand geprüft)
	Fehler          *com.Fehler                 `json:"fehler,omitempty"`                      // Liste der Fehler
}

Statusbericht kann verwendet werden um CONTRL oder APREAK Nachrichten auszutauschen

func (Statusbericht) GetDefaultJsonTags added in v0.2.2

func (s Statusbericht) GetDefaultJsonTags() []string

type SteuerbareRessource added in v0.7.2

type SteuerbareRessource struct {
	Geschaeftsobjekt
	SteuerbareRessourceId             string                                                               `json:"steuerbareRessourceId" validate:"required"` // Identifikationsnummer einer SteuerbareRessource
	SteuerkanalsLeistungsbeschreibung *steuerkanalsleistungsbeschreibung.Steuerkanalsleistungsbeschreibung `json:"steuerkanalsLeistungsbeschreibung"`         // Leistungsbeschreibung des Steuerkanals
	ZugeordnetMSBCodeNr               *string                                                              `json:"zugeordnetMSBCodeNr"`                       // Angabe des Messstellenbetreibers, der der Steuerbaren Ressource zugeordnet ist
}

func (SteuerbareRessource) GetDefaultJsonTags added in v0.7.2

func (_ SteuerbareRessource) GetDefaultJsonTags() []string

type Summenzeitreihe added in v0.14.0

type Summenzeitreihe struct {
	Geschaeftsobjekt
}

Summenzeitreihe is a minimalistic implementation of the BO Summenzeitreihe. But this small implementation alone, allows use to unmarshall boneycombs that contain Summenzeitreihe-BOs

func (Summenzeitreihe) GetDefaultJsonTags added in v0.14.0

func (_ Summenzeitreihe) GetDefaultJsonTags() []string

type TechnischeRessource added in v0.8.2

type TechnischeRessource struct {
	Geschaeftsobjekt
	TechnischeRessourceId            *string                                                            `json:"technischeRessourceId" validate:"required"`                                                                             //Identifikationsnummer einer TechnischeRessource
	VorgelagerteMesslokationsId      *string                                                            `json:"vorgelagerteMesslokationsId,omitempty" example:"DE00713739359S0000000000001222221" validate:"alphanum,required,len=33"` // Vorgelagerte Messlokation ID
	ZugeordneteMarktlokationsId      *string                                                            `json:"zugeordneteMarktlokationsId,omitempty" example:"20072281644"`                                                           // ZugeordneteMarktlokationsId Messlokation ID
	ZugeordneteSteuerbareRessourceId *string                                                            `json:"zugeordneteSteuerbareRessourceId" example:"20072281644"`                                                                // Referenz auf die der Technischen Ressource zugeordneten Steuerbaren Ressource
	NennleistungAufnahme             *com.Menge                                                         `json:"nennleistungAufnahme" example:"QTY+Z43:100:KWT"`                                                                        // Nennleistung (Aufnahme)
	NennleistungAbgabe               *com.Menge                                                         `json:"nennleistungAbgabe" example:"QTY+Z44:100:KWT"`                                                                          //Nennleistung (Abgabe)
	Speicherkapazitaet               *com.Menge                                                         `json:"speicherkapazitaet" example:"QTY+Z42:100:KWH"`                                                                          //Speicherkapazität
	TechnischeRessourceNutzung       *technischeressourcenutzung.TechnischeRessourceNutzung             `json:"technischeRessourceNutzung" example:"CCI+Z17"`                                                                          //Art und Nutzung der Technischen Ressource
	Verbrauchsart                    *technischeressourceverbrauchsart.TechnischeRessourceVerbrauchsart `json:"verbrauchsart" example:"CAV+Z64" `                                                                                      //Verbrauchsart der Technischen Ressource
	Waermenutzung                    *waermenutzung.Waermenutzung                                       `json:"waermenutzung" example:"CAV+Z56"`                                                                                       //Wärmenutzung
	EMobilitaetsart                  *emobilitaetsart.EMobilitaetsart                                   `json:"emobilitaetsart" example:"CAV+Z87"`                                                                                     //Art der E-Mobilität  Das Segment dient dazu, im Falle der E-Mobilität eine genauere Angabe über die Art der E-Mobilität zu definieren
	Erzeugungsart                    *erzeugungsart.Erzeugungsart                                       `json:"erzeugungsart" example:"CAV+ZF5"`                                                                                       //Art der Erzeugung der Energie
	Speicherart                      *speicherart.Speicherart                                           `json:"speicherart" example:"CAV+ZF7"`                                                                                         //Art der speicher. Details <see cref="ENUM.Speicherart" />
}

func (TechnischeRessource) GetDefaultJsonTags added in v0.8.2

func (_ TechnischeRessource) GetDefaultJsonTags() []string

type Tranche added in v0.8.2

type Tranche struct {
	Geschaeftsobjekt
	TrancheId        string              `json:"trancheId" validate:"required"`        // Identifikationsnummer einer Tranche, an der Energie entweder verbraucht, oder erzeugt wird (Like MarktlokationsId <see cref="Marktlokation"/>)
	Sparte           *sparte.Sparte      `json:"sparte" validate:"required"`           // Sparte der Tranche, z.B. Gas oder Strom. It is nullable because in the future it should be that way, although it is not nullable in BO4E-dotnet
	Aufteilungsmenge decimal.NullDecimal `json:"aufteilungsmenge" validate:"required"` // Prozentualer Anteil der Tranche an der erzeugenden Marktlokation in Prozent mit 2 Nachkommastellen
	ObisKennzahl     *string             `json:"obisKennzahl" validate:"required"`     // Die OBIS-Kennzahl für die Tranche, die festlegt, welche auf die gemessene Größe mit dem Stand gemeldet wird.
}

func (Tranche) GetDefaultJsonTags added in v0.8.2

func (_ Tranche) GetDefaultJsonTags() []string

type Vertrag added in v0.0.5

type Vertrag struct {
	Geschaeftsobjekt
	Vertragsnummer *string                        `json:"vertragsnummer,omitempty" validate:"alphanum,required"` // Vertragsnummer ist eine im Verwendungskontext eindeutige Nummer für den Vertrag
	Beschreibung   *string                        `json:"beschreibung,omitempty"`                                // Beschreibung zum Vertrag
	Vertragsstatus *vertragsstatus.Vertragsstatus `json:"vertragstatus,omitempty" validate:"required"`           // Vertragsstatus ist der Status des Vertrags
	// vertragsstatus serializes as "vertragstatus" with single "s" for compatability.
	Vertragsart         *vertragsart.Vertragsart `json:"vertragsart,omitempty" validate:"required"`                         // Vertragsart legt fest, um welche Art von Vertrag es sich handelt. Z.B. Netznutzungvertrag.
	Sparte              sparte.Sparte            `json:"sparte,omitempty" validate:"required"`                              // Sparte sind Unterscheidungsmöglichkeiten für die Sparte
	Vertragsbeginn      time.Time                `json:"vertragsbeginn,omitempty" validate:"required"`                      // Vertragsbeginn is the inclusive start
	Vertragsende        *time.Time               `json:"vertragsende,omitempty" validate:"required,gtfield=Vertragsbeginn"` // Vertragsende is the exclusive end
	Vertragspartner1    *Geschaeftspartner       `json:"vertragspartner1,omitempty" validate:"required"`                    // Vertragspartner1 ist der "erstgenannte" Vertragspartner. In der Regel der Aussteller des Vertrags. Beispiel: "Vertrag zwischen Vertragspartner 1 ..."
	Vertragspartner2    *Geschaeftspartner       `json:"vertragspartner2,omitempty" validate:"required"`                    // Vertragspartner2 ist der "zweitgenannte" Vertragspartner. In der Regel der Empfänger des Vertrags. Beispiel "Vertrag zwischen Vertragspartner 1 und Vertragspartner 2"
	UnterzeichnerVp1    []com.Unterschrift       `json:"unterzeichnervp1,omitempty"`                                        // UnterzeichnerVp1 ist der Unterzeichner des Vertragspartner1
	UnterzeichnerVp2    []com.Unterschrift       `json:"unterzeichnervp2,omitempty"`                                        // UnterzeichnerVp2 ist der Unterzeichner des Vertragspartner2
	Vertragskonditionen *com.Vertragskonditionen `json:"vertragskonditionen,omitempty"`                                     // Vertragskonditionen ist eine Festlegungen zu Laufzeiten und Kündigungsfristen
	Vertragsteile       []com.Vertragsteil       `json:"vertragsteile,omitempty" validate:"required,min=1"`                 // Vertragsteile sind die Vertragsteile, die dazu verwendet werden, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen.
	Gemeinderabatt      decimal.NullDecimal      `json:"gemeinderabatt" validate:"required"`                                // Gemeinderabatt für EDIFACT mapping.
}

Vertrag ist ein Modell für die Abbildung von Vertragsbeziehungen. Das Objekt dient dazu, alle Arten von Verträgen, die in der Energiewirtschaft Verwendung finden, abzubilden.

func (Vertrag) GetDefaultJsonTags added in v0.0.37

func (_ Vertrag) GetDefaultJsonTags() []string

type Zaehler added in v0.0.7

type Zaehler struct {
	Geschaeftsobjekt
	Zaehlernummer      string                                 `json:"zaehlernummer,omitempty" validate:"required,alphanum"` // Zaehlernummer ist eine Nummerierung des Zaehlers, vergeben durch den Messstellenbetreiber
	Sparte             sparte.Sparte                          `json:"sparte,omitempty" validate:"required"`                 // Sparte ist eine Unterscheidungsmöglichkeit für die Sparte
	Zaehlerauspraegung *zaehlerauspraegung.Zaehlerauspraegung `json:"zaehlerauspraegung,omitempty"`                         // Zaehlerauspraegung ist eine Spezifikation die Richtung des Zählers betreffend
	Zaehlertyp         *zaehlertyp.Zaehlertyp                 `json:"zaehlertyp,omitempty" validate:"required"`             // Zaehlertyp erlaubt eine Typisierung des Zählers
	Tarifart           *tarifart.Tarifart                     `json:"tarifart,omitempty"`                                   // Tarifart erlaubt eine Spezifikation bezüglich unterstützter Tarifarten
	Zaehlerkonstante   decimal.NullDecimal                    `json:"zaehlerkonstante,omitempty"`                           // Zaehlerkonstante ist die Zählerkonstante auf dem Zähler
	EichungBis         time.Time                              `json:"eichungBis,omitempty"`                                 // EichungBis ist das exklusive Enddatum bis zu dem der Zähler geeicht ist
	LetzteEichung      time.Time                              `json:"letzteEichung,omitempty"`                              // LetzteEichung ist das Datum, an dem die letzte Eichprüfung des Zählers stattfand
	Zaehlwerke         []com.Zaehlwerk                        `json:"zaehlwerke,omitempty" validate:"required,min=1"`       // Zaehlwerke sind die Zählwerke des Zählers
	Zaehlerhersteller  *Geschaeftspartner                     `json:"zaehlerhersteller,omitempty"`                          // Zaehlerhersteller ist der Hersteller des Zählers
	Zaehlergroesse     *geraetemerkmal.Geraetemerkmal         `json:"zaehlergroesse,omitempty"`                             // Zaehlergroesse

	Fernschaltung     *fernschaltung.Fernschaltung         `json:"fernschaltung,omitempty"`     // Fernschaltung is set to VORHANDEN if there is a fernschaltung
	Messwerterfassung *messwerterfassung.Messwerterfassung `json:"messwerterfassung,omitempty"` // Messwerterfassung describes if meter readings have to happen manually
}

Zaehler ist ein Modell für die Abbildung der Informationen zu einem Zähler

func (Zaehler) GetDefaultJsonTags added in v0.0.37

func (_ Zaehler) GetDefaultJsonTags() []string

type Zaehlzeitdefinition added in v0.12.0

type Zaehlzeitdefinition struct {
	Geschaeftsobjekt
	Beginndatum            *time.Time                                           `json:"beginndatum,omitempty"`
	Endedatum              *time.Time                                           `json:"endedatum,omitempty"`
	Version                time.Time                                            `json:"version,omitempty"`
	Notwendigkeit          *definitionennotwendigkeit.DefinitionenNotwendigkeit `json:"notwendigkeit,omitempty"`
	Zaehlzeiten            []com.Zaehlzeit                                      `json:"zaehlzeiten,omitempty"`
	Zaehlzeitregister      []com.Zaehlzeitregister                              `json:"zaehlzeitregister,omitempty"`
	AusgerollteZaehlzeiten []com.AusgerollteZaehlzeit                           `json:"ausgerollteZaehlzeiten,omitempty"`
}

Zaehlzeitdefinition en nutzt der NB bzw. LF für die Tarifierung von Werten. Zaehlzeitdefinitionen werden in der Marktkommunikation mit Prüfidentifikator 25001 (UTILTS) übermittelt. Eine Zählzeitdefinition umfasst dabei eine Liste von möglichen Zählzeiten, den dazugehörigen Registern und der tatsächlich ausgerollten Zählzeit (wenn diese elektronisch übermittelt wird).

func (Zaehlzeitdefinition) GetDefaultJsonTags added in v0.12.0

func (_ Zaehlzeitdefinition) GetDefaultJsonTags() []string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL