What lines of code/.sol documents do I need in order to make the first token (NFT) free to mint, and all next ones payable?

Hi! Smart contract newbie here.
I'm having trouble starting the very beginning of my contract, as well as setting up the price for the first token to be 0, and later change to 0.01eth.
The .sol files I plan to import are: ERC721, IERC721, IERC721Receiver, IERC721Metadata, ERC165, IERC165, Ownable, Address, Context, Strings, ReentrancyGuard, and possibly MerkleProof (which I do no fully understand). I just plan to copy-paste these files and slap them onto a single .sol file. Does that make any sense at all?

I've gone through the majority of OpenZeppelin contract files, but I'm unable to find a .sol file where I can see a function that utilizes this feature.
Thanks for any replies!