Does Event have somekind of superclass ListDriven?
I can see some value in GroupPurchase inherits from ListDriven, where each entry has more than UID, so maybe a ListItem.Options field could hold JSON representing choices.
An example might be the Mielec group buy...
Current process:
Members express interest
Interest List starts
OP gets a quote for rough numbers, finds available options
Purchase Intents, with option details, gathered using Google Form backed by a GoogleDocs Spreadsheet
New list in thread for those who have registered their Purchase Intent
OP declares payment window, tracks progress via GoogleDocs
New Process:
OP creates GroupPurchase instance, provides Meta Info, LISTSTATE = SURVEY
Members add themselves ITEMSTATE = INTEREST
OP gets quote, options
OP modifies GroupPurchase record to define options, LISTSTATE => METAORDER
Notify list members
Members update their entries to select options (or back out) ITEMSTATE => INTENT
OP "closes" list, LISTSTATE => PREORDER
Notify list members
Members make payments, ITEMSTATE => CONFIRMED (or PAID)
OP exports GroupPurchase info, places order LISTSTATE => ORDERING
OP receives confirmation of order, delivery estimate LISTSTATE => ORDERED
OP updates GroupPurchase info to add detailed delivery options (i.e. if collection requested, 1-to-1, CompassBeers, Delegate; If postage requested, Address or Delegate aka GroupedPostageReceiver)
Notify list members
Members make delivery choices ITEMSTATE => PENDING-COLLECTION or PENDING-DELIVERY
etc.
OP marks GroupPurchase as DELIVERY when main consignment received
Tracking infos?
Members (or OP?) declare receipt, LISTSTATE => COMPLETE when all items ITEMSTATE => RECEIVED
Does Event have somekind of superclass ListDriven?
I can see some value in GroupPurchase inherits from ListDriven, where each entry has more than UID, so maybe a ListItem.Options field could hold JSON representing choices.
An example might be the Mielec group buy...
Current process:
New Process:
etc.