com

package
v0.0.35 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2022 License: MIT Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AdresseStructLevelValidation

func AdresseStructLevelValidation(sl validator.StructLevel)

AdresseStructLevelValidation does a cross check on a Adresse object

func RechnungspositionStructLevelValidation added in v0.0.9

func RechnungspositionStructLevelValidation(sl validator.StructLevel)

RechnungspositionStructLevelValidation does a cross check on a Rechnungsposition object

func SteuerbetragStructLevelValidation added in v0.0.9

func SteuerbetragStructLevelValidation(sl validator.StructLevel)

SteuerbetragStructLevelValidation does a cross check on a Steuerbetrag object and checks if Steuerbetrag.Steuerkennzeichen, Steuerbetrag.Basiswert and Steuerbetrag.Steuerbetrag are consistent

Types

type Adresse

type Adresse struct {
	Postleitzahl string                `json:"postleitzahl,omitempty" example:"82031" validate:"numeric,required"` // Postleitzahl is the zip code, mandatory
	Ort          string                `json:"ort,omitempty" example:"Grünwald" validate:"alphaunicode,required"`  // Ort is the city name, mandatory
	Strasse      string                `json:"strasse,omitempty" example:"Nördliche Münchner Straße 27A"`          // Strasse is the street name
	Hausnummer   string                `json:"hausnummer,omitempty" example:"27A"`                                 // Hausnummer is the house number including suffixes like "a" or "-1"
	Postfach     string                `json:"postfach,omitempty"`                                                 // Postfach is a post box
	Adresszusatz string                `json:"adresszusatz,omitempty" example:"3. Stock linke Wohnung"`            // Adresszusatz are additional data, like f.e. floor or "Hinterhaus"
	CoErgaenzung string                `json:"co_ergaenzung,omitempty" example:"c/o Veronica Hauptmieterin"`       //
	Landescode   landescode.Landescode `json:"landescode,omitempty"`                                               // Landescode is a ISO 3166 country code
}

Adresse is a general purpose address struct

type Betrag added in v0.0.9

type Betrag struct {
	Wert     decimal.Decimal             `json:"wert" example:"18.36" validate:"required"`             // Wert is the amount
	Waehrung waehrungscode.Waehrungscode `json:"waehrung,omitempty" example:"EUR" validate:"required"` // Waehrung is the currency
}

Betrag wird dazu verwendet, Summenbeträge - beispielsweise in Angeboten und Rechnungen - als Geldbeträge abzubilden. Die Einheit ist dabei immer die Hauptwährung also Euro, Dollar etc

type Dienstleistung added in v0.0.3

type Dienstleistung struct {
	DienstleistungsTyp dienstleistung.Dienstleistungstyp `json:"dienstleistungstyp,omitempty" validate:"required"`       // DienstleistungsTyp describes the type of the service
	Bezeichnung        string                            `json:"bezeichnung,omitempty" validate:"alphaunicode,required"` // Bezeichnung is a description
}

A Dienstleistung is a billable Service

type ExterneReferenz added in v0.0.3

type ExterneReferenz struct {
	ExRefName string `json:"exRefName" validate:"required"` // ExRefName is the name of the external reference (e.g. "SAP IS-U" or "BelVis ID"
	ExRefWert string `json:"exRefWert" validate:"required"` // ExRefWert is the value of the external reference, usually a unique value
}

ExterneReferenz models the existence of an object in another system and defines a way to reference it there

type Geokoordinaten added in v0.0.3

type Geokoordinaten struct {
	Breitengrad decimal.Decimal `json:"breitengrad" validate:"latitude"`  // Breitengrad is the latitude
	Laengengrad decimal.Decimal `json:"laengengrad" validate:"longitude"` // Laengengrad is the longitude
}

Geokoordinaten are GPS coordinates

type Hardware added in v0.0.3

