Question - Implementing tickets as NFTS

Let’s assume a contract mints NFTS with ERC721 or ERC1155 contracts and these NFTs represent limited tickets to an event. Let’s also assume that these NFTs have been sold and transferred to various user wallets that want to access the event that the NFT relates to.

My question is what exactly should happen when the user enters the event. Obviously they a) have to prove they have a relevant ticket/NFT in their wallet and b) this ticket has to be burned or something once they have been given access to the event (otherwise they could just transfer it to someone else once they enter the event)

Has anyone any ideas on this or implemented something similar?

I am thinking that when the NFT is minted and eventually moved to the users wallet , that the user has to approve the event organizer as a spender of the token - maybe this can be done at the point that the user initially buys/claims the NFT.

So basically when the user enters the event, then as long as the event organizer( approved spender) can identify the id of the token(ticket) then they could burn the users token?

hey @Emmett thats good idea. I think you can burn the NFTs once user enter the event. So your enterEvent() function will have this functionallity.