/* Options: Date: 2026-10-16 00:22:00 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: KpiV2DetailRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/v1/dashboard/kpiv2/detail", Verbs="POST,OPTIONS") open class KpiV2DetailRequest : IReturn { open var BranchId:UUID? = null open var StationId:UUID? = null open var EmployeeId:UUID? = null open var FromDate:Date? = null open var ToDate:Date? = null companion object { private val responseType = KpiV2DetailResponse::class.java } override fun getResponseType(): Any? = KpiV2DetailRequest.responseType } open class KpiV2DetailResponse { open var ResponseStatus:ResponseStatus? = null open var Detail:SvcDetail? = null } open class SvcDetail { open var Kind:String? = null open var Window:SvcWindowRow? = null open var Clerk:SvcClerkRow? = null open var BranchMetrics:SvcMetrics? = null open var PerRowAverage:SvcAverage? = null open var Sessions:ArrayList = ArrayList() open var Services:ArrayList = ArrayList() open var CanSeeStaff:Boolean? = null open var CanSeeFinancial:Boolean? = null open var CanSeePay:Boolean? = null } open class SvcMetrics { open var Checkins:Int? = null open var Walkins:Int? = null open var Appts:Int? = null open var Served:Int? = null open var NoShows:Int? = null open var ApptNoShows:Int? = null open var CancelledAtWindow:Int? = null open var Abandoned:Int? = null open var Called:Int? = null open var CalledUp:Int? = null open var AbandonRate:Double? = null open var NoShowRate:Double? = null open var AvgServiceSec:Double? = null open var MedianServiceSec:Double? = null open var AvgWaitSec:Double? = null open var MaxWaitSec:Int? = null open var AvgWalkUpSec:Double? = null open var ExpectedServiceSec:Double? = null open var SignedSec:Long? = null open var ServingSec:Long? = null open var PausedSec:Long? = null open var IdleSec:Long? = null open var UnstaffedSec:Long? = null open var Utilization:Double? = null open var IdleShare:Double? = null open var PausedShare:Double? = null open var Sessions:Int? = null open var OpenDays:Int? = null open var FeesEarned:BigDecimal? = null open var AvgFee:BigDecimal? = null open var FeesPerStaffedHour:BigDecimal? = null open var ExpectedFeesPerStaffedHour:BigDecimal? = null open var LaborCost:BigDecimal? = null open var LaborPartial:Boolean? = null open var MissingCostEmployeeIds:ArrayList = ArrayList() open var MissingCost:ArrayList = ArrayList() open var LaborLocked:Boolean? = null open var Contribution:BigDecimal? = null open var LostFees:BigDecimal? = null open var LostNoShowFees:BigDecimal? = null open var Mix:HashMap = HashMap() open var HourlyServed:ArrayList = ArrayList() open var HourlyFees:ArrayList = ArrayList() open var HourlyCost:ArrayList = ArrayList() open var Tints:ArrayList = ArrayList() } open class SvcServiceRow { open var LineId:UUID? = null open var Name:String? = null open var Completed:Int? = null open var AvgServiceSec:Double? = null open var BranchAvgServiceSec:Double? = null open var FeesEarned:BigDecimal? = null open var FeeCurrent:BigDecimal? = null open var FeeMin:BigDecimal? = null open var FeeMax:BigDecimal? = null open var FeePerMinute:BigDecimal? = null open var BranchFeePerMinute:BigDecimal? = null open var FeeChanges:ArrayList = ArrayList() } open class SvcWindowRow { open var StationId:UUID? = null open var Name:String? = null open var Clerks:ArrayList = ArrayList() open var NeverStaffed:Boolean? = null open var LastStaffedUtc:Date? = null open var LastStaffedBy:String? = null open var Metrics:SvcMetrics? = null } open class SvcClerkRow { open var EmployeeId:UUID? = null open var Name:String? = null open var Windows:ArrayList = ArrayList() open var LoadedRate:BigDecimal? = null open var RateSet:Boolean? = null open var RateLocked:Boolean? = null open var Metrics:SvcMetrics? = null } open class SvcAverage { open var Count:Int? = null open var Served:Double? = null open var AvgServiceSec:Double? = null open var MedianServiceSec:Double? = null open var AvgWaitSec:Double? = null open var Utilization:Double? = null open var IdleSec:Double? = null open var PausedSec:Double? = null open var NoShows:Double? = null open var SignedSec:Double? = null open var FeesEarned:BigDecimal? = null open var FeesPerStaffedHour:BigDecimal? = null open var LaborCost:BigDecimal? = null open var Contribution:BigDecimal? = null open var LostNoShowFees:BigDecimal? = null } open class SvcSession { open var SessionId:UUID? = null open var StationId:UUID? = null open var StationName:String? = null open var EmployeeId:UUID? = null open var EmployeeName:String? = null open var LocalIn:Date? = null open var LocalOut:Date? = null open var IsOpen:Boolean? = null open var EndReason:String? = null open var PausedSec:Long? = null } open class SvcNamedTime { open var Id:UUID? = null open var Name:String? = null open var SignedSec:Long? = null open var Served:Int? = null } open class SvcTint { open var Field:String? = null open var Tone:String? = null open var Reason:String? = null open var Value:Double? = null open var Reference:Double? = null open var BranchValue:Double? = null } open class SvcFeeChange { open var LocationId:UUID? = null open var OnDate:Date? = null open var FromFee:BigDecimal? = null open var ToFee:BigDecimal? = null }