type Hardware struct {
	GeraeteTyp  geraetetyp.Geraetetyp `json:"geraeteTyp,omitempty" validate:"required"`               // GeraeteTyp type of the hardware
	Bezeichnung string                `json:"bezeichnung,omitempty" validate:"alphaunicode,required"` // Bezeichnung is a description
}

A Hardware is a billable device

type Katasteradresse added in v0.0.3

type Katasteradresse struct {
	// ToDo: why is this `gemarkung_flur` and not `gemarkungFlur`
	GemarkungFlur string `json:"gemarkung_flur,omitempty" validate:"required"` // GemarkungFlur is the district in which something is located
	Flurstueck    string `json:"flurstueck,omitempty" validate:"required"`     // Flurstueck describes the parcel
}

Katasteradresse is a cadastre location

type Lastprofil added in v0.0.21

type Lastprofil struct {
	Bezeichnung    string                          `json:"bezeichnung,omitempty" validate:"omitempty,alphanum" example:"H0"` // Bezeichnung des Profils, durch DVGW bzw. den Netzbetreiber vergeben
	Verfahren      profilverfahren.Profilverfahren `json:"verfahren,omitempty"`                                              // Verfahren des Profils (analytisch oder synthetisch)
	Einspeisung    *bool                           `json:"einspeisung,omitempty"`                                            // Einspeisung ist true, falls es sich um Einspeisung handelt
	Tagesparameter *Tagesparameter                 `json:"tagesparameter,omitempty"`                                         // Tagesparameter contains the Klimazone or Temperaturmessstelle
}

Lastprofil defines a Lastprofil (no shit, sherlock) Note that this component is not official BO4E standard (yet)!

type Menge added in v0.0.5

type Menge struct {
	Wert    decimal.Decimal             `json:"wert" validate:"required"`              // Wert gibt den absoluten Wert der Menge an
	Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required"` // Einheit gibt die Einheit zum jeweiligen Wert an
}

Menge ist die Abbildung einer Menge mit Wert und Einheit.

type Messlokationszuordnung added in v0.0.18

type Messlokationszuordnung struct {
	MesslokationsId string                                        `json:"messlokationsId,omitempty" validate:"required,alphanum,len=33"` // MesslokationsId, früher die Zählpunktbezeichnung.
	Arithmetik      arithmetischeoperation.ArithmetischeOperation `json:"arithmetik,omitempty" validate:"required"`                      // Arithmetik ist die Operation, mit der eine Messung an dieser Lokation für den Gesamtverbrauch der Marktlokation verrechnet wird. Beispielsweise bei einer Untermessung, wird der Verbauch der Untermessung subtrahiert.
	GueltigSeit     time.Time                                     `json:"gueltigSeit,omitempty" validate:"ltefield=GueltigBis"`          // GueltigSeit ist der inklusive Zeitpunkt, ab dem die Messlokation zur Marktlokation gehört
	GueltigBis      time.Time                                     `json:"gueltigBis,omitempty" validate:"gtefield=GueltigSeit"`          // GueltigBis ist der exklusive Zeitpunkt, bis zu dem die Messlokation zur Marktlokation gehört
}

Messlokationszuordnung. Mit dieser Komponente werden Messlokationen zu Marktlokationen zugeordnet. Dabei kann eine arithmetische Operation (Addition, Subtraktion) angegeben werden, mit der die Messlokation zum Verbrauch der Marklokation beiträgt.

type Preis added in v0.0.9

type Preis struct {
	Wert       decimal.Decimal                   `json:"wert" validate:"required"`                 // Wert gibt die nominale Höhe des Preises an
	Einheit    waehrungseinheit.Waehrungseinheit `json:"einheit,omitempty" validate:"required"`    // Einheit ist die Währungseinheit für den Preis
	Bezugswert mengeneinheit.Mengeneinheit       `json:"bezugswert,omitempty" validate:"required"` // Bezugswert ist eine Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh
	Status     preisstatus.Preisstatus           `json:"status,omitempty"`                         // Status gibt den Status des veröffentlichten Preises an
}

Preis is a price

