/** * Variantengruppen der Lager-API (Backend Stufe 5c): Gruppe anlegen (mit * Matrix oder genannten Varianten), aendern oder stilllegen, eine Variante * ergaenzen, Gruppen lesen. * * Eine Variante ist ein gewoehnlicher Artikel mit `variantGroupId` und * `variantAttributes`; gelesen, gebucht und reserviert wird sie wie jeder * Artikel. Die Gruppenantworten tragen nur die Kennungen der Varianten, die * Artikel selbst liefert `listArticles({ variantGroupId })`. * * Wie in `schreiben.ts` geht die Anfrage flach hinaus, genau mit den Feldern, * die der Aufrufer nennt (`undefined` faellt weg, `null` bleibt). * * **Vor dem Senden geprueft wird nur, was ohne Netz sicher falsch ist:** * - `idempotencyKey` fehlt, ist leer oder laenger als 120 Zeichen (die drei * schreibenden Aufrufe); * - `variantGroupId` fehlt oder ist leer; * - `createMatrix: true` zusammen mit `variants` (schliessen sich aus); * - `variants` ist keine Liste, ein Eintrag kein Objekt, `variantAttributes` * einer Variante fehlt oder ist kein Objekt; * - ein Preis, eine Menge oder ein Einkaufspreis (auch in `defaults`) ist * keine Ganzzahl; * - eine Aenderung nennt kein Feld, `active` ist nicht `false` oder steht * nicht allein, `addAttributeValues` ist kein Objekt. * Die Grenzen (Merkmale, Werte, Matrix, aktive Varianten) prueft der Server: * er darf sie anheben, ohne dass diese Paketversion dann falsch abweist. * * **Wiederholen** wie bei jedem Schreiben: nach `outcome: 'unknown'` denselben * Aufruf mit **demselben** `idempotencyKey`; er wirkt genau einmal und liefert * die gespeicherte Antwort. Ein neuer Schluessel legte die Gruppe ein zweites * Mal an. Ein abgebrochenes Stilllegen vollendet jede Wiederholung von * `updateVariantGroup({ active: false })`, auch mit neuem Schluessel. */ import type { InternerTransport } from '../client/aufrufe.js'; import type { AddVariantRequest, Article, CreateVariantGroupRequest, UpdateVariantGroupRequest, VariantGroup, VariantGroupListQuery, VariantGroupPage } from './typen.js'; /** * Legt eine Variantengruppe an: mit `createMatrix: true` alle Kombinationen der * Werte (hoechstens 100), sonst die genannten `variants[]` (hoechstens 100), * ohne beides nur die Gruppe. Jede Variante entsteht als Artikel mit den * Feldern wie bei `createArticle`; was sie nicht nennt, fuellen die Vorgaben. * Antwort: die Gruppe mit `variants[]` (Kennung und Merkmale je Variante). * * Braucht die Anlage mehr Schreibvorgaenge, als in einen Vorgang passen, * kommt `too_many_positions` mit `field` (`variants` bzw. `createMatrix`) und * nichts ist geschrieben: weniger Varianten senden, den Rest per [addVariant]. */ export declare function createVariantGroup(transport: InternerTransport, request: CreateVariantGroupRequest): Promise; /** * Aendert eine aktive Gruppe (Name, Vorgaben, neue Werte) oder legt sie mit * `active: false` still: die Gruppe und alle ihre Varianten, endgueltig. Die * Antwort kommt erst, wenn alle Varianten stillgelegt sind. Bestehende * Varianten aendern Name und Vorgaben nicht (dafuer `updateArticle`). */ export declare function updateVariantGroup(transport: InternerTransport, request: UpdateVariantGroupRequest): Promise; /** * Legt eine Variante in einer aktiven Gruppe an. Antwort: der Artikel wie * `createArticle`. Gibt es die Kombination schon, kommt * `variant_already_exists` mit `articleId` der bestehenden Variante; nach dem * Stilllegen einer Variante ist ihre Kombination wieder frei. */ export declare function addVariant(transport: InternerTransport, request: AddVariantRequest): Promise
; /** Eine Variantengruppe mit ihren aktiven Varianten (eingefroren, wenn stillgelegt). */ export declare function getVariantGroup(transport: InternerTransport, variantGroupId: string): Promise; /** Variantengruppen nach `updatedAt` aufsteigend; Filter `active` und `updatedSince` (inklusive). */ export declare function listVariantGroups(transport: InternerTransport, query?: VariantGroupListQuery): Promise; /** Alle Variantengruppen der Abfrage, Seite fuer Seite ueber `nextCursor`. */ export declare function iterateVariantGroups(transport: InternerTransport, query?: VariantGroupListQuery): AsyncGenerator;