haiku-atelier-2024/web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts
gcch b2a0012590 2026-04-10
- corvée: met à jour les deps
- corvée: formate
2026-04-10 23:43:45 +02:00

29 lines
935 B
TypeScript
Executable file

/** Schémas des Messages passés avec BroadcastChannel. */
import * as v from "valibot";
import { TYPES_MESSAGES } from "../../constantes/messages.ts";
import { WCStoreCartItemSchema } from "./api/cart.ts";
export const TypesMessagesSchema = v["enum"](TYPES_MESSAGES);
export const MessageMajBoutonPanierDonneesSchema = v.object({
quantiteProduits: v.number(),
});
export const MessageMajBoutonPanierSchema = v.object({
donnees: MessageMajBoutonPanierDonneesSchema,
type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),
});
export const MessageMajContenuPanierDonneesSchema = v.object({
produits: v.array(WCStoreCartItemSchema),
sousTotalProduits: v.number(),
sousTotalReduction: v.number(),
totalPanier: v.number(),
});
export const MessageMajContenuPanierSchema = v.object({
donnees: MessageMajContenuPanierDonneesSchema,
type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),
});