Trendsic Platform Service

<back to all web services

KpiV2Request

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/dashboard/kpiv2
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;

public class dtos
{

    public static class KpiV2Request
    {
        public Date FromDate = null;
        public Date ToDate = null;
        public ArrayList<UUID> LocationIds = new ArrayList<UUID>();
        public Boolean IncludeScope = null;
        public String StateCode = null;
        public String Compare = null;
        
        public Date getFromDate() { return FromDate; }
        public KpiV2Request setFromDate(Date value) { this.FromDate = value; return this; }
        public Date getToDate() { return ToDate; }
        public KpiV2Request setToDate(Date value) { this.ToDate = value; return this; }
        public ArrayList<UUID> getLocationIds() { return LocationIds; }
        public KpiV2Request setLocationIds(ArrayList<UUID> value) { this.LocationIds = value; return this; }
        public Boolean isIncludeScope() { return IncludeScope; }
        public KpiV2Request setIncludeScope(Boolean value) { this.IncludeScope = value; return this; }
        public String getStateCode() { return StateCode; }
        public KpiV2Request setStateCode(String value) { this.StateCode = value; return this; }
        public String getCompare() { return Compare; }
        public KpiV2Request setCompare(String value) { this.Compare = value; return this; }
    }

    public static class KpiV2Response
    {
        public ResponseStatus ResponseStatus = null;
        public ArrayList<DashboardStatTile> Stats = new ArrayList<DashboardStatTile>();
        public ArrayList<DashboardSeries> Trend = new ArrayList<DashboardSeries>();
        public DashboardSeries ServicesByType = null;
        public ArrayList<KpiV2LocationRow> LocationLeaderboard = new ArrayList<KpiV2LocationRow>();
        public ArrayList<KpiV2WorkerRow> WorkerProductivity = new ArrayList<KpiV2WorkerRow>();
        public ArrayList<KpiV2HeatPoint> Heatmap = new ArrayList<KpiV2HeatPoint>();
        public ArrayList<KpiV2LiveRow> LiveQueue = new ArrayList<KpiV2LiveRow>();
        public SvcScope Scope = null;
        
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public KpiV2Response setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
        public ArrayList<DashboardStatTile> getStats() { return Stats; }
        public KpiV2Response setStats(ArrayList<DashboardStatTile> value) { this.Stats = value; return this; }
        public ArrayList<DashboardSeries> getTrend() { return Trend; }
        public KpiV2Response setTrend(ArrayList<DashboardSeries> value) { this.Trend = value; return this; }
        public DashboardSeries getServicesByType() { return ServicesByType; }
        public KpiV2Response setServicesByType(DashboardSeries value) { this.ServicesByType = value; return this; }
        public ArrayList<KpiV2LocationRow> getLocationLeaderboard() { return LocationLeaderboard; }
        public KpiV2Response setLocationLeaderboard(ArrayList<KpiV2LocationRow> value) { this.LocationLeaderboard = value; return this; }
        public ArrayList<KpiV2WorkerRow> getWorkerProductivity() { return WorkerProductivity; }
        public KpiV2Response setWorkerProductivity(ArrayList<KpiV2WorkerRow> value) { this.WorkerProductivity = value; return this; }
        public ArrayList<KpiV2HeatPoint> getHeatmap() { return Heatmap; }
        public KpiV2Response setHeatmap(ArrayList<KpiV2HeatPoint> value) { this.Heatmap = value; return this; }
        public ArrayList<KpiV2LiveRow> getLiveQueue() { return LiveQueue; }
        public KpiV2Response setLiveQueue(ArrayList<KpiV2LiveRow> value) { this.LiveQueue = value; return this; }
        public SvcScope getScope() { return Scope; }
        public KpiV2Response setScope(SvcScope value) { this.Scope = value; return this; }
    }

    public static class DashboardStatTile
    {
        public String Key = null;
        public String Label = null;
        public Double Value = null;
        public Double PreviousValue = null;
        public String Unit = null;
        public Double DeltaPct = null;
        
        public String getKey() { return Key; }
        public DashboardStatTile setKey(String value) { this.Key = value; return this; }
        public String getLabel() { return Label; }
        public DashboardStatTile setLabel(String value) { this.Label = value; return this; }
        public Double getValue() { return Value; }
        public DashboardStatTile setValue(Double value) { this.Value = value; return this; }
        public Double getPreviousValue() { return PreviousValue; }
        public DashboardStatTile setPreviousValue(Double value) { this.PreviousValue = value; return this; }
        public String getUnit() { return Unit; }
        public DashboardStatTile setUnit(String value) { this.Unit = value; return this; }
        public Double getDeltaPct() { return DeltaPct; }
        public DashboardStatTile setDeltaPct(Double value) { this.DeltaPct = value; return this; }
    }

    public static class DashboardSeries
    {
        public String Name = null;
        public ArrayList<DashboardSeriesPoint> Points = new ArrayList<DashboardSeriesPoint>();
        
        public String getName() { return Name; }
        public DashboardSeries setName(String value) { this.Name = value; return this; }
        public ArrayList<DashboardSeriesPoint> getPoints() { return Points; }
        public DashboardSeries setPoints(ArrayList<DashboardSeriesPoint> value) { this.Points = value; return this; }
    }

    public static class DashboardSeriesPoint
    {
        public String Label = null;
        public Double Value = null;
        
        public String getLabel() { return Label; }
        public DashboardSeriesPoint setLabel(String value) { this.Label = value; return this; }
        public Double getValue() { return Value; }
        public DashboardSeriesPoint setValue(Double value) { this.Value = value; return this; }
    }

