Lock and unlock in solidity

i want create a simple smartcontract, where initial supply is 1000 & 1000 to a specific wallet.now i want the supply of wallet(1000) to lock for a year and every month 5% of that supply should be added to initial supply.

so far i develop

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

contract Timer{

    uint256 public  intialSuply= 1000;
    address public wallet= 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
    address public  owner;
    mapping (address=>uint) public  balances;
    
    constructor(){
        owner=msg.sender;
         balances[wallet]=1000;
    }

    modifier onlyOwner(){
        
        require(owner==msg.sender);
        _;
    }

    
    function locker()public {

    }
    
}