> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anny.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Exklusive Zeitfenster

> Reserviere Zeitfenster exklusiv für eine Bestellung, damit Gruppen nicht mit anderen Kund:innen gemischt werden.

Mit der Funktion **Exklusive Zeitfenster** legst du fest, dass ein Zeitfenster nach der ersten Buchung für weitere Bestellungen als ausgebucht behandelt wird. So bleibt das Zeitfenster exklusiv für eine Kundengruppe reserviert, auch wenn rechnerisch noch freie Plätze vorhanden sind. Dasselbe Prinzip gilt für Tische, Boote oder Lanes: die Gruppe bleibt unter sich.

<Info>
  Das Feature **Mehrfachverfügbarkeit von Ressourcen** oder **Mehrfachverfügbarkeit mit Zuweisung** muss in deinem Account unter **Account Einstellungen** → **Features** aktiviert sein.
</Info>

## Wie funktioniert Exklusive Zeitfenster?

Sobald die erste Bestellung für ein Zeitfenster eingeht, wird dieses Zeitfenster für alle weiteren Bestellungen gesperrt. Das bedeutet konkret:

* Die erste Bestellung kann weiterhin mehrere Plätze innerhalb dieses Zeitfensters nutzen.
* Weitere externe Buchungen für dasselbe Zeitfenster werden nicht mehr zugelassen.
* Im Admin-Bereich bleibt die tatsächliche Auslastung sichtbar (z. B. 2 von 4 Plätzen belegt).

Bei **Child Ressourcen** gilt das pro Tisch, Boot oder Lane, nicht für die ganze Eltern-Ressource. Innerhalb **einer** Bestellung füllt anny zuerst eine Child-Ressource bis zu ihrer **Verfügbare Anzahl** und nimmt danach die nächste. Andere Bestellungen bekommen keine Child-Ressource, die in diesem Zeitraum schon eine Buchung hat.

Dadurch bleibt die Gruppe innerhalb des Zeitfensters unter sich, ohne dass du das Zeitfenster manuell blockieren musst.

<Note>
  "Ausgebucht" bedeutet hier nicht, dass die volle Kapazität erreicht wurde. Das Zeitfenster ist exklusiv für eine Bestellung reserviert.
</Note>

## Wann nutze ich das?

* **Aktivitäten mit Gruppenlogik**, bei denen mehrere Plätze pro Slot vorhanden sind, aber nur gemeinsam von einer Bestellung genutzt werden sollen (z. B. Axtwerfen-Lanes, Escape Rooms).
* **Verleih-Angebote**, bei denen ein Objekt mehrere Personen aufnehmen kann, aber nicht zwischen fremden Gruppen geteilt werden soll (z. B. Kanus, Boote, Tretboote).
* **Tische in Gastronomie oder Eventlocations**, bei denen jeder Tisch nur einer Firmen- oder Kundengruppe gehört, eine Gruppe aber mehrere Tische in einer Bestellung buchen darf.
* **Gruppenführungen und Touren**, bei denen ein Zeitfenster vollständig für eine geschlossene Gruppe reserviert bleiben soll (z. B. Museumsführungen, Stadttouren).
* **Kursangebote mit Exklusivbuchung**, bei denen eine Organisation oder Gruppe einen Kursslot komplett für sich bucht.

**Nicht geeignet für:** Angebote, bei denen unterschiedliche Kund:innen bewusst denselben Slot teilen sollen (z. B. offene Fitnesskurse, Lernplätze in Bibliotheken). Auch nicht geeignet: alle Sitzplätze als eine einzige mehrfach verfügbare Ressource (z. B. 440 Plätze), wenn **Exklusive Zeitfenster** an ist. Dann sperrt die erste Bestellung den ganzen Saal.

## Zusammenhang mit anderen Features

| Feature                                                | Zusammenhang                                                                                                                                                                                                                                                                               |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Mehrfachverfügbarkeit von Ressourcen                   | Pflichtvoraussetzung. Exklusive Zeitfenster ist nur bei mehrfach verfügbaren Ressourcen relevant.                                                                                                                                                                                          |
| Mehrfachverfügbarkeit mit Zuweisung (Child Ressourcen) | Den Toggle **Exklusive Zeitfenster** setzt du auf der Eltern-Ressource unter **Verfügbarkeit**. Jede Child-Ressource wird nach der ersten Buchung exklusiv blockiert. Der Toggle erscheint im Child-Modus, sobald mindestens eine Child-Ressource eine **Verfügbare Anzahl** größer 1 hat. |
| Smart Availability                                     | Abgrenzung: Smart Availability verbindet Ressourcen dynamisch bei der Buchung. Exklusive Zeitfenster hingegen sperrt den Slot nach der ersten Bestellung komplett für andere. Beide können kombiniert werden.                                                                              |

