Approve tokens

Hey Guys! idk where to ask so I ask here!

I wanted to create an smart contract with time lock vaults.
It's working fine but I got an huge error and without fixing it I can't do anything: I don't know how to approve other ERC20 tokens. so let's say I want to create a vault where the token I lock is DAI. now how can I create and approve function that let's me approve DAI.
there is no "balance" because there is just 1 user per vault and only 1 deposit per vault at the creation, also just 1 token per vault.
Solidity 0.8.7
If you need anything just request it.