    public static class KpiV2LocationRow
    {
        public String LocationName = null;
        public Integer Walkins = null;
        public Integer Completed = null;
        public Double AvgServiceMinutes = null;
        public Double AbandonmentPct = null;
        
        public String getLocationName() { return LocationName; }
        public KpiV2LocationRow setLocationName(String value) { this.LocationName = value; return this; }
        public Integer getWalkins() { return Walkins; }
        public KpiV2LocationRow setWalkins(Integer value) { this.Walkins = value; return this; }
        public Integer getCompleted() { return Completed; }
        public KpiV2LocationRow setCompleted(Integer value) { this.Completed = value; return this; }
        public Double getAvgServiceMinutes() { return AvgServiceMinutes; }
        public KpiV2LocationRow setAvgServiceMinutes(Double value) { this.AvgServiceMinutes = value; return this; }
        public Double getAbandonmentPct() { return AbandonmentPct; }
        public KpiV2LocationRow setAbandonmentPct(Double value) { this.AbandonmentPct = value; return this; }
    }

    public static class KpiV2WorkerRow
    {
        public String WorkerName = null;
        public Integer Completed = null;
        public Double AvgServiceMinutes = null;
        
        public String getWorkerName() { return WorkerName; }
        public KpiV2WorkerRow setWorkerName(String value) { this.WorkerName = value; return this; }
        public Integer getCompleted() { return Completed; }
        public KpiV2WorkerRow setCompleted(Integer value) { this.Completed = value; return this; }
        public Double getAvgServiceMinutes() { return AvgServiceMinutes; }
        public KpiV2WorkerRow setAvgServiceMinutes(Double value) { this.AvgServiceMinutes = value; return this; }
    }

    public static class KpiV2HeatPoint
    {
        public Integer Dow = null;
        public Integer Hr = null;
        public Integer Cnt = null;
        
        public Integer getDow() { return Dow; }
        public KpiV2HeatPoint setDow(Integer value) { this.Dow = value; return this; }
        public Integer getHr() { return Hr; }
        public KpiV2HeatPoint setHr(Integer value) { this.Hr = value; return this; }
        public Integer getCnt() { return Cnt; }
        public KpiV2HeatPoint setCnt(Integer value) { this.Cnt = value; return this; }
    }

    public static class KpiV2LiveRow
    {
        public String LocationName = null;
        public Integer Waiting = null;
        public Integer InProgress = null;
        
        public String getLocationName() { return LocationName; }
        public KpiV2LiveRow setLocationName(String value) { this.LocationName = value; return this; }
        public Integer getWaiting() { return Waiting; }
        public KpiV2LiveRow setWaiting(Integer value) { this.Waiting = value; return this; }
        public Integer getInProgress() { return InProgress; }
        public KpiV2LiveRow setInProgress(Integer value) { this.InProgress = value; return this; }
    }

    public static class SvcScope
    {
        public String StateCode = null;
        public ArrayList<SvcBranchRow> Branches = new ArrayList<SvcBranchRow>();
        public ArrayList<SvcStateRow> States = new ArrayList<SvcStateRow>();
        public SvcMetrics Total = null;
        public SvcComparison Comparison = null;
        public ArrayList<SvcServiceRow> FeesByService = new ArrayList<SvcServiceRow>();
        public ArrayList<SvcHourRow> ByHour = new ArrayList<SvcHourRow>();
        public ArrayList<SvcWorkerRow> Workers = new ArrayList<SvcWorkerRow>();
        public Boolean MultiZone = null;
        public Boolean MultiState = null;
        public Date RecordingSinceUtc = null;
        public Date SessionsSinceUtc = null;
        public ArrayList<SvcAlert> Alerts = new ArrayList<SvcAlert>();
        public Boolean CanSeeStaff = null;
        public Boolean CanSeeFinancial = null;
        public Boolean CanSeePay = null;
        
        public String getStateCode() { return StateCode; }
        public SvcScope setStateCode(String value) { this.StateCode = value; return this; }
        public ArrayList<SvcBranchRow> getBranches() { return Branches; }
        public SvcScope setBranches(ArrayList<SvcBranchRow> value) { this.Branches = value; return this; }
        public ArrayList<SvcStateRow> getStates() { return States; }
        public SvcScope setStates(ArrayList<SvcStateRow> value) { this.States = value; return this; }
        public SvcMetrics getTotal() { return Total; }
        public SvcScope setTotal(SvcMetrics value) { this.Total = value; return this; }
        public SvcComparison getComparison() { return Comparison; }
        public SvcScope setComparison(SvcComparison value) { this.Comparison = value; return this; }
        public ArrayList<SvcServiceRow> getFeesByService() { return FeesByService; }
        public SvcScope setFeesByService(ArrayList<SvcServiceRow> value) { this.FeesByService = value; return this; }
        public ArrayList<SvcHourRow> getByHour() { return ByHour; }
        public SvcScope setByHour(ArrayList<SvcHourRow> value) { this.ByHour = value; return this; }
        public ArrayList<SvcWorkerRow> getWorkers() { return Workers; }
        public SvcScope setWorkers(ArrayList<SvcWorkerRow> value) { this.Workers = value; return this; }
        public Boolean isMultiZone() { return MultiZone; }
        public SvcScope setMultiZone(Boolean value) { this.MultiZone = value; return this; }
        public Boolean isMultiState() { return MultiState; }
        public SvcScope setMultiState(Boolean value) { this.MultiState = value; return this; }
        public Date getRecordingSinceUtc() { return RecordingSinceUtc; }
        public SvcScope setRecordingSinceUtc(Date value) { this.RecordingSinceUtc = value; return this; }
        public Date getSessionsSinceUtc() { return SessionsSinceUtc; }
        public SvcScope setSessionsSinceUtc(Date value) { this.SessionsSinceUtc = value; return this; }
        public ArrayList<SvcAlert> getAlerts() { return Alerts; }
        public SvcScope setAlerts(ArrayList<SvcAlert> value) { this.Alerts = value; return this; }
        public Boolean isCanSeeStaff() { return CanSeeStaff; }
        public SvcScope setCanSeeStaff(Boolean value) { this.CanSeeStaff = value; return this; }
        public Boolean isCanSeeFinancial() { return CanSeeFinancial; }
        public SvcScope setCanSeeFinancial(Boolean value) { this.CanSeeFinancial = value; return this; }
        public Boolean isCanSeePay() { return CanSeePay; }
        public SvcScope setCanSeePay(Boolean value) { this.CanSeePay = value; return this; }
    }

