TemporalTrendsExportDTO.java
/*
* Copyright 2010-2025 James Pether Sörling
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Id$
* $HeadURL$
*/
package com.hack23.cia.service.data.impl.export;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* DTO for temporal trends JSON export.
*
* @author intelligence-operative
* @since v1.36
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TemporalTrendsExportDTO implements Serializable {
private static final long serialVersionUID = 1L;
@JsonProperty("metadata")
private ExportMetadata metadata;
@JsonProperty("trends")
private List<TrendDataPoint> trends;
public TemporalTrendsExportDTO() {
this.trends = new ArrayList<>();
}
public ExportMetadata getMetadata() {
return metadata;
}
public void setMetadata(final ExportMetadata metadata) {
this.metadata = metadata;
}
public List<TrendDataPoint> getTrends() {
return Collections.unmodifiableList(trends);
}
public void setTrends(final List<TrendDataPoint> trends) {
this.trends = trends;
}
/**
* Trend data point.
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public static class TrendDataPoint implements Serializable {
private static final long serialVersionUID = 1L;
@JsonProperty("decisionDay")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "UTC")
private Date decisionDay;
@JsonProperty("dailyDecisions")
private Long dailyDecisions;
@JsonProperty("dailyApprovalRate")
private BigDecimal dailyApprovalRate;
@JsonProperty("approvedDecisions")
private Long approvedDecisions;
@JsonProperty("rejectedDecisions")
private Long rejectedDecisions;
@JsonProperty("referredBackDecisions")
private Long referredBackDecisions;
@JsonProperty("committeeReferralDecisions")
private Long committeeReferralDecisions;
@JsonProperty("ma7dayDecisions")
private BigDecimal ma7dayDecisions;
@JsonProperty("ma30dayDecisions")
private BigDecimal ma30dayDecisions;
@JsonProperty("ma90dayDecisions")
private BigDecimal ma90dayDecisions;
@JsonProperty("ma30dayApprovalRate")
private BigDecimal ma30dayApprovalRate;
@JsonProperty("decisionsLastYear")
private Long decisionsLastYear;
@JsonProperty("yoyDecisionsChange")
private Long yoyDecisionsChange;
@JsonProperty("yoyDecisionsChangePct")
private BigDecimal yoyDecisionsChangePct;
@JsonProperty("decisionYear")
private Integer decisionYear;
@JsonProperty("decisionMonth")
private Integer decisionMonth;
@JsonProperty("decisionWeek")
private Integer decisionWeek;
@JsonProperty("dayOfWeek")
private Integer dayOfWeek;
// Getters and setters
public Date getDecisionDay() {
return decisionDay != null ? new Date(decisionDay.getTime()) : null;
}
public void setDecisionDay(final Date decisionDay) {
this.decisionDay = decisionDay != null ? new Date(decisionDay.getTime()) : null;
}
public Long getDailyDecisions() {
return dailyDecisions;
}
public void setDailyDecisions(final Long dailyDecisions) {
this.dailyDecisions = dailyDecisions;
}
public BigDecimal getDailyApprovalRate() {
return dailyApprovalRate;
}
public void setDailyApprovalRate(final BigDecimal dailyApprovalRate) {
this.dailyApprovalRate = dailyApprovalRate;
}
public Long getApprovedDecisions() {
return approvedDecisions;
}
public void setApprovedDecisions(final Long approvedDecisions) {
this.approvedDecisions = approvedDecisions;
}
public Long getRejectedDecisions() {
return rejectedDecisions;
}
public void setRejectedDecisions(final Long rejectedDecisions) {
this.rejectedDecisions = rejectedDecisions;
}
public Long getReferredBackDecisions() {
return referredBackDecisions;
}
public void setReferredBackDecisions(final Long referredBackDecisions) {
this.referredBackDecisions = referredBackDecisions;
}
public Long getCommitteeReferralDecisions() {
return committeeReferralDecisions;
}
public void setCommitteeReferralDecisions(final Long committeeReferralDecisions) {
this.committeeReferralDecisions = committeeReferralDecisions;
}
public BigDecimal getMa7dayDecisions() {
return ma7dayDecisions;
}
public void setMa7dayDecisions(final BigDecimal ma7dayDecisions) {
this.ma7dayDecisions = ma7dayDecisions;
}
public BigDecimal getMa30dayDecisions() {
return ma30dayDecisions;
}
public void setMa30dayDecisions(final BigDecimal ma30dayDecisions) {
this.ma30dayDecisions = ma30dayDecisions;
}
public BigDecimal getMa90dayDecisions() {
return ma90dayDecisions;
}
public void setMa90dayDecisions(final BigDecimal ma90dayDecisions) {
this.ma90dayDecisions = ma90dayDecisions;
}
public BigDecimal getMa30dayApprovalRate() {
return ma30dayApprovalRate;
}
public void setMa30dayApprovalRate(final BigDecimal ma30dayApprovalRate) {
this.ma30dayApprovalRate = ma30dayApprovalRate;
}
public Long getDecisionsLastYear() {
return decisionsLastYear;
}
public void setDecisionsLastYear(final Long decisionsLastYear) {
this.decisionsLastYear = decisionsLastYear;
}
public Long getYoyDecisionsChange() {
return yoyDecisionsChange;
}
public void setYoyDecisionsChange(final Long yoyDecisionsChange) {
this.yoyDecisionsChange = yoyDecisionsChange;
}
public BigDecimal getYoyDecisionsChangePct() {
return yoyDecisionsChangePct;
}
public void setYoyDecisionsChangePct(final BigDecimal yoyDecisionsChangePct) {
this.yoyDecisionsChangePct = yoyDecisionsChangePct;
}
public Integer getDecisionYear() {
return decisionYear;
}
public void setDecisionYear(final Integer decisionYear) {
this.decisionYear = decisionYear;
}
public Integer getDecisionMonth() {
return decisionMonth;
}
public void setDecisionMonth(final Integer decisionMonth) {
this.decisionMonth = decisionMonth;
}
public Integer getDecisionWeek() {
return decisionWeek;
}
public void setDecisionWeek(final Integer decisionWeek) {
this.decisionWeek = decisionWeek;
}
public Integer getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(final Integer dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
}
}