""" Options: Date: 2025-12-06 07:29:40 Version: 8.80 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ReportManagerDataRequest.* #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 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class JToken(IJsonLineInfo): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class JValue(JToken): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetSqlResult: sql: Optional[str] = None values: Optional[Dict[str, JValue]] = None error: Optional[str] = None has_error: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportManagerDataJoin: source: Optional[str] = None target: Optional[str] = None source_field: Optional[str] = None target_field: Optional[str] = None id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportManagerDataSort: field: Optional[str] = None direction: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportManagerDataBucketOption: id: Optional[str] = None values: List[Object] = field(default_factory=list) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportManagerDataBucket: bucket_column: Optional[str] = None options: List[ReportManagerDataBucketOption] = field(default_factory=list) class IJsonLineInfo: line_number: int = 0 line_position: int = 0 # @Route("/v1/ReportManager/api/Objects/{Table}/data", "GET,POST,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReportManagerDataRequest: table: Optional[str] = None table_key: Optional[str] = None query: Optional[str] = None query_cast: Optional[GetSqlResult] = None columns: List[str] = field(default_factory=list) joins: Optional[str] = None joins_cast: List[ReportManagerDataJoin] = field(default_factory=list) limit: Optional[str] = None sort: Optional[str] = None sort_cast: List[ReportManagerDataSort] = field(default_factory=list) group: List[str] = field(default_factory=list) buckets: Optional[str] = None buckets_cast: List[ReportManagerDataBucket] = field(default_factory=list)