    public static class SvcBranchRow
    {
        public UUID BranchId = null;
        public String Name = null;
        public String StateCode = null;
        public String ZoneCode = null;
        public String TimeZone = null;
        public Integer Windows = null;
        public Date RecordingSinceUtc = null;
        public Date SessionsSinceUtc = null;
        public SvcMetrics Metrics = null;
        
        public UUID getBranchId() { return BranchId; }
        public SvcBranchRow setBranchId(UUID value) { this.BranchId = value; return this; }
        public String getName() { return Name; }
        public SvcBranchRow setName(String value) { this.Name = value; return this; }
        public String getStateCode() { return StateCode; }
        public SvcBranchRow setStateCode(String value) { this.StateCode = value; return this; }
        public String getZoneCode() { return ZoneCode; }
        public SvcBranchRow setZoneCode(String value) { this.ZoneCode = value; return this; }
        public String getTimeZone() { return TimeZone; }
        public SvcBranchRow setTimeZone(String value) { this.TimeZone = value; return this; }
        public Integer getWindows() { return Windows; }
        public SvcBranchRow setWindows(Integer value) { this.Windows = value; return this; }
        public Date getRecordingSinceUtc() { return RecordingSinceUtc; }
        public SvcBranchRow setRecordingSinceUtc(Date value) { this.RecordingSinceUtc = value; return this; }
        public Date getSessionsSinceUtc() { return SessionsSinceUtc; }
        public SvcBranchRow setSessionsSinceUtc(Date value) { this.SessionsSinceUtc = value; return this; }
        public SvcMetrics getMetrics() { return Metrics; }
        public SvcBranchRow setMetrics(SvcMetrics value) { this.Metrics = value; return this; }
    }

    public static class SvcMetrics
    {
        public Integer Checkins = null;
        public Integer Walkins = null;
        public Integer Appts = null;
        public Integer Served = null;
        public Integer NoShows = null;
        public Integer ApptNoShows = null;
        public Integer CancelledAtWindow = null;
        public Integer Abandoned = null;
        public Integer Called = null;
        public Integer CalledUp = null;
        public Double AbandonRate = null;
        public Double NoShowRate = null;
        public Double AvgServiceSec = null;
        public Double MedianServiceSec = null;
        public Double AvgWaitSec = null;
        public Integer MaxWaitSec = null;
        public Double AvgWalkUpSec = null;
        public Double ExpectedServiceSec = null;
        public Long SignedSec = null;
        public Long ServingSec = null;
        public Long PausedSec = null;
        public Long IdleSec = null;
        public Long UnstaffedSec = null;
        public Double Utilization = null;
        public Double IdleShare = null;
        public Double PausedShare = null;
        public Integer Sessions = null;
        public Integer OpenDays = null;
        public BigDecimal FeesEarned = null;
        public BigDecimal AvgFee = null;
        public BigDecimal FeesPerStaffedHour = null;
        public BigDecimal ExpectedFeesPerStaffedHour = null;
        public BigDecimal LaborCost = null;
        public Boolean LaborPartial = null;
        public ArrayList<UUID> MissingCostEmployeeIds = new ArrayList<UUID>();
        public ArrayList<SvcNamedTime> MissingCost = new ArrayList<SvcNamedTime>();
        public Boolean LaborLocked = null;
        public BigDecimal Contribution = null;
        public BigDecimal LostFees = null;
        public BigDecimal LostNoShowFees = null;
        public HashMap<UUID,Integer> Mix = new HashMap<UUID,Integer>();
        public ArrayList<Integer> HourlyServed = new ArrayList<Integer>();
        public ArrayList<BigDecimal> HourlyFees = new ArrayList<BigDecimal>();
        public ArrayList<BigDecimal> HourlyCost = new ArrayList<BigDecimal>();
        public ArrayList<SvcTint> Tints = new ArrayList<SvcTint>();
        
