blob: cf704ba6998864e5d068efbde32e762561660ddb [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.loanaccount.rescheduleloan.api;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Set;
/**
* Reschedule Loans Api Resource Swagger.
*/
final class RescheduleLoansApiResourceSwagger {
private RescheduleLoansApiResourceSwagger() {}
@Schema(description = "GetRescheduleReasonsTemplateResponse")
public static final class GetRescheduleReasonsTemplateResponse {
private GetRescheduleReasonsTemplateResponse() {}
static final class GetRescheduleReasonsAllowedTypes {
private GetRescheduleReasonsAllowedTypes() {}
@Schema(example = "1")
public Long id;
@Schema(example = "reason")
public String name;
@Schema(example = "0")
public Integer position;
@Schema(example = "description")
public String description;
@Schema(example = "true")
public Boolean active;
@Schema(example = "false")
public Boolean mandatory;
}
public Set<GetRescheduleReasonsAllowedTypes> rescheduleReasons;
}
@Schema(description = "GetLoanRescheduleRequestResponse")
public static final class GetLoanRescheduleRequestResponse {
private GetLoanRescheduleRequestResponse() {}
static final class GetLoanRescheduleRequestStatus {
private GetLoanRescheduleRequestStatus() {}
@Schema(example = "100")
public Long id;
@Schema(example = "loanStatusType.submitted.and.pending.approval")
public String code;
@Schema(example = "Submitted and pending approval")
public String value;
@Schema(example = "true")
public Boolean pendingApproval;
@Schema(example = "false")
public Boolean approved;
@Schema(example = "false")
public Boolean rejected;
}
static final class RescheduleReasonsCodeValue {
private RescheduleReasonsCodeValue() {}
@Schema(example = "1")
public Long id;
@Schema(example = "reason")
public String name;
@Schema(example = "true")
public Boolean active;
@Schema(example = "false")
public Boolean mandatory;
}
static final class RescheduleReasonsTimeline {
private RescheduleReasonsTimeline() {}
@Schema(example = "[2014, 5, 1]")
public LocalDate submittedOnDate;
@Schema(example = "mifos")
public String submittedByUsername;
@Schema(example = "App")
public String submittedByFirstname;
@Schema(example = "Administrator")
public String submittedByLastname;
@Schema(example = "[2014, 5, 1]")
public LocalDate approvedOnDate;
@Schema(example = "mifos")
public String approvedByUsername;
@Schema(example = "App")
public String approvedByFirstname;
@Schema(example = "Administrator")
public String approvedByLastname;
}
static final class LoanTermTypeOptions {
private LoanTermTypeOptions() {}
@Schema(example = "2")
public Long id;
@Schema(example = "loanTermType.dueDate")
public String code;
@Schema(example = "dueDate")
public String value;
}
static final class LoanTermVariationsData {
private LoanTermVariationsData() {}
@Schema(example = "1")
public Long id;
public LoanTermTypeOptions termType;
@Schema(example = "[2022, 5, 1]")
public LocalDate termVariationApplicableFrom;
@Schema(example = "100.00")
public BigDecimal decimalValue;
@Schema(example = "[2022, 5, 2]")
public LocalDate dateValue;
@Schema(example = "true")
public Boolean isSpecificToInstallment;
@Schema(example = "true")
public Boolean isProcessed;
}
@Schema(example = "1")
public Long id;
@Schema(example = "18")
public Long loanId;
@Schema(example = "15")
public Long clientId;
@Schema(example = "clientName")
public String clientName;
@Schema(example = "000000018")
public String loanAccountNumber;
public GetLoanRescheduleRequestStatus statusEnum;
@Schema(example = "1")
public Integer rescheduleFromInstallment;
@Schema(example = "[2022, 5, 1]")
public LocalDate rescheduleFromDate;
@Schema(example = "false")
public Boolean recalculateInterest;
public RescheduleReasonsCodeValue rescheduleReasonCodeValue;
public RescheduleReasonsTimeline timeline;
@Schema(example = "rescheduleReasonComment")
public String rescheduleReasonComment;
public Set<LoanTermVariationsData> loanTermVariationsData;
}
@Schema(description = "PostCreateRescheduleLoansRequest")
public static final class PostCreateRescheduleLoansRequest {
@Schema(example = "20 September 2011")
public String adjustedDueDate;
@Schema(example = "en")
public String locale;
@Schema(example = "dd MMMM yyyy")
public String dateFormat;
@Schema(example = "1")
public Integer extraTerms;
@Schema(example = "1")
public Integer graceOnInterest;
@Schema(example = "1")
public Integer graceOnPrincipal;
@Schema(example = "1")
public Long loanId;
@Schema(example = "1.1")
public BigDecimal newInterestRate;
@Schema(example = "20 September 2011")
public String rescheduleFromDate;
@Schema(example = "comment")
public String rescheduleReasonComment;
@Schema(example = "1")
public Long rescheduleReasonId;
@Schema(example = "20 September 2011")
public String submittedOnDate;
}
@Schema(description = "PostUpdateRescheduleLoansRequest")
public static final class PostUpdateRescheduleLoansRequest {
@Schema(example = "20 September 2011")
public String approvedOnDate;
@Schema(example = "20 September 2011")
public String rejectedOnDate;
@Schema(example = "en")
public String locale;
@Schema(example = "dd MMMM yyyy")
public String dateFormat;
}
@Schema(description = "PostCreateRescheduleLoansResponse ")
public static final class PostCreateRescheduleLoansResponse {
private PostCreateRescheduleLoansResponse() {}
@Schema(example = "1")
public Long officeId;
@Schema(example = "12")
public Long clientId;
@Schema(example = "18")
public Long loanId;
@Schema(example = "12")
public Long resourceId;
}
@Schema(description = "PostUpdateRescheduleLoansResponse ")
public static final class PostUpdateRescheduleLoansResponse {
private PostUpdateRescheduleLoansResponse() {}
static final class PostUpdateRescheduleLoanChanges {
private PostUpdateRescheduleLoanChanges() {}
@Schema(example = "en")
public String locale;
@Schema(example = "en")
public String dateFormat;
@Schema(example = "05/02/2022")
public String approvedOnDate;
@Schema(example = "1")
public Long approvedByUserId;
}
@Schema(example = "1")
public Long officeId;
@Schema(example = "12")
public Long clientId;
@Schema(example = "18")
public Long loanId;
@Schema(example = "12")
public Long resourceId;
public PostUpdateRescheduleLoanChanges changes;
}
}