For this level of detail you'll need to write a custom reporter plug-in. This will have the ability to introspect the whole workflow and you can also examine input/output files themselves (needed for 3) which a generic plugin is not going to do.
You could then export all the info as JSON, or you could have your plugin update your database directly.
See:
https://github.com/snakemake/snakemake-interface-report-plugins/tree/main
And here is an example of a plugin:
Note - when making a test plugin I found that using poetry, as suggested here, was more of a hindrance than a help, but YMMV.