        public Integer getCheckins() { return Checkins; }
        public SvcMetrics setCheckins(Integer value) { this.Checkins = value; return this; }
        public Integer getWalkins() { return Walkins; }
        public SvcMetrics setWalkins(Integer value) { this.Walkins = value; return this; }
        public Integer getAppts() { return Appts; }
        public SvcMetrics setAppts(Integer value) { this.Appts = value; return this; }
        public Integer getServed() { return Served; }
        public SvcMetrics setServed(Integer value) { this.Served = value; return this; }
        public Integer getNoShows() { return NoShows; }
        public SvcMetrics setNoShows(Integer value) { this.NoShows = value; return this; }
        public Integer getApptNoShows() { return ApptNoShows; }
        public SvcMetrics setApptNoShows(Integer value) { this.ApptNoShows = value; return this; }
        public Integer getCancelledAtWindow() { return CancelledAtWindow; }
        public SvcMetrics setCancelledAtWindow(Integer value) { this.CancelledAtWindow = value; return this; }
        public Integer getAbandoned() { return Abandoned; }
        public SvcMetrics setAbandoned(Integer value) { this.Abandoned = value; return this; }
        public Integer getCalled() { return Called; }
        public SvcMetrics setCalled(Integer value) { this.Called = value; return this; }
        public Integer getCalledUp() { return CalledUp; }
        public SvcMetrics setCalledUp(Integer value) { this.CalledUp = value; return this; }
        public Double getAbandonRate() { return AbandonRate; }
        public SvcMetrics setAbandonRate(Double value) { this.AbandonRate = value; return this; }
        public Double getNoShowRate() { return NoShowRate; }
        public SvcMetrics setNoShowRate(Double value) { this.NoShowRate = value; return this; }
        public Double getAvgServiceSec() { return AvgServiceSec; }
        public SvcMetrics setAvgServiceSec(Double value) { this.AvgServiceSec = value; return this; }
        public Double getMedianServiceSec() { return MedianServiceSec; }
        public SvcMetrics setMedianServiceSec(Double value) { this.MedianServiceSec = value; return this; }
        public Double getAvgWaitSec() { return AvgWaitSec; }
        public SvcMetrics setAvgWaitSec(Double value) { this.AvgWaitSec = value; return this; }
        public Integer getMaxWaitSec() { return MaxWaitSec; }
        public SvcMetrics setMaxWaitSec(Integer value) { this.MaxWaitSec = value; return this; }
        public Double getAvgWalkUpSec() { return AvgWalkUpSec; }
        public SvcMetrics setAvgWalkUpSec(Double value) { this.AvgWalkUpSec = value; return this; }
        public Double getExpectedServiceSec() { return ExpectedServiceSec; }
        public SvcMetrics setExpectedServiceSec(Double value) { this.ExpectedServiceSec = value; return this; }
        public Long getSignedSec() { return SignedSec; }
        public SvcMetrics setSignedSec(Long value) { this.SignedSec = value; return this; }
        public Long getServingSec() { return ServingSec; }
        public SvcMetrics setServingSec(Long value) { this.ServingSec = value; return this; }
        public Long getPausedSec() { return PausedSec; }
        public SvcMetrics setPausedSec(Long value) { this.PausedSec = value; return this; }
        public Long getIdleSec() { return IdleSec; }
        public SvcMetrics setIdleSec(Long value) { this.IdleSec = value; return this; }
        public Long getUnstaffedSec() { return UnstaffedSec; }
        public SvcMetrics setUnstaffedSec(Long value) { this.UnstaffedSec = value; return this; }
        public Double getUtilization() { return Utilization; }
        public SvcMetrics setUtilization(Double value) { this.Utilization = value; return this; }
        public Double getIdleShare() { return IdleShare; }
        public SvcMetrics setIdleShare(Double value) { this.IdleShare = value; return this; }
        public Double getPausedShare() { return PausedShare; }
        public SvcMetrics setPausedShare(Double value) { this.PausedShare = value; return this; }
        public Integer getSessions() { return Sessions; }
        public SvcMetrics setSessions(Integer value) { this.Sessions = value; return this; }
        public Integer getOpenDays() { return OpenDays; }
        public SvcMetrics setOpenDays(Integer value) { this.OpenDays = value; return this; }
        public BigDecimal getFeesEarned() { return FeesEarned; }
        public SvcMetrics setFeesEarned(BigDecimal value) { this.FeesEarned = value; return this; }
        public BigDecimal getAvgFee() { return AvgFee; }
        public SvcMetrics setAvgFee(BigDecimal value) { this.AvgFee = value; return this; }
        public BigDecimal getFeesPerStaffedHour() { return FeesPerStaffedHour; }
        public SvcMetrics setFeesPerStaffedHour(BigDecimal value) { this.FeesPerStaffedHour = value; return this; }
        public BigDecimal getExpectedFeesPerStaffedHour() { return ExpectedFeesPerStaffedHour; }
        public SvcMetrics setExpectedFeesPerStaffedHour(BigDecimal value) { this.ExpectedFeesPerStaffedHour = value; return this; }
        public BigDecimal getLaborCost() { return LaborCost; }
        public SvcMetrics setLaborCost(BigDecimal value) { this.LaborCost = value; return this; }
        public Boolean isLaborPartial() { return LaborPartial; }
        public SvcMetrics setLaborPartial(Boolean value) { this.LaborPartial = value; return this; }
        public ArrayList<UUID> getMissingCostEmployeeIds() { return MissingCostEmployeeIds; }
        public SvcMetrics setMissingCostEmployeeIds(ArrayList<UUID> value) { this.MissingCostEmployeeIds = value; return this; }
        public ArrayList<SvcNamedTime> getMissingCost() { return MissingCost; }
        public SvcMetrics setMissingCost(ArrayList<SvcNamedTime> value) { this.MissingCost = value; return this; }
        public Boolean isLaborLocked() { return LaborLocked; }
        public SvcMetrics setLaborLocked(Boolean value) { this.LaborLocked = value; return this; }
        public BigDecimal getContribution() { return Contribution; }
        public SvcMetrics setContribution(BigDecimal value) { this.Contribution = value; return this; }
        public BigDecimal getLostFees() { return LostFees; }
        public SvcMetrics setLostFees(BigDecimal value) { this.LostFees = value; return this; }
        public BigDecimal getLostNoShowFees() { return LostNoShowFees; }
        public SvcMetrics setLostNoShowFees(BigDecimal value) { this.LostNoShowFees = value; return this; }
        public HashMap<UUID,Integer> getMix() { return Mix; }
        public SvcMetrics setMix(HashMap<UUID,Integer> value) { this.Mix = value; return this; }
        public ArrayList<Integer> getHourlyServed() { return HourlyServed; }
        public SvcMetrics setHourlyServed(ArrayList<Integer> value) { this.HourlyServed = value; return this; }
        public ArrayList<BigDecimal> getHourlyFees() { return HourlyFees; }
        public SvcMetrics setHourlyFees(ArrayList<BigDecimal> value) { this.HourlyFees = value; return this; }
        public ArrayList<BigDecimal> getHourlyCost() { return HourlyCost; }
        public SvcMetrics setHourlyCost(ArrayList<BigDecimal> value) { this.HourlyCost = value; return this; }
        public ArrayList<SvcTint> getTints() { return Tints; }
        public SvcMetrics setTints(ArrayList<SvcTint> value) { this.Tints = value; return this; }
    }

