Collection list seats function

Hello,

I’m trying to achieve a seating function with CMS.

I’ve done the Categories and Events collections and I need to have a special field as a number for seats available and this field shoud be decremented in the front end based on how many people sent emails to a given form. Or any other method that you can think of.
Also is there a way to create automatic barcodes and store them in a collection and then show these in the front end?

Edit: and if that event reaches 0 it should show as booked, or something similar.