type Preisposition added in v0.0.34

type Preisposition struct {
	Berechnungsmethode kalkulationsmethode.Kalkulationsmethode `json:"berechnungsmethode,omitempty" validate:"required"` //	Das Modell, das der Preisbildung zugrunde liegt. Details siehe ENUM Kalkulationsmethode
	Leistungstyp       leistungstyp.Leistungstyp               `json:"leistungstyp,omitempty" validate:"required"`       // Standardisierte Bezeichnung für die abgerechnete Leistungserbringung. Details siehe ENUM Leistungstyp
	//Leistungsbezeichung string	// Bezeichnung für die in der Position abgebildete Leistungserbringung
	Preiseinheit             waehrungseinheit.Waehrungseinheit    `json:"preiseinheit,omitempty" validate:"required"`             // Festlegung, mit welcher Preiseinheit abgerechnet wird, z.B. Ct. oder €
	Bezugsgroesse            mengeneinheit.Mengeneinheit          `json:"bezugsgroesse,omitempty" validate:"required"`            // Hier wird festgelegt, auf welche Bezugsgrösse sich der Preis bezieht, z.B. kWh oder Stück
	Zeitbasis                *zeiteinheit.Zeiteinheit             `json:"zeitbasis,omitempty" validate:"required"`                // Die Zeit(dauer) auf die sich der Preis bezieht. Z.B. ein Jahr für einen Leistungspreis der in €/kW/Jahr ausgegeben wird
	Tarifzeit                *tarifzeit.Tarifzeit                 `json:"tarifzeit,omitempty" validate:"required"`                // Festlegung, für welche Tarifzeit der Preis hier festgelegt ist
	BDEWArtikelnummer        *bdewartikelnummer.BDEWArtikelnummer `json:"bdewartikelnummer,omitempty" validate:"required"`        // Eine vom BDEW standardisierte Bezeichnug für die abgerechnete Leistungserbringung. Diese Artikelnummer wird auch im Rechnungsteil der INVOIC verwendet
	ArtikelId                *artikelid.ArtikelId                 `json:"artikelid,omitempty" validate:"required"`                // Standardisierte vom BDEW herausgegebene Liste, welche im Strommarkt die BDEW-Artikelnummer ablöst
	Zonungsgroesse           *bemessungsgroesse.Bemessungsgroesse `json:"zonungsgroesse,omitempty" validate:"required"`           // Mit der Menge der hier angegebenen Größe wird die Staffelung/Zonung durchgeführt. Z.B. Vollbenutzungsstunden
	FreimengeBlindarbeit     decimal.NullDecimal                  `json:"freimengeBlindarbeit,omitempty" validate:"required"`     // Der Anteil der Menge der Blindarbeit in Prozent von der Wirkarbeit, für die keine Abrechnung erfolgt
	FreimengeLeistungsfaktor decimal.NullDecimal                  `json:"freimengeLeistungsfaktor,omitempty" validate:"required"` // Der cos phi (Verhältnis Wirkleistung/Scheinleistung) aus dem die Freimenge für die Blindarbeit berechnet wird als tan phi (Verhältnis Blindleistung/Wirkleistung)
	Preisstaffeln            []Preisstaffel                       `json:"preisstaffel" validate:"required"`                       // Preisstaffeln, die zu dieser Preisposition gehören
}

Preisposition is part of a Preisblatt and includes a price for a product or service

type Preisstaffel added in v0.0.34

type Preisstaffel struct {
	Einheitspreis    decimal.Decimal `json:"einheitspreis" validate:"required"` // Preis pro abgerechneter Mengeneinheit
	StaffelgrenzeVon decimal.Decimal `json:"staffelgrenzeVon,omitempty"`        // Unterer Wert, ab dem die Staffel gilt (inklusiv)
	StaffelgrenzeBis decimal.Decimal `json:"staffelgrenzeBis,omitempty"`        // Oberer Wert, bis zu dem die Staffel gilt (exklusiv) TODO Inklusivität/Exklusivität noch nicht global abgestimmt!

}

