Create as many different contract templates as you like. Contracts can also consist of individual sub-contracts. You can define all kinds of input fields in your contracts, which can then be filled in by your customers or your employees.
Not recommended, but still possible: If a contract is actually needed "offline", you can simply print it out with the document background you have stored.
Integrate different contracts into your workflow. You decide which contract has to be signed or delivered at what time. Your employees can access all contracts and the information they contain at any time.
For your rental properties, you can, for example, store classic rental contracts or digitise acceptance protocols, etc.
You can store a contractually agreed booking quota for your customers in your contracts. In this way, your customers can book the rental objects offered online, which is compared in parallel with the contract quota.
This way you ensure that only as much as agreed can be booked.