""" Options: Date: 2026-07-08 20:21:17 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: ExecutiveDashboardRequest.* #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 ExecKpi: key: Optional[str] = None label: Optional[str] = None value: Optional[str] = None sub_: Optional[str] = field(metadata=config(field_name='sub'), default=None) delta: Optional[str] = None delta_up: bool = False has_delta: bool = False good: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecCostCategory: name: Optional[str] = None cost_u_s_d: float = 0.0 billed_u_s_d: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecMonthPoint: month: Optional[str] = None revenue_u_s_d: float = 0.0 cost_u_s_d: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecBacklogYear: year: Optional[str] = None value_u_s_d: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecBacklog: total_u_s_d: float = 0.0 months_ahead: float = 0.0 awards_ytd_u_s_d: float = 0.0 burn_ytd_u_s_d: float = 0.0 by_year: List[ExecBacklogYear] = field(default_factory=list) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecWipRow: contract_id: int = 0 name: Optional[str] = None owner: Optional[str] = None value_u_s_d: float = 0.0 pct_complete: float = 0.0 billed_u_s_d: float = 0.0 over_under_u_s_d: float = 0.0 margin_pct: float = 0.0 fade_pts: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecPipelineStage: stage: Optional[str] = None value_u_s_d: float = 0.0 count: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecAgingBucket: bucket: Optional[str] = None amount_u_s_d: float = 0.0 is_retainage: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecSafetyMetric: label: Optional[str] = None value: Optional[str] = None sub_: Optional[str] = field(metadata=config(field_name='sub'), default=None) good: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecutiveDashboard: period: Optional[str] = None from_date: datetime.datetime = datetime.datetime(1, 1, 1) to_date: datetime.datetime = datetime.datetime(1, 1, 1) fy: int = 0 kpis: List[ExecKpi] = field(default_factory=list) cost_vs_billing: List[ExecCostCategory] = field(default_factory=list) monthly: List[ExecMonthPoint] = field(default_factory=list) backlog: Optional[ExecBacklog] = None wip: List[ExecWipRow] = field(default_factory=list) pipeline: List[ExecPipelineStage] = field(default_factory=list) win_rate_pct: float = 0.0 receivables: List[ExecAgingBucket] = field(default_factory=list) retainage_u_s_d: float = 0.0 dso_days: int = 0 safety: List[ExecSafetyMetric] = field(default_factory=list) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecutiveDashboardResponse: response_status: Optional[ResponseStatus] = None dashboard: Optional[ExecutiveDashboard] = None # @Route("/v1/dashboards/executive", "GET,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExecutiveDashboardRequest(IReturn[ExecutiveDashboardResponse]): period: Optional[str] = None region: Optional[str] = None fy: Optional[int] = None