## Einstellungen & Optionen

| Einstellung                           | Beschreibung                                                                                                                                                                                                                              |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Exklusive Zeitfenster** (Toggle)    | Sperrt den Slot nach der ersten Buchung für andere Bestellungen. Bei Child Ressourcen gilt das pro Child-Ressource.                                                                                                                       |
| **Kunde darf Optionen wählen**        | Ist ausgeblendet, sobald eine Child-Ressource eine **Verfügbare Anzahl** größer 1 hat. anny weist die Optionen dann automatisch in aufsteigender Reihenfolge nach Name zu.                                                                |
| **Buchungsart**                       | Nutze **Standard**: jede gebuchte Einheit (Person, Platz) blockiert eine Kapazitätseinheit. **Vollständig** blockiert die gesamte Eltern-Ressource und weist keine einzelnen Child-Ressourcen zu.                                         |
| **Erlaubte Buchungen pro Bestellung** | Steht auf der Ressource und begrenzt, wie viele Plätze eine Bestellung maximal buchen darf. Sobald **Exklusive Zeitfenster** aktiv ist, ist **Max. Buchungsanzahl pro Bestellung** auf der Buchungsoption gesperrt und zeigt diesen Wert. |

<Tip>
  **Exklusive Zeitfenster** findest du unter **Ressource** → **Verfügbarkeit** → **Mehrfach verfügbar**. Bei Child Ressourcen unter **Ressource** → **Verfügbarkeit**, Typ **Child Ressourcen**. Denselben Pfad nutzt **Kunde darf Optionen wählen**, sofern der Toggle sichtbar ist.
</Tip>

## Praxisbeispiele

