contract CPSHT is ERC721, ERC721URIStorage, Ownable {
    using Counters for Counters.Counter;

    Counters.Counter private _tokenIdCounter;
	
	string private baseTokenURI;
	
    constructor() ERC721("ComputedSheets ", "CSHT") {


	}


	function safeMintTo(address _to, string memory tokenURI_) onlyOwner public payable {


			_safeMint(_to, _tokenIdCounter.current());
			_setTokenURI(_tokenIdCounter.current(), tokenURI_);
			_tokenIdCounter.increment();


	}

    // The following functions are overrides required by Solidity.

    function _baseURI() internal view virtual override returns (string memory) {
		return baseTokenURI;
	}
	
	

	function setBaseURI(string memory _baseTokenURI) public onlyOwner {
		baseTokenURI = _baseTokenURI;
	}

    function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
        super._burn(tokenId);
    }

    function tokenURI(uint256 tokenId)
        public
        view
        override(ERC721, ERC721URIStorage)
        returns (string memory)
    {
        return super.tokenURI(tokenId);
    }

	//Return current counter value
	function getCounter()
        public
        view
        returns (uint256)
    {
        return _tokenIdCounter.current();
    }
}
function _baseURI() internal view virtual override returns (string memory) {
		return baseTokenURI;
	}
// The following functions are overrides required by Solidity.