Preisstaffel is part of a Preisposition and includes a price for a distinct set of parameters

type Rechnungsposition added in v0.0.9

type Rechnungsposition struct {
	Positionsnummer   int                                 `json:"positionsnummer,omitempty" validate:"required"`                    // Positionsnummer ist eine fortlaufende Nummer für die Rechnungsposition
	LieferungVon      time.Time                           `json:"lieferungVon,omitempty" validate:"required"`                       // LieferungVon ist ein _inklusiver_ Start der Lieferung für die abgerechnete LEISTUNG
	LieferungBis      time.Time                           `json:"lieferungBis,omitempty" validate:"required,gtfield=LieferungVon"`  // LieferungBis ist ein _exklusives_ Ende der Lieferung für die abgerechnete LEISTUNG
	Positionstext     string                              `json:"positionstext,omitempty" validate:"required"`                      // Positionstext ist eine Bezeichung für die abgerechnete Position.
	Zeiteinheit       zeiteinheit.Zeiteinheit             `json:"zeiteinheit,omitempty"`                                            // Zeiteinheit wird angegeben, falls sich der Preis auf eine Zeit bezieht, steht hier die Einheit, z.B. JAHR
	Artikelnummer     bdewartikelnummer.BDEWArtikelnummer `json:"bdewartikelnummer,omitempty"`                                      // Artikelnummer ist eine Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW
	LokationsId       string                              `json:"lokationsId,omitempty" validate:"omitempty,min=11,max=11,numeric"` // LokationsId ist die MarktlokationsId zu der diese Position gehört
	PositionsMenge    Menge                               `json:"positionsMenge,omitempty" validate:"required"`                     // PositionsMenge ist die abgerechnete Menge mit Einheit. Z.B. 4372 kWh
	ZeitbezogeneMenge *Menge                              `json:"zeitbezogeneMenge,omitempty"`                                      // ZeitbezogeneMenge ist eine optionale, auf die Zeiteinheit bezogene Untermenge. Z.B. bei einem Jahrespreis, 3 Monate oder 146 Tage. Basierend darauf wird der Preis aufgeteilt
	Einzelpreis       Preis                               `json:"einzelpreis,omitempty" validate:"required"`                        // Einzelpreis ist der Preis für eine Einheit der energetischen Menge
	TeilsummeNetto    Betrag                              `json:"teilsummeNetto,omitempty" validate:"required"`                     // TeilsummeNetto ist das Ergebnis der Multiplikation aus einzelpreis * positionsMenge * (Faktor aus zeitbezogeneMenge). Z.B. 12,60€ * 120 kW * 3/12 (für 3 Monate).
	TeilsummeSteuer   Steuerbetrag                        `json:"teilsummeSteuer,omitempty" validate:"required"`                    // TeilsummeSteuer ist der auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag
	TeilrabattNetto   *Betrag                             `json:"teilrabattNetto,omitempty"`                                        // TeilrabattNetto ist der Rabatt für diese Position
}

Rechnungsposition en sind Teil von Rechnung en. In einem Rechnungsteil wird jeweils eine in sich geschlossene LEISTUNG abgerechnet.

type Rufnummer added in v0.0.21

type Rufnummer struct {
	Nummerntyp rufnummernart.Rufnummernart `json:"nummerntyp,omitempty" validate:"required"`                           // Nummerntyp ist die Ausprägung der Nummer
	Rufnummer  string                      `json:"rufnummer,omitempty" validate:"required" example:"4989209090153910"` // Rufnummer ist die konkrete Rufnummer
}

Rufnummer bildet eine Telefonnummer ab

type Steuerbetrag added in v0.0.9

