contract BlockStyle is ERC721Style {
    constructor(string memory baseURI, string memory contractURI)
        ERC721("BlockStyle", "EBS")
    {
        _setBaseURI(baseURI);
        _setContractURI(contractURI);
    }

    function setContractURI(string memory uri) external onlyOwner {
        _setContractURI(uri);
    }

    /// @dev BlockStyle token metadata URIs are meant to use base + id concatenation
    function setBase(string memory uri) external onlyOwner {
        _setBaseURI(uri);
    }

    /// @dev BlockStyle tokens have a canvas URI which can be changed by owner
    function setCanvas(uint256 id, string memory canvas) external {
        require(
            _isApprovedOrOwner(_msgSender(), id),
            "Operator is not approved"
        );
        _setCanvasURI(id, canvas);
    }

    /// @dev Opt in specifying token metadata URI
    function setToken(uint256 id, string memory uri) external {
        require(
            _isApprovedOrOwner(_msgSender(), id),
            "Operator is not approved"
        );
        _setTokenURI(id, uri);
    }

    /// @notice BlockArt minting with BlockStyle, supply and fee management
    function setStyleSupplyCap(uint256 _id, uint256 _cap) external {
        require(
            _isApprovedOrOwner(_msgSender(), _id),
            "Operator is not approved"
        );
        _setStyleSupplyCap(_id, _cap);
    }

    function setStyleFeeMul(uint256 _id, uint256 _value) external {
        require(
            _isApprovedOrOwner(_msgSender(), _id),
            "Operator is not approved"
        );

        require(_value >= 100, "Value too low");

        _setStyleFeeMul(_id, _value);
    }

    function setStyleFeeMin(uint256 _id, uint256 _value) external {
        require(
            _isApprovedOrOwner(_msgSender(), _id),
            "Operator is not approved"
        );
        _setStyleFeeMin(_id, _value);
    }
}
// import "hardhat/console.sol";
function setBase(string memory uri) external onlyOwner {
    _setBaseURI(uri);
}

/// @dev BlockStyle token metadata URIs are meant to use base + id concatenation