Models are used whenever you need to store data and move it around. We will differentiate between two types of models, as follows:
- Input and output (I/O) models
- Database (DB) models
The difference between these two models is that I/O models mainly contain information only to pass it on. For example, a request has a payload (for example, the POST body) that contains information that should be stored. The data is parsed into an I/O model. To save this information, you need to convert the I/O model into a DB Model. You might be wondering why we don't combine the two into the same class or struct.
Well, unless it is a straightforward model – and I have not seen many of those – you almost always need to customize the inputs and outputs compared to what you have in the database. For example, consider timestamps: you save them in the database and they...