type Steuerbetrag struct {
	Steuerkennzeichen steuerkennzeichen.Steuerkennzeichen `json:"steuerkennzeichen,omitempty" validate:"required" example:"UST19"` // Kennzeichnung des Steuersatzes, bzw. Verfahrens
	// Basiswert and Steuerwert are _not_ marked as required because the steuerwert 0 is actually valid
	Basiswert  decimal.Decimal             `json:"basiswert" example:"100"`                              // Basiswert ist der Nettobetrag für den die Steuer berechnet wurde
	Steuerwert decimal.Decimal             `json:"steuerwert" example:"19"`                              // Steuerwert ist die aus dem Basiswert berechnete Steuer
	Waehrung   waehrungscode.Waehrungscode `json:"waehrung,omitempty" example:"EUR" validate:"required"` // Waehrung is the currency
}

Steuerbetrag ist ein besteuerter Betrag

type Tagesparameter added in v0.0.21

type Tagesparameter struct {
	Klimazone            string `json:"klimazone,omitempty" validate:"required,alphanum" example:"7624q"`            // Klimazone is the qualifier of the climate zone
	Temperaturmessstelle string `json:"temperaturmessstelle,omitempty" validate:"required,alphanum" example:"1234x"` // Klimazone is the qualifier of the temperature measurement station
	Dienstanbieter       string `json:"dienstanbieter,omitempty" validate:"required_with=Temperaturmessstelle"`      // Dienstanbieter is the service provider for temperature measurements
}

Tagesparameter speichert Informationen zu einer tagesparameter-abhängigen Messstelle. z.B. den Namen einer Klimazone oder die ID der Wetterstation für die Temperaturmessstelle

type Unterschrift added in v0.0.5

type Unterschrift struct {
	Name  string    `json:"name,omitempty" validate:"required"`   // Name des Unterschreibers
	Datum time.Time `json:"datum,omitempty" validate:"omitempty"` // Datum der Unterschrift
	Ort   string    `json:"ort,omitempty" validate:"omitempty"`   // Ort, an dem die Unterschrift geleistet wird
}

Unterschrift ist die Modellierung einer Unterschrift, z.B. für Verträge, Angebote etc.

type Verbrauch added in v0.0.4

type Verbrauch struct {
	Startdatum               time.Time                                         `json:"startdatum,omitempty" validate:"omitempty"`                      // Startdatum is an inclusive start
	Enddatum                 time.Time                                         `json:"enddatum,omitempty" validate:"omitempty,gtfield=Startdatum"`     // Enddatum is an exclusive end
	Wertermittlungsverfahren wertermittlungsverfahren.Wertermittlungsverfahren `json:"wertermittlungsverfahren,omitempty" validate:"required"`         // Wertermittlungsverfahren is the type of the consumption
	Obiskennzahl             string                                            `json:"obiskennzahl,omitempty" validate:"required" example:"1-0:1.8.1"` // Obiskennzahl is the OBIS Kennzahl // (?<power>(1)-((?:[0-5]?[0-9])|(?:6[0-5])):((?:[1-8]|99))\.((?:6|8|9|29))\.([0-9]{1,2}))||(?<gas>)(7)-((?:[0-5]?[0-9])|(?:6[0-5])):(.{1,2})\.(.{1,2})\.([0-9]{1,2})
	Wert                     decimal.Decimal                                   `json:"wert,omitempty" validate:"required" example:"17"`                // Wert is the value (of einheit)
	Einheit                  mengeneinheit.Mengeneinheit                       `json:"einheit,omitempty" validate:"required" example:"KWH"`            // Einheit is the unit (associated to the wert)
}

Verbrauch is a a consumption during a specific time frame

type Vertragskonditionen added in v0.0.5

