# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-09-30 14:20:35 Version: 10.20 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk #MakePartial: True #MakeVirtual: True #MakeInternal: False #MakeDataContractsExtensible: False #AddReturnMarker: True #AddDescriptionAsComments: True #AddDataContractAttributes: False #AddIndexesToDataMembers: False #AddGeneratedCodeAttributes: False #AddResponseStatus: False #AddImplicitVersion: #InitializeCollections: False #ExportValueTypes: False IncludeTypes: DashboardReportRequest.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module ReportFilterType LIST = 'list' LIST_LIKE = 'list_like' DATE = 'date' RANGE = 'range' end module ReportSortType ASC = 'asc' DESC = 'desc' end module IReturn def response_type() = T def get_type_name() = 'IReturn' end module IPost end class ReportFilter include ServiceStack::DTO # @return [ReportFilterType] attr_accessor :type # @return [IEnumerable] attr_accessor :values # @return [DateTime] attr_accessor :start # @return [DateTime] attr_accessor :end # @return [Integer] attr_accessor :higher_than # @return [Integer] attr_accessor :lower_than def self.properties { type: { name: 'type' }, values: { name: 'values' }, start: { name: 'start', type: DateTime }, end: { name: 'end', type: DateTime }, higher_than: { name: 'higherThan' }, lower_than: { name: 'lowerThan' }, } end end class ReportsPaging include ServiceStack::DTO # @return [Integer] attr_accessor :page # @return [Integer] attr_accessor :page_size def self.properties { page: { name: 'page' }, page_size: { name: 'pageSize' }, } end end class DashboardReportResult include ServiceStack::DTO # @return [Integer] attr_accessor :total_count # @return [IEnumerable] attr_accessor :report_result def self.properties { total_count: { name: 'totalCount' }, report_result: { name: 'reportResult' }, } end end # @Route("/v1/reports", "POST") class DashboardReportRequest include ServiceStack::DTO # @ApiMember(Description: "Report Name", IsRequired: "true", ParameterType: "body") # @return [String] attr_accessor :report_name # @ApiMember(Description: "Filters", IsRequired: "true", ParameterType: "body") # @return [Dictionary] attr_accessor :filters # @ApiMember(Description: "Paging", ParameterType: "body") # @return [ReportsPaging] attr_accessor :paging # @ApiMember(Description: "Sorting", ParameterType: "body") # @return [Dictionary] attr_accessor :sorting def self.properties { report_name: { name: 'reportName' }, filters: { name: 'filters', type: { String => ReportFilter } }, paging: { name: 'paging', type: ReportsPaging }, sorting: { name: 'sorting' }, } end def response_type() = DashboardReportResult def get_type_name() = 'DashboardReportRequest' def get_method() = 'POST' end