c # – What should be the architecture of the code to download and cache offline data (Images / Videos / 3d models)?

I develop an application that has a 3D room. Each piece is a 3D model and may contain media panels. each panel contains images in the form of slides or videos. I have created the following data models:

Classroom {
string identifier;
string room3dmodellink;
listing mediators;
}

Mediaboard class {
string identifier;
mediaboard3dModleLink chain;
listing slides;
}

Slide class {
string identifier;
string imageLink;
}

These data models are populated from the server. I need to know how to create this code to download and cache all models and images stored in local storage and get / load from cache on demand. It should also have a mechanism for updating cached / offline data. Where should I store the path of locally downloaded models and images? Saving the path of downloaded images / templates in these templates does not make sense to me. Need suggestion / solution. Thank you

P.S: I use Unity 3D and C #.