Wie mache ich alle Eigenschaften im Zod-Schema optional, basierend auf einem bestimmten Produktverfügbarkeitsflag?
<p>Ich habe ein Zod-Schema zur Validierung von Produktattributen für eine E-Commerce-Anwendung. In meinem Schema habe ich derzeit ein Attribut namens <code>isLimitedEdition</code>, das angibt, ob das Produkt nur begrenzt verfügbar ist. Wenn jedoch <code>isLimitedEdition</code> auf true gesetzt ist, möchte ich, dass alle anderen Eigenschaften im Schema optional werden. </p>
<p>Dies ist die bestehende Architektur:</p>
<pre class="brush:php;toolbar:false;">const productProperties = z.object({
Name: z.string().nonempty(),
Beschreibung: z.string().nonempty(),
Preis: z.number().positive(),
Kategorie: z.string().nonempty(),
Marke: z.string().nonempty(),
isFeatured: z.boolean().default(false),
isLimitedEdition: z.boolean().default(false),
});</pre>
<p>In dieser Architektur möchte ich ein Verhalten implementieren, bei dem alle Eigenschaften (Name, Beschreibung, Preis, Kategorie, Marke, isFeatured) optional werden, wenn isLimitedEdition auf true gesetzt ist. </p>
<p>Wie kann ich dieses Schema ändern, um das gewünschte Verhalten zu erreichen? Ich wäre dankbar für jede Anleitung oder Codebeispiele, die mir dabei helfen, diese Logik korrekt zu implementieren. Vielen Dank im Voraus! </p>
<p>Ich habe die Methode <code>refine</code> ohne Erfolg ausprobiert</p>