Customers should be able to create their own sale tickets, to be viewed and fulfilled by Clubhouse employees. Brainstorm a workflow and edge-cases for implementation. This will likely be a large, comprehensive feature spanning multiple fullstack services.
GET /tickets - all tix
GET /tickets/uuid - one ticket
POST /tickets - create one ticket
POST /tickets/uuid - edit a ticket
DELETE /tickets/uuid - delete or archive a ticket
Customer user story
Clicks 'order'
Fills list on right with list of inventory items on left after searching for cardname
Can view estimated total based on TCG, with disclaimer that some prices may be missing
Clicks 'submit' and creates ticket
Clicks view orders
Can see status of tickets, whether available or not
Limit five(?) open tickets per customer
Staff user story
Clicks ticketing
Sees all tickets in chronological order, sorted by oldest
Clicks a ticket to view/expand
Sees if changes in requested inventory differ from available inventory
Sets price on cards in inventory to review total
Physically pulls inventory
Clicks "fulfill" which creates a suspended sale under ticket uuid and deducts from inventory (review the suspendedSale service to ensure data is sane)
Customer receives email that their cards are ready (best framework for sending emails??)
Option to cancel ticket before fulfillment which sets status to cancelled
Deletion of suspended sale thereafter follows the normal suspend sale deletion
Implementation
Think about going with a monolith rather than microservices for speed and ease of testing/deployment
Customers should be able to create their own sale tickets, to be viewed and fulfilled by Clubhouse employees. Brainstorm a workflow and edge-cases for implementation. This will likely be a large, comprehensive feature spanning multiple fullstack services.