| /* |
| * Copyright 2017 The Mifos Initiative. |
| * |
| * 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. |
| */ |
| package io.mifos.individuallending.internal.repository; |
| |
| import javax.persistence.*; |
| import java.math.BigDecimal; |
| import java.time.temporal.ChronoUnit; |
| import java.util.Objects; |
| import java.util.Set; |
| |
| /** |
| * @author Myrle Krantz |
| */ |
| @Entity |
| @Table(name = "bastet_il_cases") |
| public class CaseParametersEntity { |
| @Id |
| @GeneratedValue(strategy = GenerationType.IDENTITY) |
| @Column(name = "id") |
| private Long id; |
| |
| @Column(name = "case_id") |
| private Long caseId; |
| |
| @Column(name = "customer_identifier") |
| private String customerIdentifier; |
| |
| @Enumerated(EnumType.STRING) |
| @Column(name = "term_range_temporal_unit") |
| private ChronoUnit termRangeTemporalUnit; |
| |
| @Column(name = "term_range_minimum") |
| private Integer termRangeMinimum; |
| |
| @Column(name = "term_range_maximum") |
| private Integer termRangeMaximum; |
| |
| @Column(name = "balance_range_maximum") |
| private BigDecimal balanceRangeMaximum; |
| |
| @Enumerated(EnumType.STRING) |
| @Column(name = "pay_cycle_temporal_unit") |
| private ChronoUnit paymentCycleTemporalUnit; |
| |
| @Column(name = "pay_cycle_period") |
| private Integer paymentCyclePeriod; |
| |
| @Column(name = "pay_cycle_align_day") |
| private Integer paymentCycleAlignmentDay; |
| |
| @Column(name = "pay_cycle_align_week") |
| private Integer paymentCycleAlignmentWeek; |
| |
| @Column(name = "pay_cycle_align_month") |
| private Integer paymentCycleAlignmentMonth; |
| |
| @OneToMany(targetEntity = CaseCreditWorthinessFactorEntity.class, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "caseId") |
| private Set<CaseCreditWorthinessFactorEntity> creditWorthinessFactors; |
| |
| @Column(name = "payment_size") |
| private BigDecimal paymentSize; |
| |
| public CaseParametersEntity() { |
| } |
| |
| public Long getId() { |
| return id; |
| } |
| |
| public void setId(Long id) { |
| this.id = id; |
| } |
| |
| public Long getCaseId() { |
| return caseId; |
| } |
| |
| public void setCaseId(Long caseId) { |
| this.caseId = caseId; |
| } |
| |
| public String getCustomerIdentifier() { |
| return customerIdentifier; |
| } |
| |
| public void setCustomerIdentifier(String customerIdentifier) { |
| this.customerIdentifier = customerIdentifier; |
| } |
| |
| public ChronoUnit getTermRangeTemporalUnit() { |
| return termRangeTemporalUnit; |
| } |
| |
| public void setTermRangeTemporalUnit(ChronoUnit termRangeTemporalUnit) { |
| this.termRangeTemporalUnit = termRangeTemporalUnit; |
| } |
| |
| public Integer getTermRangeMinimum() { |
| return termRangeMinimum; |
| } |
| |
| public void setTermRangeMinimum(Integer termRangeMinimum) { |
| this.termRangeMinimum = termRangeMinimum; |
| } |
| |
| public Integer getTermRangeMaximum() { |
| return termRangeMaximum; |
| } |
| |
| public void setTermRangeMaximum(Integer termRangeMaximum) { |
| this.termRangeMaximum = termRangeMaximum; |
| } |
| |
| public BigDecimal getBalanceRangeMaximum() { |
| return balanceRangeMaximum; |
| } |
| |
| public void setBalanceRangeMaximum(BigDecimal balanceRangeMaximum) { |
| this.balanceRangeMaximum = balanceRangeMaximum; |
| } |
| |
| public ChronoUnit getPaymentCycleTemporalUnit() { |
| return paymentCycleTemporalUnit; |
| } |
| |
| public void setPaymentCycleTemporalUnit(ChronoUnit paymentCycleTemporalUnit) { |
| this.paymentCycleTemporalUnit = paymentCycleTemporalUnit; |
| } |
| |
| public Integer getPaymentCyclePeriod() { |
| return paymentCyclePeriod; |
| } |
| |
| public void setPaymentCyclePeriod(Integer paymentCyclePeriod) { |
| this.paymentCyclePeriod = paymentCyclePeriod; |
| } |
| |
| public Integer getPaymentCycleAlignmentDay() { |
| return paymentCycleAlignmentDay; |
| } |
| |
| public void setPaymentCycleAlignmentDay(Integer paymentCycleAlignmentDay) { |
| this.paymentCycleAlignmentDay = paymentCycleAlignmentDay; |
| } |
| |
| public Integer getPaymentCycleAlignmentWeek() { |
| return paymentCycleAlignmentWeek; |
| } |
| |
| public void setPaymentCycleAlignmentWeek(Integer paymentCycleAlignmentWeek) { |
| this.paymentCycleAlignmentWeek = paymentCycleAlignmentWeek; |
| } |
| |
| public Integer getPaymentCycleAlignmentMonth() { |
| return paymentCycleAlignmentMonth; |
| } |
| |
| public void setPaymentCycleAlignmentMonth(Integer paymentCycleAlignmentMonth) { |
| this.paymentCycleAlignmentMonth = paymentCycleAlignmentMonth; |
| } |
| |
| public Set<CaseCreditWorthinessFactorEntity> getCreditWorthinessFactors() { |
| return creditWorthinessFactors; |
| } |
| |
| public void setCreditWorthinessFactors(Set<CaseCreditWorthinessFactorEntity> creditWorthinessFactors) { |
| this.creditWorthinessFactors = creditWorthinessFactors; |
| } |
| |
| public BigDecimal getPaymentSize() { |
| return paymentSize; |
| } |
| |
| public void setPaymentSize(BigDecimal paymentSize) { |
| this.paymentSize = paymentSize; |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| if (o == null || getClass() != o.getClass()) return false; |
| CaseParametersEntity that = (CaseParametersEntity) o; |
| return Objects.equals(caseId, that.caseId); |
| } |
| |
| @Override |
| public int hashCode() { |
| return Objects.hash(caseId); |
| } |
| } |