The following diagram is meant to model the dataclasses Forecast, Report, Measurement, and WeatherOptions. Define each dataclass based on the diagram.

Forecast, Report, WeatherOptions, Measurement UML diagram

Then, define a function total_rainfall that consumes a list of Forecast and produces an integer representing the total amount of rainfall over all the reports in each provided Forecast.