/* Options: Date: 2026-10-16 01:06:39 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: KpiV2DetailRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class SvcNamedTime { public Id: string; public Name: string; public SignedSec: number; public Served: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcTint { public Field: string; public Tone: string; public Reason: string; public Value?: number; public Reference?: number; public BranchValue?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcMetrics { public Checkins: number; public Walkins: number; public Appts: number; public Served: number; public NoShows: number; public ApptNoShows: number; public CancelledAtWindow: number; public Abandoned: number; public Called: number; public CalledUp: number; public AbandonRate?: number; public NoShowRate?: number; public AvgServiceSec?: number; public MedianServiceSec?: number; public AvgWaitSec?: number; public MaxWaitSec: number; public AvgWalkUpSec?: number; public ExpectedServiceSec?: number; public SignedSec: number; public ServingSec: number; public PausedSec: number; public IdleSec: number; public UnstaffedSec: number; public Utilization?: number; public IdleShare?: number; public PausedShare?: number; public Sessions: number; public OpenDays: number; public FeesEarned?: number; public AvgFee?: number; public FeesPerStaffedHour?: number; public ExpectedFeesPerStaffedHour?: number; public LaborCost?: number; public LaborPartial: boolean; public MissingCostEmployeeIds: string[] = []; public MissingCost: SvcNamedTime[] = []; public LaborLocked: boolean; public Contribution?: number; public LostFees?: number; public LostNoShowFees?: number; public Mix: { [index:string]: number; } = {}; public HourlyServed: number[] = []; public HourlyFees: number[] = []; public HourlyCost: number[] = []; public Tints: SvcTint[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcWindowRow { public StationId: string; public Name: string; public Clerks: SvcNamedTime[] = []; public NeverStaffed: boolean; public LastStaffedUtc?: string; public LastStaffedBy: string; public Metrics: SvcMetrics; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcClerkRow { public EmployeeId: string; public Name: string; public Windows: SvcNamedTime[] = []; public LoadedRate?: number; public RateSet: boolean; public RateLocked: boolean; public Metrics: SvcMetrics; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcAverage { public Count: number; public Served: number; public AvgServiceSec?: number; public MedianServiceSec?: number; public AvgWaitSec?: number; public Utilization?: number; public IdleSec: number; public PausedSec: number; public NoShows: number; public SignedSec: number; public FeesEarned?: number; public FeesPerStaffedHour?: number; public LaborCost?: number; public Contribution?: number; public LostNoShowFees?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcSession { public SessionId: string; public StationId: string; public StationName: string; public EmployeeId: string; public EmployeeName: string; public LocalIn: string; public LocalOut: string; public IsOpen: boolean; public EndReason: string; public PausedSec: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcFeeChange { public LocationId: string; public OnDate: string; public FromFee: number; public ToFee: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcServiceRow { public LineId: string; public Name: string; public Completed: number; public AvgServiceSec?: number; public BranchAvgServiceSec?: number; public FeesEarned?: number; public FeeCurrent?: number; public FeeMin?: number; public FeeMax?: number; public FeePerMinute?: number; public BranchFeePerMinute?: number; public FeeChanges: SvcFeeChange[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SvcDetail { public Kind: string; public Window: SvcWindowRow; public Clerk: SvcClerkRow; public BranchMetrics: SvcMetrics; public PerRowAverage: SvcAverage; public Sessions: SvcSession[] = []; public Services: SvcServiceRow[] = []; public CanSeeStaff: boolean; public CanSeeFinancial: boolean; public CanSeePay: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public Message: string; // @DataMember(Order=3) public StackTrace: string; // @DataMember(Order=4) public Errors: ResponseError[] = []; // @DataMember(Order=5) public Meta: { [index:string]: string; } = {}; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class KpiV2DetailResponse { public ResponseStatus: ResponseStatus; public Detail: SvcDetail; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v1/dashboard/kpiv2/detail", "POST,OPTIONS") export class KpiV2DetailRequest implements IReturn { public BranchId: string; public StationId?: string; public EmployeeId?: string; public FromDate: string; public ToDate: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'KpiV2DetailRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new KpiV2DetailResponse(); } }