    public static class SvcNamedTime
    {
        public UUID Id = null;
        public String Name = null;
        public Long SignedSec = null;
        public Integer Served = null;
        
        public UUID getId() { return Id; }
        public SvcNamedTime setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public SvcNamedTime setName(String value) { this.Name = value; return this; }
        public Long getSignedSec() { return SignedSec; }
        public SvcNamedTime setSignedSec(Long value) { this.SignedSec = value; return this; }
        public Integer getServed() { return Served; }
        public SvcNamedTime setServed(Integer value) { this.Served = value; return this; }
    }

    public static class SvcTint
    {
        public String Field = null;
        public String Tone = null;
        public String Reason = null;
        public Double Value = null;
        public Double Reference = null;
        public Double BranchValue = null;
        
        public String getField() { return Field; }
        public SvcTint setField(String value) { this.Field = value; return this; }
        public String getTone() { return Tone; }
        public SvcTint setTone(String value) { this.Tone = value; return this; }
        public String getReason() { return Reason; }
        public SvcTint setReason(String value) { this.Reason = value; return this; }
        public Double getValue() { return Value; }
        public SvcTint setValue(Double value) { this.Value = value; return this; }
        public Double getReference() { return Reference; }
        public SvcTint setReference(Double value) { this.Reference = value; return this; }
        public Double getBranchValue() { return BranchValue; }
        public SvcTint setBranchValue(Double value) { this.BranchValue = value; return this; }
    }

    public static class SvcStateRow
    {
        public String StateCode = null;
        public String StateName = null;
        public Integer Branches = null;
        public SvcMetrics Metrics = null;
        
        public String getStateCode() { return StateCode; }
        public SvcStateRow setStateCode(String value) { this.StateCode = value; return this; }
        public String getStateName() { return StateName; }
        public SvcStateRow setStateName(String value) { this.StateName = value; return this; }
        public Integer getBranches() { return Branches; }
        public SvcStateRow setBranches(Integer value) { this.Branches = value; return this; }
        public SvcMetrics getMetrics() { return Metrics; }
        public SvcStateRow setMetrics(SvcMetrics value) { this.Metrics = value; return this; }
    }

    public static class SvcComparison
    {
        public String Mode = null;
        public Date FromDate = null;
        public Date ToDate = null;
        public Integer CutoffMinute = null;
        public Boolean HasData = null;
        public SvcMetrics Metrics = null;
        
        public String getMode() { return Mode; }
        public SvcComparison setMode(String value) { this.Mode = value; return this; }
        public Date getFromDate() { return FromDate; }
        public SvcComparison setFromDate(Date value) { this.FromDate = value; return this; }
        public Date getToDate() { return ToDate; }
        public SvcComparison setToDate(Date value) { this.ToDate = value; return this; }
        public Integer getCutoffMinute() { return CutoffMinute; }
        public SvcComparison setCutoffMinute(Integer value) { this.CutoffMinute = value; return this; }
        public Boolean isHasData() { return HasData; }
        public SvcComparison setHasData(Boolean value) { this.HasData = value; return this; }
        public SvcMetrics getMetrics() { return Metrics; }
        public SvcComparison setMetrics(SvcMetrics value) { this.Metrics = value; return this; }
    }

    public static class SvcServiceRow
    {
        public UUID LineId = null;
        public String Name = null;
        public Integer Completed = null;
        public Double AvgServiceSec = null;
        public Double BranchAvgServiceSec = null;
        public BigDecimal FeesEarned = null;
        public BigDecimal FeeCurrent = null;
        public BigDecimal FeeMin = null;
        public BigDecimal FeeMax = null;
        public BigDecimal FeePerMinute = null;
        public BigDecimal BranchFeePerMinute = null;
        public ArrayList<SvcFeeChange> FeeChanges = new ArrayList<SvcFeeChange>();
        
