Skip to content

Winkel

Rol: lid (bekijken), eigenaar (producten aanmaken, bewerken en verwijderen)

De Winkel-tab presenteert het aanbod van de clubwinkel. Leden kunnen producten bekijken met naam, prijs, afbeelding of emoji, voorraadstatus, categorie en omschrijving. De huidige implementatie is informatief — er is nog geen checkout- of winkelwagenflow.

Productweergave

Elk product wordt weergegeven als een kaart met de volgende elementen:

ElementBronOpmerking
Visueelimage of emojiAfbeelding heeft prioriteit; emoji als fallback
NaamnameVerplicht veld
PrijspriceWeergegeven als € X,XX
CategoriecategoryFiltermogelijkheid: racket, kleding, accessoires
VoorraadstockToont “Op voorraad” / “Uitverkocht” op basis van waarde
OmschrijvingdescriptionOptioneel; ingeklapt tenzij uitgevouwen

Categorieën

WaardeWeergavenaam
racketRackets
clothingKleding
accessoriesAccessoires
otherOverig

De Winkel-tab toont een filterbalk bovenaan waarmee het lid de lijst per categorie kan filteren. Bij het laden worden alle producten opgehaald en lokaal gefilterd.

Huidige beperkingen

De winkel is momenteel puur informatief:

  • Er is geen winkelwagen of checkout-flow.
  • Er is geen betalingskoppeling (Stripe, iDEAL, etc.).
  • Voorraad wordt niet automatisch verlaagd bij een aankoop — het veld dient als handmatige indicatie voor de eigenaar.

Een toekomstige versie kan op basis van de bestaande stock-informatie en het products-schema een aankoopstroom opzetten zonder schema-aanpassingen.

Datamodel

Winkelartikelen zoals rackets, kleding en accessoires. Beheerd door de eigenaar.

Veld Type Verplicht Beschrijving Beperkingen
name text Productnaam
price number Prijs in euro min 0
image file Productafbeelding max 5 MB · JPEG / PNG / WebP
emoji text Emoji als visuele indicator (valt terug op als er geen afbeelding is)
category select Productcategorie racket | clothing | accessories | other
stock number Huidige voorraad min 0
description text Productomschrijving
Toegangsregels
RegelExpressie
list @request.auth.id != ''
view @request.auth.id != ''
create @request.auth.role = 'eigenaar'
update @request.auth.role = 'eigenaar'
delete @request.auth.role = 'eigenaar'

Ontwerpkeuzes

Emoji als afbeeldingsfallback Niet elk product heeft een professionele productfoto. Het emoji-veld stelt de eigenaar in staat snel een visuele indicator toe te voegen (bv. 🎾 voor een racket). De app geeft altijd voorrang aan de image bestandsreferentie en valt terug op emoji.

Categoriefiltering Zelfs in een informatieve modus helpt categoriefiltering leden snel het juiste producttype te vinden. De filterlogica werkt client-side op de geladen productlijst — geen extra API-aanroepen per categorie.

Voorraad bijhouden voor toekomstige aankopen Het stock-veld is al aanwezig in het schema zodat een toekomstige aankoopflow de beschikbaarheid correct kan communiceren zonder een schema-migratie.