contract UmbaDaimaXApprTok is Ownable, ERC1155, ERC1155Burnable {
    
    mapping(uint => string) public locator;
    
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() ERC1155("https://gateway.pinata.cloud/ipfs/") { }
    
    function uri(uint256 _id) public view override returns (string memory)
    {
        return string(abi.encodePacked('https://gateway.pinata.cloud/ipfs/', locator[_id]));
    }
    
    function mapIdToLocator(uint _tokenId, string memory locale) internal {
        locator[_tokenId] = locale;
    }
    //, bytes memory data
    function mintTocaller(address account, uint256 amount, string memory givenURL) 
        public onlyOwner returns (uint256)
    {
        _tokenIds.increment();
        
        uint256 id = _tokenIds.current();
        _mint(account, id, amount, "");
        mapIdToLocator(id, givenURL);
        
        return id;
    }
}
function mintTocaller(address account, uint256 amount, string memory givenURL) 
        public onlyOwner returns (uint256)
    {
        _tokenIds.increment();
        
        uint256 id = _tokenIds.current();
        _mint(account, id, amount, "");
        mapIdToLocator(id, givenURL);
        
        return id;
    }
//, bytes memory data