blob: e435b6d6de3d3c88458bedbd81261c3dca12b927 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
package org.apache.fineract.portfolio.savings.api;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDate;
import java.util.Set;
/**
* Created by Chirag Gupta on 12/26/17.
*/
final class RecurringDepositAccountsApiResourceSwagger {
private RecurringDepositAccountsApiResourceSwagger() {}
@Schema(description = "GetRecurringDepositAccountsTemplateResponse")
public static final class GetRecurringDepositAccountsTemplateResponse {
private GetRecurringDepositAccountsTemplateResponse() {}
static final class GetRecurringProductOptions {
private GetRecurringProductOptions() {}
@Schema(example = "1")
public Long id;
@Schema(example = "Passbook Savings")
public String name;
}
@Schema(example = "1")
public Long clientId;
@Schema(example = "small business")
public String clientName;
public Set<GetRecurringProductOptions> productOptions;
}
@Schema(description = "GetRecurringDepositAccountsResponse")
public static final class GetRecurringDepositAccountsResponse {
private GetRecurringDepositAccountsResponse() {}
static final class GetRecurringDepositAccountsStatus {
private GetRecurringDepositAccountsStatus() {}
@Schema(example = "100")
public Long id;
@Schema(example = "savingsAccountStatusType.submitted.and.pending.approval")
public String code;
@Schema(example = "Submitted and pending approval")
public String description;
@Schema(example = "true")
public Boolean submittedAndPendingApproval;
@Schema(example = "false")
public Boolean approved;
@Schema(example = "false")
public Boolean rejected;
@Schema(example = "false")
public Boolean withdrawnByApplicant;
@Schema(example = "false")
public Boolean active;
@Schema(example = "false")
public Boolean closed;
@Schema(example = "false")
public Boolean prematureClosed;
@Schema(example = "false")
public Boolean transferInProgress;
@Schema(example = "false")
public Boolean transferOnHold;
}
static final class GetRecurringDepositAccountsTimeline {
private GetRecurringDepositAccountsTimeline() {}
@Schema(example = "[2014, 3, 1]")
public LocalDate submittedOnDate;
@Schema(example = "mifos")
public String submittedByUsername;
@Schema(example = "App")
public String submittedByFirstname;
@Schema(example = "Administrator")
public String submittedByLastname;
}
static final class GetRecurringDepositAccountsCurrency {
private GetRecurringDepositAccountsCurrency() {}
@Schema(example = "USD")
public String code;
@Schema(example = "US Dollar")
public String name;
@Schema(example = "2")
public Integer decimalPlaces;
@Schema(example = "1")
public Integer inMultiplesOf;
@Schema(example = "$")
public String displaySymbol;
@Schema(example = "currency.USD")
public String nameCode;
@Schema(example = "US Dollar ($)")
public String displayLabel;
}
static final class GetRecurringDepositAccountsInterestCompoundingPeriodType {
private GetRecurringDepositAccountsInterestCompoundingPeriodType() {}
@Schema(example = "4")
public Long id;
@Schema(example = "savings.interest.period.savingsCompoundingInterestPeriodType.monthly")
public String code;
@Schema(example = "Monthly")
public String description;
}
static final class GetRecurringDepositAccountsInterestPostingPeriodType {
private GetRecurringDepositAccountsInterestPostingPeriodType() {}
@Schema(example = "4")
public Long id;
@Schema(example = "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly")
public String code;
@Schema(example = "Monthly")
public String description;
}
static final class GetRecurringDepositAccountsInterestCalculationType {
private GetRecurringDepositAccountsInterestCalculationType() {}
@Schema(example = "1")
public Long id;
@Schema(example = "savingsInterestCalculationType.dailybalance")
public String code;
@Schema(example = "Daily Balance")
public String description;
}
static final class GetRecurringDepositAccountsInterestCalculationDaysInYearType {
private GetRecurringDepositAccountsInterestCalculationDaysInYearType() {}
@Schema(example = "365")
public Long id;
@Schema(example = "savingsInterestCalculationDaysInYearType.days365")
public String code;
@Schema(example = "365 Days")
public String description;
}
static final class GetRecurringDepositAccountsSummary {
private GetRecurringDepositAccountsSummary() {}
public GetRecurringDepositAccountsCurrency currency;
@Schema(example = "0")
public Float accountBalance;
}
static final class GetRecurringDepositAccountsMinDepositTermType {
private GetRecurringDepositAccountsMinDepositTermType() {}
@Schema(example = "2")
public Long id;
@Schema(example = "deposit.term.savingsPeriodFrequencyType.months")
public String code;
@Schema(example = "Months")
public String description;
}
static final class GetRecurringDepositAccountsMaxDepositTermType {
private GetRecurringDepositAccountsMaxDepositTermType() {}
@Schema(example = "3")
public Long id;
@Schema(example = "deposit.term.savingsPeriodFrequencyType.years")
public String code;
@Schema(example = "Years")
public String description;
}
static final class GetRecurringDepositAccountsDepositPeriodFrequency {
private GetRecurringDepositAccountsDepositPeriodFrequency() {}
@Schema(example = "2")
public Long id;
@Schema(example = "deposit.period.savingsPeriodFrequencyType.months")
public String code;
@Schema(example = "Months")
public String description;
}
static final class GetRecurringDepositAccountsRecurringDepositFrequencyType {
private GetRecurringDepositAccountsRecurringDepositFrequencyType() {}
@Schema(example = "2")
public Long id;
@Schema(example = "recurring.deposit.savingsPeriodFrequencyType.months")
public String code;
@Schema(example = "Months")
public String description;
}
@Schema(example = "1")
public Long id;
@Schema(example = "000000001")
public Long accountNo;
@Schema(example = "1")
public Long clientId;
@Schema(example = "Sangamesh N")
public String clientName;
@Schema(example = "3")
public Long savingsProductId;
@Schema(example = "RD01")
public String savingsProductName;
@Schema(example = "0")
public Long fieldOfficerId;
public GetRecurringDepositAccountsStatus status;
public GetRecurringDepositAccountsTimeline timeline;
public GetRecurringDepositAccountsCurrency currency;
public GetRecurringDepositAccountsInterestCompoundingPeriodType interestCompoundingPeriodType;
public GetRecurringDepositAccountsInterestPostingPeriodType interestPostingPeriodType;
public GetRecurringDepositAccountsInterestCalculationType interestCalculationType;
public GetRecurringDepositAccountsInterestCalculationDaysInYearType interestCalculationDaysInYearType;
public GetRecurringDepositAccountsSummary summary;
@Schema(example = "1150")
public Float depositAmount;
@Schema(example = "252.59")
public Float maturityAmount;
@Schema(example = "[2014, 4, 3]")
public LocalDate maturityDate;
@Schema(example = "100")
public Integer recurringDepositAmount;
@Schema(example = "1")
public Integer recurringDepositFrequency;
public GetRecurringDepositAccountsRecurringDepositFrequencyType recurringDepositFrequencyType;
@Schema(example = "false")
public Boolean preClosurePenalApplicable;
@Schema(example = "3")
public Integer minDepositTerm;
@Schema(example = "4")
public Integer maxDepositTerm;
public GetRecurringDepositAccountsMinDepositTermType minDepositTermType;
public GetRecurringDepositAccountsMaxDepositTermType maxDepositTermType;
@Schema(example = "6")
public Integer depositPeriod;
public GetRecurringDepositAccountsDepositPeriodFrequency depositPeriodFrequency;
}
@Schema(description = "PostRecurringDepositAccountsRequest")
public static final class PostRecurringDepositAccountsRequest {
private PostRecurringDepositAccountsRequest() {}
@Schema(example = "1")
public Long clientId;
@Schema(example = "1")
public Long productId;
@Schema(example = "en")
public String locale;
@Schema(example = "dd MMMM yyyy")
public String dateFormat;
@Schema(example = "02 June 2014")
public String submittedOnDate;
@Schema(example = "20")
public Integer depositPeriod;
@Schema(example = "1")
public Integer depositPeriodFrequencyId;
@Schema(example = "10000")
public Float depositAmount;
@Schema(example = "false")
public Boolean isCalendarInherited;
@Schema(example = "2")
public Integer recurringFrequency;
@Schema(example = "1")
public Integer recurringFrequencyType;
@Schema(example = "2000")
public Long mandatoryRecommendedDepositAmount;
}
@Schema(description = "PostRecurringDepositAccountsResponse")
public static final class PostRecurringDepositAccountsResponse {
private PostRecurringDepositAccountsResponse() {}
@Schema(example = "2")
public Long officeId;
@Schema(example = "1")
public Long clientId;
@Schema(example = "1")
public Long savingsId;
@Schema(example = "1")
public Long resourceId;
}
@Schema(description = "GetRecurringDepositAccountsAccountIdResponse")
public static final class GetRecurringDepositAccountsAccountIdResponse {
private GetRecurringDepositAccountsAccountIdResponse() {}
static final class GetRecurringDepositAccountsAccountChart {
private GetRecurringDepositAccountsAccountChart() {}
static final class GetRecurringDepositAccountsChartSlabs {
private GetRecurringDepositAccountsChartSlabs() {}
static final class GetRecurringDepositAccountsPeriodType {
private GetRecurringDepositAccountsPeriodType() {}
@Schema(example = "0")
public Long id;
@Schema(example = "interestChartPeriodType.days")
public String code;
@Schema(example = "Days")
public String description;
}
static final class GetRecurringDepositAccountsAccountChartCurrency {
private GetRecurringDepositAccountsAccountChartCurrency() {}
@Schema(example = "USD")
public String code;
@Schema(example = "US Dollar")
public String name;
@Schema(example = "2")
public Integer decimalPlaces;
@Schema(example = "$")
public String displaySymbol;
@Schema(example = "currency.USD")
public String nameCode;
@Schema(example = "US Dollar ($)")
public String displayLabel;
}
@Schema(example = "13")
public Long id;
public GetRecurringDepositAccountsPeriodType periodType;
@Schema(example = "181")
public Integer fromPeriod;
@Schema(example = "365")
public Integer toPeriod;
@Schema(example = "5.5")
public Double annualInterestRate;
public GetRecurringDepositAccountsAccountChartCurrency currency;
}
static final class GetRecurringDepositAccountsPeriodTypes {
private GetRecurringDepositAccountsPeriodTypes() {}
@Schema(example = "0")
public Long id;
@Schema(example = "interestChartPeriodType.days")
public String code;
@Schema(example = "Days")
public String description;
}
@Schema(example = "4")
public Long id;
@Schema(example = "[2013, 10, 2]")
public LocalDate fromDate;
@Schema(example = "5")
public Long accountId;
@Schema(example = "RD000023")
public Long accountNumber;
public Set<GetRecurringDepositAccountsChartSlabs> chartSlabs;
public Set<GetRecurringDepositAccountsPeriodTypes> periodTypes;
}
@Schema(example = "1")
public Long id;
@Schema(example = "RD000023")
public Long accountNo;
@Schema(example = "RD-23")
public String externalId;
@Schema(example = "1")
public Long clientId;
@Schema(example = "Sangamesh N")
public String clientName;
@Schema(example = "3")
public Long savingsProductId;
@Schema(example = "RD01")
public String savingsProductName;
@Schema(example = "0")
public Long fieldOfficerId;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsStatus status;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsTimeline timeline;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsCurrency currency;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsInterestCompoundingPeriodType interestCompoundingPeriodType;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsInterestPostingPeriodType interestPostingPeriodType;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsInterestCalculationType interestCalculationType;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsInterestCalculationDaysInYearType interestCalculationDaysInYearType;
@Schema(example = "false")
public Boolean preClosurePenalApplicable;
@Schema(example = "3")
public Integer minDepositTerm;
@Schema(example = "4")
public Integer maxDepositTerm;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsMinDepositTermType minDepositTermType;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsMaxDepositTermType maxDepositTermType;
@Schema(example = "100")
public Integer recurringDepositAmount;
@Schema(example = "1")
public Integer recurringDepositFrequency;
@Schema(example = "[2014, 4, 2]")
public LocalDate expectedFirstDepositOnDate;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsRecurringDepositFrequencyType recurringDepositFrequencyType;
@Schema(example = "6")
public Integer depositPeriod;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsDepositPeriodFrequency depositPeriodFrequency;
public GetRecurringDepositAccountsResponse.GetRecurringDepositAccountsSummary summary;
public GetRecurringDepositAccountsAccountChart accountChart;
}
@Schema(description = "PutRecurringDepositAccountsAccountIdRequest")
public static final class PutRecurringDepositAccountsAccountIdRequest {
private PutRecurringDepositAccountsAccountIdRequest() {}
@Schema(example = "en")
public String locale;
@Schema(example = "6000")
public Integer depositAmount;
}
@Schema(description = "PutRecurringDepositAccountsAccountIdResponse")
public static final class PutRecurringDepositAccountsAccountIdResponse {
private PutRecurringDepositAccountsAccountIdResponse() {}
static final class PutRecurringDepositAccountsChanges {
private PutRecurringDepositAccountsChanges() {}
@Schema(example = "6000")
public Integer depositAmount;
@Schema(example = "en")
public String locale;
}
@Schema(example = "2")
public Long officeId;
@Schema(example = "1")
public Long clientId;
@Schema(example = "1")
public Long savingsId;
@Schema(example = "1")
public Long resourceId;
public PutRecurringDepositAccountsChanges changes;
}
@Schema(description = "PostRecurringDepositAccountsAccountIdRequest")
public static final class PostRecurringDepositAccountsAccountIdRequest {
private PostRecurringDepositAccountsAccountIdRequest() {}
}
@Schema(description = "PostRecurringDepositAccountsAccountIdResponse")
public static final class PostRecurringDepositAccountsAccountIdResponse {
private PostRecurringDepositAccountsAccountIdResponse() {}
@Schema(example = "1")
public Long officeId;
@Schema(example = "1")
public Long clientId;
@Schema(example = "1")
public Long savingsId;
@Schema(example = "1")
public Long resourceId;
}
@Schema(description = "DeleteRecurringDepositAccountsResponse")
public static final class DeleteRecurringDepositAccountsResponse {
private DeleteRecurringDepositAccountsResponse() {}
@Schema(example = "1")
public Long officeId;
@Schema(example = "1")
public Long clientId;
@Schema(example = "1")
public Long resourceId;
}
}