"""v3 day capture: reservation search/detail/rate plus bounded primary summaries.""" from dataclasses import dataclass, field from . import collect_arr_day as day, collect_arr_source as source, profile_summary VERSION = "arr-api-capture/v3" OPERATIONS = [*day.OPERATIONS, profile_summary.OPERATION] @dataclass(frozen=True) class Options(day.Options): max_profiles: int = field(kw_only=True) def validate(self): super().validate() source.require(type(self.max_profiles) is int and 1 <= self.max_profiles <= self.max_records, "invalid_profile_limit") def collect(options, archive, reader, rates, profiles): source.require(type(options) is Options, "invalid_named_day_options") return day._collect(options, archive, reader, rates, profiles=profiles)