type Vertragskonditionen struct {
	Beschreibung          string    `json:"beschreibung,omitempty"`                               // Beschreibung ist ein Freitext zur Beschreibung der Konditionen, z.B. "Standardkonditionen Gas"
	AnzahlAbschlaege      int       `json:"anzahlAbschlaege,omitempty"`                           // AnzahlAbschlaege enthält die Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12
	Vertragslaufzeit      *Zeitraum `json:"vertragslaufzeit,omitempty" validate:"omitempty"`      // Vertragslaufzeit enthält den Zeitraum, über den dieser Vertrag läuft
	Kuendigungsfrist      *Zeitraum `json:"kuendigungsfrist,omitempty" validate:"omitempty"`      // Kuendigungsfrist ist die Frist, innerhalb derer der Vertrag gekündigt werden kann
	Vertragsverlaengerung *Zeitraum `json:"vertragsverlaengerung,omitempty" validate:"omitempty"` // Vertragsverlaengerung beschreibt, dass, falls der Vertrag nicht gekündigt wird, er sich automatisch um die angegebene Zeit verlängert
	Abschlagszyklus       *Zeitraum `json:"abschlagszyklus,omitempty" validate:"omitempty"`       // Abschlagszyklus sind die Zyklen, in denen Abschläge erstellt werden. Alternativ kann auch die Anzahl in den Konditionen angeben werden.

	StartAbrechnungsjahr    time.Time                                       `json:"startAbrechnungsjahr,omitempty"`                               // StartAbrechnungsjahr ist der Beginn des Abrechnungsjahres
	GeplanteTurnusablesung  *Zeitraum                                       `json:"geplanteTurnusablesung,omitempty" validate:"omitempty"`        // GeplanteTurnusablesung beschreibt die geplante Turnusablesung
	TurnusablesungIntervall *int                                            `json:"turnusablesungIntervall,omitempty" validate:"omitempty,min=1"` // Das TurnusablesungIntervall beschreibt die Anzahl Monate die zwischen zwei Ablesungen liegen
	Netznutzungsabrechnung  *Zeitraum                                       `json:"netznutzungsabrechnung,omitempty" validate:"omitempty"`        // Netznutzungsabrechnung ist der Zeitraum der bei der Netznutzung abgerechnet wird
	Haushaltskunde          *bool                                           `json:"haushaltskunde,omitempty" validate:"omitempty"`                // Haushaltskunde ist true, wenn es sich um einen privat/Haushaltskunden handelt
	Netznutzungsvertragsart netznutzungsvertragsart.Netznutzungsvertragsart `json:"netznutzungsvertrag,omitempty"`                                // Netznutzungsvertragsart beschreibt, zwischen welchen Vertragspartnern der Vertrag besteht
	// the json tag is "netznutzungsvertrag" for consistency with the dotnet-implementation
	Netznutzungszahler               netznutzungszahler.Netznutzungszahler                             `json:"netznutzungszahler,omitempty"`
	Netznutzungsabrechnungsvariante  netznutzungsabrechnungsvariante.Netznutzungsabrechnungsvariante   `json:"netznutzungsabrechnungsvariante,omitempty"`
	Netznutzungsabrechnungsgrundlage netznutzungsabrechnungsgrundlage.Netznutzungsabrechnungsgrundlage `json:"netznutzungsabrechnungsgrundlage,omitempty"`
}

Vertragskonditionen ist eine Komponente zur Abbildung von Vertragskonditionen. Die Komponente wird sowohl im Vertrag als auch im Tarif verwendet.

type Vertragsteil added in v0.0.5

type Vertragsteil struct {
	Vertragsteilbeginn       time.Time `json:"vertragsteilbeginn,omitempty" validate:"required"`                          // Vertragsteilbeginn ist der inklusive Start der Gültigkeit des Vertragsteils
	Vertragsteilende         time.Time `json:"vertragsteilende,omitempty" validate:"required,gtfield=Vertragsteilbeginn"` // Vertragsteilende ist das exklusive Ende der Gültigkeit des Vertragsteils
	Lokation                 string    `json:"lokation,omitempty" validate:"omitempty,alphanum,min=11,max=33"`            // Lokation ist der Identifier für diejenigen Markt- oder Messlokation, die zu diesem Vertragsteil gehören. Verträge für mehrere Lokationen werden mit mehreren Vertragsteilen abgebildet.
	VertraglichFixierteMenge *Menge    `json:"vertraglichFixierteMenge,omitempty"`                                        // VertraglichFixierteMenge ist die für die Lokation festgeschriebene Abnahmemenge
	MinimaleAbnahmemenge     *Menge    `json:"minimaleAbnahmemenge,omitempty"`                                            // MinimaleAbnahmemenge ist die, für die Lokation festgelegte Mindestabnahmemenge
	MaximaleAbnahmemenge     *Menge    `json:"maximaleAbnahmemenge,omitempty"`                                            // MaximaleAbnahmemenge ist die, für die Lokation festgelegte maximale Abnahmemenge
}

