I need my NFT smart contract to accept USDT instead of ethereum

Hello everyone, i was commissioned an ERC721 smart contract that needs to accept payments in USDT instead of ethereum when a user mints an NFT.

i would ideally have msg.value be in USDT instead of eth, so that i can check the amount or maybe listen for a transfer event on the contract, please give me your suggestions.

the contract is basically ready i just need to sort out that aspect, so how do i make it so that the contract accepts USDT instead of eth for payments?

To many ways to do it, I would first make the user sign authorizing the contract to transfer ustd on his behalf, and then depending on what the nft is worth, I make the discount, another way to do it is by configuring the call when the user signs and passing a parameter for value referring to ustd's contract, also nft's minting function, can't be allowed to receive ethe

Hello! Did you have any luck? I'm trying to create an NFT that can be purchase with USDT once minted, and need to be able to send back USDT to all NFT owners. Thanks