<AccordionGroup>
  <Accordion title="Restaurant oder Eventlocation mit exklusiven Tischen">
    Du hast 44 Tische mit je 10 Sitzplätzen. Am selben Tisch sollen keine gemischten Gruppen oder Firmen sitzen. Eine Gruppe darf aber mehrere Tische in einer Bestellung buchen, zum Beispiel 5 Tische mit 45 Personen.

    Die Buchungsmenge ist die Zahl der **Personen bzw. Plätze**, nicht die Zahl der Tische. Setzt du 44 Tische mit **Verfügbare Anzahl** 1 an und nennst die Option "Platz pro Person" mit Maximum 10, bucht der Gast mit 10 Personen 10 Tische.

    <Steps>
      <Step title="Feature aktivieren">
        Aktiviere unter **Account Einstellungen** → **Features** die **Mehrfachverfügbarkeit mit Zuweisung**.
      </Step>

      <Step title="Eltern-Ressource anlegen">
        Öffne **Ressourcen** → **Neu+**. Vergib einen Namen (z. B. "Tische"). Unter **Verfügbarkeit** wählst du **Child Ressourcen**.
      </Step>

      <Step title="44 Tische als Child Ressourcen anlegen">
        Klicke auf **Child-Ressourcen hinzufügen**. Im Textfeld reicht eine Zeile wie `Tisch 1-44`. Bestätige mit **Child-Ressourcen erstellen**.
      </Step>

      <Step title="10 Plätze pro Tisch setzen">
        In der Child-Tabelle setzt du bei jedem Tisch die **Verfügbare Anzahl** auf **10**. Neue Child Ressourcen starten mit Anzahl 1. Der Toggle **Exklusive Zeitfenster** erscheint erst, wenn mindestens ein Tisch Anzahl größer 1 hat.
      </Step>

      <Step title="Exklusive Zeitfenster aktivieren">
        Aktiviere **Exklusive Zeitfenster** auf der Eltern-Ressource unter **Verfügbarkeit**. anny weist Tische automatisch zu. **Kunde darf Optionen wählen** ist bei Anzahl größer 1 nicht sichtbar.
      </Step>

      <Step title="Maximale Gruppengröße setzen">
        Setze **Erlaubte Buchungen pro Bestellung** auf der Eltern-Ressource auf die größte Gruppe, die du zulassen willst (z. B. 50 oder 440). Der Wert 10 begrenzt die ganze Bestellung auf 10 Plätze, nicht auf 10 Plätze pro Tisch.
      </Step>

      <Step title="Buchungsoption anlegen">
        Erstelle eine Buchungsoption (z. B. "Platz") mit **Buchungsart** **Standard**. Optional setzt du einen Preis pro Person und **Min. Buchungsanzahl pro Bestellung** auf 1.
      </Step>
    </Steps>

    Sobald das Setup aktiv ist, buchen Gäste die Personenzahl. Innerhalb einer Bestellung belegt anny Tische nacheinander (10, 10, 10, …). Im Shop gilt aktuell die Timeout-Obergrenze von 20 Plätzen pro Bestellung; 45 Personen in einem Durchgang brauchen den Bulk-Pfad wie bei Serienbuchungen.

    Mehr zur Ressourcenstruktur: [Ressource konfigurieren](/ressourcen-konfigurieren). Mehr zur Buchungsoption: [Buchungsoption](/configure-booking-option). Die Mengengrenze pro Bestellung liegt bei Exclusive slots auf der Ressource, siehe [Mindest- und Maximalauswahl](/min-max-selection).

    <Warning>
      Lege die 440 Sitzplätze nicht als eine Ressource **Mehrfach verfügbar** mit **Exklusive Zeitfenster** an. Die erste Bestellung würde den ganzen Saal sperren. **Exklusive Zeitfenster** brauchst du **pro Tisch**, also als Child Ressourcen.
    </Warning>
  </Accordion>

  <Accordion title="Kanu-Verleih mit Gruppentouren">
    In diesem Beispiel werden Kanus als Child Ressourcen angelegt. Zusätzlich wird eine Kanu-Tour als eigenes Gruppenangebot buchbar gemacht.

    <Steps>
      <Step title="Kanu-Ressource anlegen">
        Erstelle eine Ressource für die Kanus. Gehe zu **Ressource** → **Verfügbarkeit**, Typ **Child Ressourcen**, und lege folgende Child Ressourcen an:

        * Kanu 1
        * Kanu 2
        * Kanu 3
        * Kanu 4

        Setze für jede Child-Ressource die **Verfügbare Anzahl** auf 4 (Plätze pro Kanu).
      </Step>

      <Step title="Exklusive Zeitfenster aktivieren">
        Aktiviere **Exklusive Zeitfenster** unter **Ressource** → **Verfügbarkeit**. anny weist Kanus automatisch zu, sobald die **Verfügbare Anzahl** der Child Ressourcen größer 1 ist.
      </Step>

      <Step title="Buchungsoption konfigurieren">
        Erstelle eine Buchungsoption (z. B. "Miete") mit folgenden Einstellungen:

        * Preis pro Person oder pro Kanu, je nach deinem Tarif
        * **Min. Buchungsanzahl pro Bestellung**: 1
        * **Buchungsart**: **Standard** (jede Person bzw. jeder Platz ist eine Kapazitätseinheit)
      </Step>

      <Step title="Kanu-Tour-Ressource anlegen (optional)">
        Erstelle eine separate Ressource "Kanu-Tour". Unter **Verfügbarkeit** → **Mehrfach verfügbar** definierst du:

        * Verfügbare Anzahl: 16
        * Erlaubte Buchungen pro Bestellung: 16

        Erstelle zwei Buchungsoptionen:

        1. Einzeltarif (**Min. Buchungsanzahl pro Bestellung**: 1)
        2. Gruppentarif ab 4 Personen (**Min. Buchungsanzahl pro Bestellung**: 4)

        Verbinde unter **Ressource** → **Abhängigkeiten** die Kanu-Ressource. So wird pro Gruppenbuchung automatisch ein passendes Kanu mitreserviert und durch Exklusive Zeitfenster nicht mit fremden Gruppen geteilt.
      </Step>
    </Steps>

    Sobald Miete und Exclusive slots aktiv sind, belegt eine Gruppe zuerst ein Kanu bis zu 4 Plätzen und nimmt bei Bedarf das nächste. Andere Bestellungen bekommen kein schon belegtes Kanu.
  </Accordion>

  <Accordion title="Gruppenführungen im Museum">
    Ein Zeitfenster soll vollständig für eine Besuchergruppe reserviert werden, auch wenn nicht alle Plätze belegt sind.

    <Steps>
      <Step title="Ressource anlegen">
        Erstelle eine Ressource "Gruppenführung". Unter **Verfügbarkeit** → **Mehrfach verfügbar** definierst du:

        * Verfügbare Anzahl: 20
        * Erlaubte Buchungen pro Bestellung: 20
        * **Exklusive Zeitfenster**: aktiviert
      </Step>

      <Step title="Buchungsoption konfigurieren">
        Erstelle eine Buchungsoption "Ticket" und öffne die erweiterten Einstellungen:

        * **Min. Buchungsanzahl pro Bestellung**: 10
        * **Buchungsart**: **Standard**

        So müssen mindestens 10 Tickets in einer Bestellung liegen. Sobald eine Gruppe bucht, wird das Zeitfenster für andere Bestellungen gesperrt. Freie Plätze in derselben Bestellung bleiben nutzbar.
      </Step>
    </Steps>

    Sobald Ticket und Exclusive slots aktiv sind, bleibt jede Führung nach der ersten Bestellung für andere Kund:innen geschlossen.
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Was bedeutet 'ausgebucht', wenn noch Plätze frei sind?">
    "Ausgebucht" bedeutet in diesem Fall, dass das Zeitfenster bereits exklusiv für eine Bestellung reserviert ist. Es heißt nicht, dass alle verfügbaren Plätze belegt sind.
  </Accordion>

  <Accordion title="Warum bucht '10 Personen' 10 Tische statt einen Tisch mit 10 Plätzen?">
    Die Menge in der Buchungsoption zählt Kapazitätseinheiten der Ressource. Hast du 44 Tische mit **Verfügbare Anzahl** 1, ist eine Einheit ein ganzer Tisch. 10 Personen belegen dann 10 Tische. Setze pro Tisch die **Verfügbare Anzahl** auf 10 und aktiviere **Exklusive Zeitfenster**. Dann sind 10 Personen 10 Plätze an einem Tisch.
  </Accordion>

  <Accordion title="Können Gäste 5 Tische mit 45 Personen in einer Bestellung buchen?">
    Die Ressourcen-Logik erlaubt das: anny füllt Tische in derselben Bestellung bis 10 Plätze und nimmt dann den nächsten. **Erlaubte Buchungen pro Bestellung** muss mindestens 45 sein. Im Shop-Buchungsflow gilt zusätzlich eine Obergrenze von **20** Plätzen pro Bestellung, damit Warenkorb und Checkout nicht in den Request-Timeout laufen. 45 Personen in einem Durchgang brauchen denselben Bulk-Pfad wie Serienbuchungen.
  </Accordion>

  <Accordion title="Warum nicht einfach 440 Sitzplätze einstellen?">
    440 Plätze als eine Ressource **Mehrfach verfügbar** ohne Child Ressourcen würden bei **Exklusive Zeitfenster** nach der ersten Bestellung den ganzen Saal sperren. Child Ressourcen mit 10 Plätzen pro Tisch halten die Exklusivität auf den einzelnen Tisch. Andere Tische bleiben für andere Gruppen frei.
  </Accordion>

  <Accordion title="Können Admins weiterhin sehen, wie viele Plätze tatsächlich belegt sind?">
    Ja. Im Admin-Bereich bleibt die tatsächliche Belegung sichtbar (z. B. 2/4 belegt). Nur für externe Kund:innen erscheint der Slot als ausgebucht.
  </Accordion>

  <Accordion title="Kann ich Exklusive Zeitfenster mit 'Kunde darf Optionen wählen' kombinieren?">
    Nein. Sobald Child Ressourcen eine **Verfügbare Anzahl** größer 1 haben, blendet anny **Kunde darf Optionen wählen** aus und weist automatisch zu. Den Toggle findest du sonst unter **Ressource** → **Verfügbarkeit**.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Ein Zeitfenster wird als ausgebucht angezeigt, obwohl noch Plätze frei sind">
    Das ist erwartetes Verhalten bei aktivierten Exklusiven Zeitfenstern. Das Zeitfenster wurde bereits durch eine Bestellung exklusiv reserviert und ist deshalb für weitere Kund:innen nicht mehr buchbar. Im Admin-Bereich siehst du weiterhin die tatsächliche Belegung.
  </Accordion>

  <Accordion title="Der Toggle 'Exklusive Zeitfenster' ist nicht sichtbar">
    Bei **Mehrfach verfügbar** ohne Children erscheint der Toggle, wenn die **Verfügbare Anzahl** größer 1 ist. Im Modus **Child Ressourcen** erscheint er, sobald mindestens eine Child-Ressource eine **Verfügbare Anzahl** größer 1 hat. Prüfe beides unter **Ressource** → **Verfügbarkeit**.
  </Accordion>

  <Accordion title="10 Personen belegen 10 Tische statt 10 Plätze an einem Tisch">
    Die Child Ressourcen haben **Verfügbare Anzahl** 1, deshalb ist eine Buchungseinheit ein Tisch. Setze die Anzahl pro Tisch auf 10 (Sitzplätze) und aktiviere **Exklusive Zeitfenster**. Setze **Erlaubte Buchungen pro Bestellung** nicht auf 10, wenn Gruppen größer als 10 Personen buchen dürfen.
  </Accordion>

  <Accordion title="Buchungen werden trotz aktivierter Funktion nicht exklusiv behandelt">
    Prüfe, ob **Exklusive Zeitfenster** auf der Eltern-Ressource aktiv ist und die Child Ressourcen eine **Verfügbare Anzahl** größer 1 haben. Stelle die **Buchungsart** nicht auf **Vollständig**: das blockiert die gesamte Eltern-Ressource statt einzelner Tische.
  </Accordion>
