""" Options: Date: 2025-04-29 15:43:10 Version: 8.61 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: DashboardReportRequest.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum class ReportFilterType(str, Enum): LIST = 'list' LIST_LIKE = 'list_like' DATE = 'date' RANGE = 'range' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportFilter: type: Optional[ReportFilterType] = None values: Optional[List[str]] = None start: Optional[datetime.datetime] = None end: Optional[datetime.datetime] = None higher_than: Optional[int] = None lower_than: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportsPaging: page: int = 0 page_size: int = 0 class ReportSortType(str, Enum): ASC = 'asc' DESC = 'desc' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DashboardReportResult: total_count: int = 0 report_result: Optional[List[Object]] = None # @Route("/v1/reports", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DashboardReportRequest(IReturn[DashboardReportResult], IPost): # @ApiMember(Description="Report Name", IsRequired=true, ParameterType="body") report_name: Optional[str] = None """ Report Name """ # @ApiMember(Description="Filters", IsRequired=true, ParameterType="body") filters: Dict[str, ReportFilter] = field(default_factory=dict) """ Filters """ # @ApiMember(Description="Paging", ParameterType="body") paging: Optional[ReportsPaging] = None """ Paging """ # @ApiMember(Description="Sorting", ParameterType="body") sorting: Dict[str, ReportSortType] = field(default_factory=dict) """ Sorting """