Vertragsteil wird dazu verwendet, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen.

type Zaehlerstaende added in v0.0.7

type Zaehlerstaende []Zaehlerstand

Zaehlerstaende is a table type of Zaehlerstand with defined descending sorting of the Zaehlerstand.Ablesedatum for sort.Sort(...)

func (Zaehlerstaende) Len added in v0.0.7

func (z Zaehlerstaende) Len() int

Len returns the size of z

func (Zaehlerstaende) Less added in v0.0.7

func (z Zaehlerstaende) Less(i, j int) bool

Less returns true iff the Zaehlerstand.Ablesedatum at index i is after the Zaehlerstand.Ablesedatum at index j

func (Zaehlerstaende) Swap added in v0.0.7

func (z Zaehlerstaende) Swap(i, j int)

Swap swaps the entries at index i and j

type Zaehlerstand added in v0.0.7

type Zaehlerstand struct {
	Ablesedatum              time.Time                                         `json:"ablesedatum,omitempty" validate:"required"`              // Ablesedatum is a point in time
	Wertermittlungsverfahren wertermittlungsverfahren.Wertermittlungsverfahren `json:"wertermittlungsverfahren,omitempty" validate:"required"` // Wertermittlungsverfahren is the type of the consumption
	Wert                     decimal.Decimal                                   `json:"wert" validate:"required" example:"17086"`               // Wert is the value (of Einheit)
	Einheit                  mengeneinheit.Mengeneinheit                       `json:"einheit,omitempty" validate:"required" example:"KWH"`    // Einheit ist the unit (associated to the wert)
	Brennwert                decimal.NullDecimal                               `json:"brennwert,omitempty"`                                    // Brennwert is used to calculate caloric Energy from gas volume
	Zustandszahl             decimal.NullDecimal                               `json:"zustandszahl,omitempty"`                                 // Zustandszahl is used to calculate caloric Energy from gas volume
}

Zaehlerstand is the value of a meter for a specific point in time (non-standard)

type Zaehlwerk added in v0.0.7

type Zaehlwerk struct {
	ZaehlwerkId    string                          `json:"zaehlwerkId,omitempty" validate:"required" example:"47110815_1"`          // ZaehlwerkId ist die Identifikation des Zählwerks (Registers) innerhalb des Zählers. Oftmals eine laufende Nummer hinter der Zählernummer.
	Bezeichnung    string                          `json:"bezeichnung,omitempty" validate:"required" example:"Zählwerk_Wirkarbeit"` // Bezeichnung ist eine zusätzliche Bezeichnung
	Richtung       energierichtung.Energierichtung `json:"richtung,omitempty" validate:"required"`                                  // Richtung beschreibt die Energierichtung: Einspeisung oder Ausspeisung.
	ObisKennzahl   string                          `json:"obisKennzahl,omitempty" validate:"required" example:"1-0:1.8.1"`          // Die 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.
	Wandlerfaktor  decimal.Decimal                 `json:"wandlerfaktor" validate:"required"`                                       // Der Wandlerfaktor ist der Faktor, mit dem die Zählerstandsdifferenz multipliziert wird, um zum eigentlichen Verbrauch im Zeitraum zu kommen.
	Einheit        mengeneinheit.Mengeneinheit     `json:"einheit,omitempty" validate:"required"`                                   // Die Einheit der gemessenen Größe
	Zaehlerstaende Zaehlerstaende                  `json:"zaehlerstaende,omitempty"`                                                // A list of Zaehlerstand (Non BO4E Standard)

	// note that both "kommastellen" (plural) serialize as singular "...stelle" for compatability reasons (with bo4e dotnet)
	Vorkommastellen   *int                                        `json:"vorkommastelle,omitempty" validate:"omitempty,min=0"`  // Vorkommastellen ist the number of pre-decimal places
	Nachkommastellen  *int                                        `json:"nachkommastelle,omitempty" validate:"omitempty,min=0"` // Nachkommastellen is the number of post decimal places
	Schwachlastfaehig schwachlastfaehigkeit.Schwachlastfaehigkeit `json:"schwachlastfaehig,omitempty"`
}