        public UUID getLineId() { return LineId; }
        public SvcServiceRow setLineId(UUID value) { this.LineId = value; return this; }
        public String getName() { return Name; }
        public SvcServiceRow setName(String value) { this.Name = value; return this; }
        public Integer getCompleted() { return Completed; }
        public SvcServiceRow setCompleted(Integer value) { this.Completed = value; return this; }
        public Double getAvgServiceSec() { return AvgServiceSec; }
        public SvcServiceRow setAvgServiceSec(Double value) { this.AvgServiceSec = value; return this; }
        public Double getBranchAvgServiceSec() { return BranchAvgServiceSec; }
        public SvcServiceRow setBranchAvgServiceSec(Double value) { this.BranchAvgServiceSec = value; return this; }
        public BigDecimal getFeesEarned() { return FeesEarned; }
        public SvcServiceRow setFeesEarned(BigDecimal value) { this.FeesEarned = value; return this; }
        public BigDecimal getFeeCurrent() { return FeeCurrent; }
        public SvcServiceRow setFeeCurrent(BigDecimal value) { this.FeeCurrent = value; return this; }
        public BigDecimal getFeeMin() { return FeeMin; }
        public SvcServiceRow setFeeMin(BigDecimal value) { this.FeeMin = value; return this; }
        public BigDecimal getFeeMax() { return FeeMax; }
        public SvcServiceRow setFeeMax(BigDecimal value) { this.FeeMax = value; return this; }
        public BigDecimal getFeePerMinute() { return FeePerMinute; }
        public SvcServiceRow setFeePerMinute(BigDecimal value) { this.FeePerMinute = value; return this; }
        public BigDecimal getBranchFeePerMinute() { return BranchFeePerMinute; }
        public SvcServiceRow setBranchFeePerMinute(BigDecimal value) { this.BranchFeePerMinute = value; return this; }
        public ArrayList<SvcFeeChange> getFeeChanges() { return FeeChanges; }
        public SvcServiceRow setFeeChanges(ArrayList<SvcFeeChange> value) { this.FeeChanges = value; return this; }
    }

    public static class SvcFeeChange
    {
        public UUID LocationId = null;
        public Date OnDate = null;
        public BigDecimal FromFee = null;
        public BigDecimal ToFee = null;
        
        public UUID getLocationId() { return LocationId; }
        public SvcFeeChange setLocationId(UUID value) { this.LocationId = value; return this; }
        public Date getOnDate() { return OnDate; }
        public SvcFeeChange setOnDate(Date value) { this.OnDate = value; return this; }
        public BigDecimal getFromFee() { return FromFee; }
        public SvcFeeChange setFromFee(BigDecimal value) { this.FromFee = value; return this; }
        public BigDecimal getToFee() { return ToFee; }
        public SvcFeeChange setToFee(BigDecimal value) { this.ToFee = value; return this; }
    }

    public static class SvcHourRow
    {
        public Integer LocalHour = null;
        public Integer Served = null;
        public BigDecimal FeesEarned = null;
        public BigDecimal CostToStaff = null;
        
        public Integer getLocalHour() { return LocalHour; }
        public SvcHourRow setLocalHour(Integer value) { this.LocalHour = value; return this; }
        public Integer getServed() { return Served; }
        public SvcHourRow setServed(Integer value) { this.Served = value; return this; }
        public BigDecimal getFeesEarned() { return FeesEarned; }
        public SvcHourRow setFeesEarned(BigDecimal value) { this.FeesEarned = value; return this; }
        public BigDecimal getCostToStaff() { return CostToStaff; }
        public SvcHourRow setCostToStaff(BigDecimal value) { this.CostToStaff = value; return this; }
    }

    public static class SvcWorkerRow
    {
        public UUID EmployeeId = null;
        public UUID BranchId = null;
        public String BranchName = null;
        public String Name = null;
        public Integer Served = null;
        public Double AvgServiceSec = null;
        public Double Utilization = null;
        
        public UUID getEmployeeId() { return EmployeeId; }
        public SvcWorkerRow setEmployeeId(UUID value) { this.EmployeeId = value; return this; }
        public UUID getBranchId() { return BranchId; }
        public SvcWorkerRow setBranchId(UUID value) { this.BranchId = value; return this; }
        public String getBranchName() { return BranchName; }
        public SvcWorkerRow setBranchName(String value) { this.BranchName = value; return this; }
        public String getName() { return Name; }
        public SvcWorkerRow setName(String value) { this.Name = value; return this; }
        public Integer getServed() { return Served; }
        public SvcWorkerRow setServed(Integer value) { this.Served = value; return this; }
        public Double getAvgServiceSec() { return AvgServiceSec; }
        public SvcWorkerRow setAvgServiceSec(Double value) { this.AvgServiceSec = value; return this; }
        public Double getUtilization() { return Utilization; }
        public SvcWorkerRow setUtilization(Double value) { this.Utilization = value; return this; }
    }

    public static class SvcAlert
    {
        public String Level = null;
        public String View = null;
        public String Code = null;
        public UUID StationId = null;
        public UUID EmployeeId = null;
        public UUID BranchId = null;
        public UUID LineId = null;
        public String Name = null;
        public UUID OtherLineId = null;
        public String OtherName = null;
        public ArrayList<UUID> StationIds = new ArrayList<UUID>();
        public HashMap<String,Double> Values = new HashMap<String,Double>();
        
        public String getLevel() { return Level; }
        public SvcAlert setLevel(String value) { this.Level = value; return this; }
        public String getView() { return View; }
        public SvcAlert setView(String value) { this.View = value; return this; }
        public String getCode() { return Code; }
        public SvcAlert setCode(String value) { this.Code = value; return this; }
        public UUID getStationId() { return StationId; }
        public SvcAlert setStationId(UUID value) { this.StationId = value; return this; }
        public UUID getEmployeeId() { return EmployeeId; }
        public SvcAlert setEmployeeId(UUID value) { this.EmployeeId = value; return this; }
        public UUID getBranchId() { return BranchId; }
        public SvcAlert setBranchId(UUID value) { this.BranchId = value; return this; }
        public UUID getLineId() { return LineId; }
        public SvcAlert setLineId(UUID value) { this.LineId = value; return this; }
        public String getName() { return Name; }
        public SvcAlert setName(String value) { this.Name = value; return this; }
        public UUID getOtherLineId() { return OtherLineId; }
        public SvcAlert setOtherLineId(UUID value) { this.OtherLineId = value; return this; }
        public String getOtherName() { return OtherName; }
        public SvcAlert setOtherName(String value) { this.OtherName = value; return this; }
        public ArrayList<UUID> getStationIds() { return StationIds; }
        public SvcAlert setStationIds(ArrayList<UUID> value) { this.StationIds = value; return this; }
        public HashMap<String,Double> getValues() { return Values; }
        public SvcAlert setValues(HashMap<String,Double> value) { this.Values = value; return this; }
    }

}