</AccordionGroup>

> Wichtige Informationen für Agenten:
>
> * Toggle `exclusiveSlots` / `exclusive_slots` unter Ressource → Verfügbarkeit. Child-Modus: sichtbar wenn `hasChildWithMultipleQuantity` (irgendein Kind quantity > 1) ODER Toggle bereits an.
> * Feature-Gating: `multiple-availability` und/oder `multiple-availability-with-children` unter Account Einstellungen → Features.
> * `settings.checkout.customerCanPickChildren` ist ausgeblendet wenn `hasWeightedChildren` (Child quantity > 1). Auto-Zuweisung aufsteigend nach Name. Nicht mit Exclusive slots kombinierbar über UI.
> * Buchungsart: `weightTypes.simple` = Standard/Default (`defaultWeight=1`, `fullWeight=false`). `weightTypes.full` = Vollständig/Full setzt `fullWeight=true`, Associate hängt an Parent statt Child, weight = `resource.quantity`. NICHT Pflicht für Exclusive slots, für Tische/Boote falsch.
> * Same-order fill: ExclusiveSlotsBookingServiceTest, 3 Tickets bei Child quantity 2 → Distribution 2+1 auf zwei Children. Across orders: Children mit persisted overlap sind burnt (ChildBookingValidator).
> * Flache Ressource ohne Children: BookingCountValidator verbrennt bei exclusive\_slots die GANZE quantity nach erster persisted Buchung. Deshalb 440 Sitze + exclusive = ganzer Saal weg.
> * Service `maxBookingQuantity` disabled wenn `resource.exclusiveSlots`; UI **zeigt** `resource.maxBookingQuantity`, persistiert den Wert aber nicht. Shop-Stepper: `MAX_SYNC_BOOKING_QUANTITY = 20` (Axios add-booking + finish-order 30s, Octane `max_execution_time` 30s). Quantity N = N BookingBags in `MultiBookingBag`, je voller `createBookingsFromBookingBag` (Save + Model-Events).
> * Recurring analog: `CreateSeriesBookingsService` plant `OccurrenceDraft`s, `BookingProcessor::persist` nutzt `BulkEditService::bulkSave` (Chunks 100, `async: true` → `ProcessAsyncModelEvents`), `disableBookingChangeTracking`. Admin RecurringSettingsEditor count max 100. Shop-Include lädt `series_bookings` bewusst nicht.
> * Quantity > 10 **nicht** per mehrere add-booking-Requests chunken: `RESERVED` zählt in `BLOCKING_STATUSES`, `ChildBookingValidator` verbrennt das Child bei persisted overlap → Exclusive-Fill (10+5 am selben Tisch) bricht. Bulk muss **ein** Request bleiben.
> * Realistisch ohne Bulk-Pfad: bei 20 bleiben. Mit Recurring-Bulk-Pfad: 45–100 analog Serien-Count. 440 nicht (finish-order `confirmBookings` + Invoice-Items + JSON:API-Include).
> * `Resource::newChild` default quantity 1 und max\_booking\_quantity 1. Bulk: NewChildResources, Range-Syntax "Tisch 1-44" / "Seat 1-10", max 100 pro Durchgang.
> * "Ausgebucht" = exklusiv für eine Bestellung, NICHT volle Kapazität. Admins sehen echte Belegung.
> * Verwandte Artikel: /ressourcen-konfigurieren, /configure-booking-option, /min-max-selection, /getting-started-sailing-schools (Errata: Full als Pflicht), /smart-availability.
> * UI-Pfad: Ressourcen → Ressource → Verfügbarkeit → Child Ressourcen / Child-Ressourcen hinzufügen → Exclusive-slots-Toggle auf der Eltern-Ressource, nicht in der Child-Zeile.