A Zaehlwerk is the counting part of a meter. A meter consists of one or more Zaehlwerke

type Zeitraum added in v0.0.5

type Zeitraum struct {
	Einheit        zeiteinheit.Zeiteinheit `json:"zeiteinheit,omitempty" validate:"omitempty,required_with=Dauer"`                                          // Einheit is the unit of measurement
	Dauer          decimal.NullDecimal     `json:"dauer,omitempty" validate:"omitempty,required_with=Einheit"`                                              // Dauer ist eh duration
	Startzeitpunkt time.Time               `json:"startzeitpunkt,omitempty" validate:"required_without_all=Einheit Dauer" example:"2018-01-28T10:15:00+01"` // Startzeitpunkt is the inclusive begin
	Endzeitpunkt   time.Time               ``                                                                                                               // Endzeitpunkt is the exclusive end
	/* 135-byte string literal not displayed */
}

Zeitraum ist eine Komponente zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet.

type Zeitreihenwert added in v0.0.4

type Zeitreihenwert struct {
	Zeitreihenwertkompakt
	DatumUhrzeitVon time.Time `json:"datumUhrzeitVon,omitempty" validate:"required" example:"2018-01-28T10:15:00+01"` // DatumUhrzeitVon is the inclusive begin
	DatumUhrzeitBis time.Time `json:"datumUhrzeitBis,omitempty" validate:"required" example:"2018-01-28T10:30:00+01"` // DatumUhrzeitBis is the exclusive end
}

Zeitreihenwert ist eine Abbildung eines Zeitreihenwertes bestehend aus Zeitraum, Wert und Statusinformationen.

type Zeitreihenwertkompakt added in v0.0.4

type Zeitreihenwertkompakt struct {
	Wert         decimal.Decimal                           `json:"wert" validate:"required" example:"17"` // Wert ist der der im Zeitintervall gültige Wert.
	Status       messwertstatus.Messwertstatus             `json:"status,omitempty"`                      // Der Status gibt an, wie der Wert zu interpretieren ist, z.B. in Berechnungen.
	Statuszusatz messwertstatuszusatz.Messwertstatuszusatz `json:"statuszusatz,omitempty"`                // Statuszusatz ist eine Zusatzinformation zum Status, beispielsweise ein Grund für einen fehlenden Wert.
}

Zeitreihenwertkompakt ist eine Abbildung eines kompakten Zeitreihenwertes in dem ausschliesslich der Wert und Statusinformationen stehen.

type Zustaendigkeit added in v0.0.21

type Zustaendigkeit struct {
	Jobtitel     string                    `json:"jobtitel,omitempty"`                         // Jobtitel ist die berufliche Rolle des Ansprechpartners
	Abteilung    string                    `json:"abteilung,omitempty"`                        // Abteilung ist die Abteilung, in der der bo.Ansprechpartner tätig ist
	Themengebiet themengebiet.Themengebiet `json:"themengebiet,omitempty" validate:"required"` // Themengebiet erlaubt eine thematische Zuordnung des bo.Ansprechpartner
}

Zustaendigkeit ordnet einem bo.Ansprechpartner Abteilungen und Zuständigkeiten zu

Jump to

Keyboard shortcuts

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