Java KpiV2Request DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/dashboard/kpiv2 HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	FromDate: 0001-01-01,
	ToDate: 0001-01-01,
	LocationIds: 
	[
		00000000000000000000000000000000
	],
	IncludeScope: False,
	StateCode: String,
	Compare: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	Stats: 
	[
		{
			Key: String,
			Label: String,
			Value: 0,
			PreviousValue: 0,
			Unit: String
		}
	],
	Trend: 
	[
		{
			Name: String,
			Points: 
			[
				{
					Label: String,
					Value: 0
				}
			]
		}
	],
	ServicesByType: 
	{
		Name: String,
		Points: 
		[
			{
				Label: String,
				Value: 0
			}
		]
	},
	LocationLeaderboard: 
	[
		{
			LocationName: String,
			Walkins: 0,
			Completed: 0,
			AvgServiceMinutes: 0,
			AbandonmentPct: 0
		}
	],
	WorkerProductivity: 
	[
		{
			WorkerName: String,
			Completed: 0,
			AvgServiceMinutes: 0
		}
	],
	Heatmap: 
	[
		{
			Dow: 0,
			Hr: 0,
			Cnt: 0
		}
	],
	LiveQueue: 
	[
		{
			LocationName: String,
			Waiting: 0,
			InProgress: 0
		}
	],
	Scope: 
	{
		StateCode: String,
		Branches: 
		[
			{
				BranchId: 00000000000000000000000000000000,
				Name: String,
				StateCode: String,
				ZoneCode: String,
				TimeZone: String,
				Windows: 0,
				RecordingSinceUtc: 0001-01-01,
				SessionsSinceUtc: 0001-01-01,
				Metrics: 
				{
					Checkins: 0,
					Walkins: 0,
					Appts: 0,
					Served: 0,
					NoShows: 0,
					ApptNoShows: 0,
					CancelledAtWindow: 0,
					Abandoned: 0,
					Called: 0,
					CalledUp: 0,
					AbandonRate: 0,
					NoShowRate: 0,
					AvgServiceSec: 0,
					MedianServiceSec: 0,
					AvgWaitSec: 0,
					MaxWaitSec: 0,
					AvgWalkUpSec: 0,
					ExpectedServiceSec: 0,
					SignedSec: 0,
					ServingSec: 0,
					PausedSec: 0,
					IdleSec: 0,
					UnstaffedSec: 0,
					Utilization: 0,
					IdleShare: 0,
					PausedShare: 0,
					Sessions: 0,
					OpenDays: 0,
					FeesEarned: 0,
					AvgFee: 0,
					FeesPerStaffedHour: 0,
					ExpectedFeesPerStaffedHour: 0,
					LaborCost: 0,
					LaborPartial: False,
					MissingCostEmployeeIds: 
					[
						00000000000000000000000000000000
					],
					MissingCost: 
					[
						{
							Id: 00000000000000000000000000000000,
							Name: String,
							SignedSec: 0,
							Served: 0
						}
					],
					LaborLocked: False,
					Contribution: 0,
					LostFees: 0,
					LostNoShowFees: 0,
					Mix: 
					{
						00000000000000000000000000000000: 0
					},
					HourlyServed: 
					[
						0
					],
					HourlyFees: 
					[
						0
					],
					HourlyCost: 
					[
						0
					],
					Tints: 
					[
						{
							Field: String,
							Tone: String,
							Reason: String,
							Value: 0,
							Reference: 0,
							BranchValue: 0
						}
					]
				}
			}
		],
		States: 
		[
			{
				StateCode: String,
				StateName: String,
				Branches: 0,
				Metrics: 
				{
					Checkins: 0,
					Walkins: 0,
					Appts: 0,
					Served: 0,
					NoShows: 0,
					ApptNoShows: 0,
					CancelledAtWindow: 0,
					Abandoned: 0,
					Called: 0,
					CalledUp: 0,
					AbandonRate: 0,
					NoShowRate: 0,
					AvgServiceSec: 0,
					MedianServiceSec: 0,
					AvgWaitSec: 0,
					MaxWaitSec: 0,
					AvgWalkUpSec: 0,
					ExpectedServiceSec: 0,
					SignedSec: 0,
					ServingSec: 0,
					PausedSec: 0,
					IdleSec: 0,
					UnstaffedSec: 0,
					Utilization: 0,
					IdleShare: 0,
					PausedShare: 0,
					Sessions: 0,
					OpenDays: 0,
					FeesEarned: 0,
					AvgFee: 0,
					FeesPerStaffedHour: 0,
					ExpectedFeesPerStaffedHour: 0,
					LaborCost: 0,
					LaborPartial: False,
					MissingCostEmployeeIds: 
					[
						00000000000000000000000000000000
					],
					MissingCost: 
					[
						{
							Id: 00000000000000000000000000000000,
							Name: String,
							SignedSec: 0,
							Served: 0
						}
					],
					LaborLocked: False,
					Contribution: 0,
					LostFees: 0,
					LostNoShowFees: 0,
					Mix: 
					{
						00000000000000000000000000000000: 0
					},
					HourlyServed: 
					[
						0
					],
					HourlyFees: 
					[
						0
					],
					HourlyCost: 
					[
						0
					],
					Tints: 
					[
						{
							Field: String,
							Tone: String,
							Reason: String,
							Value: 0,
							Reference: 0,
							BranchValue: 0
						}
					]
				}
			}
		],
		Total: 
		{
			Checkins: 0,
			Walkins: 0,
			Appts: 0,
			Served: 0,
			NoShows: 0,
			ApptNoShows: 0,
			CancelledAtWindow: 0,
			Abandoned: 0,
			Called: 0,
			CalledUp: 0,
			AbandonRate: 0,
			NoShowRate: 0,
			AvgServiceSec: 0,
			MedianServiceSec: 0,
			AvgWaitSec: 0,
			MaxWaitSec: 0,
			AvgWalkUpSec: 0,
			ExpectedServiceSec: 0,
			SignedSec: 0,
			ServingSec: 0,
			PausedSec: 0,
			IdleSec: 0,
			UnstaffedSec: 0,
			Utilization: 0,
			IdleShare: 0,
			PausedShare: 0,
			Sessions: 0,
			OpenDays: 0,
			FeesEarned: 0,
			AvgFee: 0,
			FeesPerStaffedHour: 0,
			ExpectedFeesPerStaffedHour: 0,
			LaborCost: 0,
			LaborPartial: False,
			MissingCostEmployeeIds: 
			[
				00000000000000000000000000000000
			],
			MissingCost: 
			[
				{
					Id: 00000000000000000000000000000000,
					Name: String,
					SignedSec: 0,
					Served: 0
				}
			],
			LaborLocked: False,
			Contribution: 0,
			LostFees: 0,
			LostNoShowFees: 0,
			Mix: 
			{
				00000000000000000000000000000000: 0
			},
			HourlyServed: 
			[
				0
			],
			HourlyFees: 
			[
				0
			],
			HourlyCost: 
			[
				0
			],
			Tints: 
			[
				{
					Field: String,
					Tone: String,
					Reason: String,
					Value: 0,
					Reference: 0,
					BranchValue: 0
				}
			]
		},
		Comparison: 
		{
			Mode: String,
			FromDate: 0001-01-01,
			ToDate: 0001-01-01,
			CutoffMinute: 0,
			HasData: False,
			Metrics: 
			{
				Checkins: 0,
				Walkins: 0,
				Appts: 0,
				Served: 0,
				NoShows: 0,
				ApptNoShows: 0,
				CancelledAtWindow: 0,
				Abandoned: 0,
				Called: 0,
				CalledUp: 0,
				AbandonRate: 0,
				NoShowRate: 0,
				AvgServiceSec: 0,
				MedianServiceSec: 0,
				AvgWaitSec: 0,
				MaxWaitSec: 0,
				AvgWalkUpSec: 0,
				ExpectedServiceSec: 0,
				SignedSec: 0,
				ServingSec: 0,
				PausedSec: 0,
				IdleSec: 0,
				UnstaffedSec: 0,
				Utilization: 0,
				IdleShare: 0,
				PausedShare: 0,
				Sessions: 0,
				OpenDays: 0,
				FeesEarned: 0,
				AvgFee: 0,
				FeesPerStaffedHour: 0,
				ExpectedFeesPerStaffedHour: 0,
				LaborCost: 0,
				LaborPartial: False,
				MissingCostEmployeeIds: 
				[
					00000000000000000000000000000000
				],
				MissingCost: 
				[
					{
						Id: 00000000000000000000000000000000,
						Name: String,
						SignedSec: 0,
						Served: 0
					}
				],
				LaborLocked: False,
				Contribution: 0,
				LostFees: 0,
				LostNoShowFees: 0,
				Mix: 
				{
					00000000000000000000000000000000: 0
				},
				HourlyServed: 
				[
					0
				],
				HourlyFees: 
				[
					0
				],
				HourlyCost: 
				[
					0
				],
				Tints: 
				[
					{
						Field: String,
						Tone: String,
						Reason: String,
						Value: 0,
						Reference: 0,
						BranchValue: 0
					}
				]
			}
		},
		FeesByService: 
		[
			{
				LineId: 00000000000000000000000000000000,
				Name: String,
				Completed: 0,
				AvgServiceSec: 0,
				BranchAvgServiceSec: 0,
				FeesEarned: 0,
				FeeCurrent: 0,
				FeeMin: 0,
				FeeMax: 0,
				FeePerMinute: 0,
				BranchFeePerMinute: 0,
				FeeChanges: 
				[
					{
						LocationId: 00000000000000000000000000000000,
						OnDate: 0001-01-01,
						FromFee: 0,
						ToFee: 0
					}
				]
			}
		],
		ByHour: 
		[
			{
				LocalHour: 0,
				Served: 0,
				FeesEarned: 0,
				CostToStaff: 0
			}
		],
		Workers: 
		[
			{
				EmployeeId: 00000000000000000000000000000000,
				BranchId: 00000000000000000000000000000000,
				BranchName: String,
				Name: String,
				Served: 0,
				AvgServiceSec: 0,
				Utilization: 0
			}
		],
		MultiZone: False,
		MultiState: False,
		RecordingSinceUtc: 0001-01-01,
		SessionsSinceUtc: 0001-01-01,
		Alerts: 
		[
			{
				Level: String,
				View: String,
				Code: String,
				StationId: 00000000000000000000000000000000,
				EmployeeId: 00000000000000000000000000000000,
				BranchId: 00000000000000000000000000000000,
				LineId: 00000000000000000000000000000000,
				Name: String,
				OtherLineId: 00000000000000000000000000000000,
				OtherName: String,
				StationIds: 
				[
					00000000000000000000000000000000
				],
				Values: 
				{
					String: 0
				}
			}
		],
		CanSeeStaff: False,
		CanSeeFinancial: False,
		CanSeePay: False
	}
}