diff --git a/build.gradle b/build.gradle index 2ad0adca2..7fe39014a 100644 --- a/build.gradle +++ b/build.gradle @@ -249,6 +249,7 @@ allprojects { "**/git.properties", ".mailmap", '**/images/diag-*.svg', + '**/*.avsc' ] } } diff --git a/fineract-avro-schemas/build.gradle b/fineract-avro-schemas/build.gradle index 31dfd658b..dd113de95 100644 --- a/fineract-avro-schemas/build.gradle +++ b/fineract-avro-schemas/build.gradle @@ -19,20 +19,40 @@ import com.github.davidmc24.gradle.plugin.avro.GenerateAvroJavaTask +// TODO: @vidakovic we should publish this lib to Maven Central; do in separate PR description = 'Fineract Avro Schemas' apply plugin: 'com.github.davidmc24.gradle.plugin.avro-base' apply from: 'dependencies.gradle' -// TODO: @vidakovic we should publish this lib to Maven Central; do in separate PR +task preprocessAvroSchemas() { + doLast { + copy { + from "$projectDir/src/main/avro" + into "$buildDir/generated/avro/src/main/avro" + filter { line -> + line.replaceAll("\"bigdecimal\"", new File("$projectDir/src/main/resources/avro-templates/bigdecimal.avsc").getText("UTF-8")) + } + } + } +} + task buildJavaSdk(type: GenerateAvroJavaTask) { - source("$projectDir/src/main/avro") + source("$buildDir/generated/avro/src/main/avro") outputDir = file("$buildDir/generated/java/src/main/java") } +spotless { + json { + target '**/*.avsc' // TODO: include generated AVSCs as well + targetExclude '' + simple() + } +} -compileJava.dependsOn(buildJavaSdk, licenseFormatMain, spotlessMiscApply) +buildJavaSdk.dependsOn(preprocessAvroSchemas, spotlessJsonApply) +compileJava.dependsOn(buildJavaSdk, licenseFormatMain) java { // keep this at Java 8, not 17 diff --git a/fineract-avro-schemas/src/main/avro/MessageV1.avsc b/fineract-avro-schemas/src/main/avro/MessageV1.avsc deleted file mode 100644 index 1003b04e1..000000000 --- a/fineract-avro-schemas/src/main/avro/MessageV1.avsc +++ /dev/null @@ -1,71 +0,0 @@ -/** - * 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. - */ - -{ - "name": "MessageV1", - "namespace": "org.apache.fineract.avro", - "type": "record", - "fields": [ - { - "name": "id", - "type": "int", - "doc": "The ID of the message to be sent" - }, - { - "name": "source", - "type": "string", - "doc": "A unique identifier of the source service" - }, - { - "name": "type", - "type": "string", - "doc": "The type of event the payload refers to. For example LOAN_APPROVED" - }, - { - "name": "version", - "type": "string", - "doc": "The version of the type of event. For example 1, 2, 3, etc" - }, - { - "name": "category", - "type": "string", - "doc": "The category of event the payload refers to. For example LOAN" - }, - { - "name": "createdAt", - "type": "string", - "doc": "The UTC time of when the event has been raised; in ISO_LOCAL_DATE_TIME format. For example 2011-12-03T10:15:30" - }, - { - "name": "tenantId", - "type": "string", - "doc": "The tenantId that the event has been sent from. For example default" - }, - { - "name": "idempotencyKey", - "type": "string", - "doc": "The idempotency key for this particular event for consumer de-duplication" - }, - { - "name": "payload", - "type": "bytes", - "doc": "The payload serialized into Avro bytes" - } - ] -} \ No newline at end of file diff --git a/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1.avsc b/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1.avsc index e44f4d9c1..4366ad599 100644 --- a/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1.avsc +++ b/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1.avsc @@ -1,82 +1,63 @@ -/** - * 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. - */ - { - "name": "ClientEventV1", - "namespace": "org.apache.fineract.avro.client.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "accountNo", - "type": [ - "null", - "string" - ] - }, - { - "name": "status", - "type": [ - "null", - "org.apache.fineract.avro.client.v1.ClientEventV1Status" - ] - }, - { - "name": "active", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "fullName", - "type": [ - "null", - "string" - ] - }, - { - "name": "displayName", - "type": [ - "null", - "string" - ] - }, - { - "name": "officeId", - "type": [ - "null", - "int" - ] - }, - { - "name": "officeName", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "ClientEventV1", + "namespace": "org.apache.fineract.avro.client.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.client.v1.ClientEventV1Status" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "fullName", + "type": [ + "null", + "string" + ] + }, + { + "name": "displayName", + "type": [ + "null", + "string" + ] + }, + { + "name": "officeId", + "type": [ + "null", + "int" + ] + }, + { + "name": "officeName", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1Status.avsc b/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1Status.avsc index ee697ac05..2b443cf56 100644 --- a/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1Status.avsc +++ b/fineract-avro-schemas/src/main/avro/client/v1/ClientEventV1Status.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "ClientEventV1Status", - "namespace": "org.apache.fineract.avro.client.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "ClientEventV1Status", + "namespace": "org.apache.fineract.avro.client.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1.avsc index cf83f11c2..b8dab6fbe 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1.avsc @@ -1,208 +1,189 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "accountNo", - "type": [ - "null", - "string" - ] - }, - { - "name": "clientId", - "type": [ - "null", - "int" - ] - }, - { - "name": "clientName", - "type": [ - "null", - "string" - ] - }, - { - "name": "savingsProductId", - "type": [ - "null", - "int" - ] - }, - { - "name": "savingsProductName", - "type": [ - "null", - "string" - ] - }, - { - "name": "fieldOfficerId", - "type": [ - "null", - "int" - ] - }, - { - "name": "status", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Status" - ] - }, - { - "name": "timeline", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Timeline" - ] - }, - { - "name": "currency", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Currency" - ] - }, - { - "name": "interestCompoundingPeriodType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCompoundingPeriodType" - ] - }, - { - "name": "interestPostingPeriodType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestPostingPeriodType" - ] - }, - { - "name": "interestCalculationType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCalculationType" - ] - }, - { - "name": "interestCalculationDaysInYearType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCalculationDaysInYearType" - ] - }, - { - "name": "summary", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Summary" - ] - }, - { - "name": "interestFreePeriodApplicable", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "preClosurePenalApplicable", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "minDepositTerm", - "type": [ - "null", - "int" - ] - }, - { - "name": "maxDepositTerm", - "type": [ - "null", - "int" - ] - }, - { - "name": "minDepositTermType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1MinDepositTermType" - ] - }, - { - "name": "maxDepositTermType", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1MaxDepositTermType" - ] - }, - { - "name": "depositAmount", - "type": [ - "null", - "float" - ] - }, - { - "name": "maturityAmount", - "type": [ - "null", - "float" - ] - }, - { - "name": "maturityDate", - "type": [ - "null", - "string" - ] - }, - { - "name": "depositPeriod", - "type": [ - "null", - "int" - ] - }, - { - "name": "depositPeriodFrequency", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1DepositPeriodFrequency" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "clientId", + "type": [ + "null", + "int" + ] + }, + { + "name": "clientName", + "type": [ + "null", + "string" + ] + }, + { + "name": "savingsProductId", + "type": [ + "null", + "int" + ] + }, + { + "name": "savingsProductName", + "type": [ + "null", + "string" + ] + }, + { + "name": "fieldOfficerId", + "type": [ + "null", + "int" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Status" + ] + }, + { + "name": "timeline", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Timeline" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Currency" + ] + }, + { + "name": "interestCompoundingPeriodType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCompoundingPeriodType" + ] + }, + { + "name": "interestPostingPeriodType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestPostingPeriodType" + ] + }, + { + "name": "interestCalculationType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCalculationType" + ] + }, + { + "name": "interestCalculationDaysInYearType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1InterestCalculationDaysInYearType" + ] + }, + { + "name": "summary", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Summary" + ] + }, + { + "name": "interestFreePeriodApplicable", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "preClosurePenalApplicable", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "minDepositTerm", + "type": [ + "null", + "int" + ] + }, + { + "name": "maxDepositTerm", + "type": [ + "null", + "int" + ] + }, + { + "name": "minDepositTermType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1MinDepositTermType" + ] + }, + { + "name": "maxDepositTermType", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1MaxDepositTermType" + ] + }, + { + "name": "depositAmount", + "type": [ + "null", + "float" + ] + }, + { + "name": "maturityAmount", + "type": [ + "null", + "float" + ] + }, + { + "name": "maturityDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "depositPeriod", + "type": [ + "null", + "int" + ] + }, + { + "name": "depositPeriodFrequency", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1DepositPeriodFrequency" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Currency.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Currency.avsc index 97a2429fc..5803ecaa4 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Currency.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Currency.avsc @@ -1,75 +1,56 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1Currency", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "name", - "type": [ - "null", - "string" - ] - }, - { - "name": "decimalPlaces", - "type": [ - "null", - "int" - ] - }, - { - "name": "inMultiplesOf", - "type": [ - "null", - "int" - ] - }, - { - "name": "displaySymbol", - "type": [ - "null", - "string" - ] - }, - { - "name": "nameCode", - "type": [ - "null", - "string" - ] - }, - { - "name": "displayLabel", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1Currency", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "decimalPlaces", + "type": [ + "null", + "int" + ] + }, + { + "name": "inMultiplesOf", + "type": [ + "null", + "int" + ] + }, + { + "name": "displaySymbol", + "type": [ + "null", + "string" + ] + }, + { + "name": "nameCode", + "type": [ + "null", + "string" + ] + }, + { + "name": "displayLabel", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1DepositPeriodFrequency.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1DepositPeriodFrequency.avsc index c146be331..f77a86d96 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1DepositPeriodFrequency.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1DepositPeriodFrequency.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1DepositPeriodFrequency", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1DepositPeriodFrequency", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationDaysInYearType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationDaysInYearType.avsc index a1eb54976..bf3d29227 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationDaysInYearType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationDaysInYearType.avsc @@ -1,41 +1,21 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1InterestCalculationDaysInYearType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "accountBalance", - "type": [ - "null", - "float" - ] - }, - { - "name": "currency", - "type": [ - "null", - "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Currency" - ] - } - ] + "name": "FixedDepositAccountEventV1InterestCalculationDaysInYearType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "accountBalance", + "type": [ + "null", + "float" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountEventV1Currency" + ] + } + ] } -} \ No newline at end of file diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationType.avsc index ca40d5c1a..49e5e885b 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCalculationType.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1InterestCalculationType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1InterestCalculationType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCompoundingPeriodType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCompoundingPeriodType.avsc index 62210ecf6..094410019 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCompoundingPeriodType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestCompoundingPeriodType.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1InterestCompoundingPeriodType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1InterestCompoundingPeriodType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestPostingPeriodType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestPostingPeriodType.avsc index 28b80f7bf..548356bd5 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestPostingPeriodType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1InterestPostingPeriodType.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1InterestPostingPeriodType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1InterestPostingPeriodType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MaxDepositTermType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MaxDepositTermType.avsc index 2c5ef7738..9a815a0cd 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MaxDepositTermType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MaxDepositTermType.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1MaxDepositTermType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1MaxDepositTermType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MinDepositTermType.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MinDepositTermType.avsc index c6e101d20..c6a172207 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MinDepositTermType.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1MinDepositTermType.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1MinDepositTermType", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1MinDepositTermType", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Status.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Status.avsc index 3bb940192..cb9fc98c2 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Status.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Status.avsc @@ -1,110 +1,91 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1Status", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - }, - { - "name": "submittedAndPendingApproval", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "approved", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "rejected", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "withdrawnByApplicant", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "active", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "closed", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "prematureClosed", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "transferInProgress", - "type": [ - "null", - "boolean" - ] - }, - { - "name": "transferOnHold", - "type": [ - "null", - "boolean" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1Status", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedAndPendingApproval", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "approved", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "rejected", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "withdrawnByApplicant", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "prematureClosed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "transferInProgress", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "transferOnHold", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Summary.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Summary.avsc index 5161a64eb..65700e43f 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Summary.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Summary.avsc @@ -1,47 +1,28 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1Summary", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "id", - "type": [ - "null", - "int" - ] - }, - { - "name": "code", - "type": [ - "null", - "string" - ] - }, - { - "name": "description", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1Summary", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Timeline.avsc b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Timeline.avsc index 1fdf547cc..626baed86 100644 --- a/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Timeline.avsc +++ b/fineract-avro-schemas/src/main/avro/fixeddeposit/v1/FixedDepositAccountEventV1Timeline.avsc @@ -1,54 +1,35 @@ -/** - * 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. - */ - { - "name": "FixedDepositAccountEventV1Timeline", - "namespace": "org.apache.fineract.avro.fixeddeposit.v1", - "type": "record", - "fields": [ - { - "name": "submittedOnDate", - "type": [ - "null", - "string" - ] - }, - { - "name": "submittedByUsername", - "type": [ - "null", - "string" - ] - }, - { - "name": "submittedByFirstname", - "type": [ - "null", - "string" - ] - }, - { - "name": "submittedByLastname", - "type": [ - "null", - "string" - ] - } - ] -} \ No newline at end of file + "name": "FixedDepositAccountEventV1Timeline", + "namespace": "org.apache.fineract.avro.fixeddeposit.v1", + "type": "record", + "fields": [ + { + "name": "submittedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByLastname", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/generic/v1/CommandProcessingResultEventV1.avsc b/fineract-avro-schemas/src/main/avro/generic/v1/CommandProcessingResultEventV1.avsc index f9e7faec4..0841c3ae9 100644 --- a/fineract-avro-schemas/src/main/avro/generic/v1/CommandProcessingResultEventV1.avsc +++ b/fineract-avro-schemas/src/main/avro/generic/v1/CommandProcessingResultEventV1.avsc @@ -1,117 +1,98 @@ -/** - * 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. - */ - { - "name": "CommandProcessingResultEventV1", - "namespace": "org.apache.fineract.avro.generic.v1", - "type": "record", - "fields": [ - { - "name": "commandId", - "type": [ - "null", - "long" - ] - }, - { - "name": "officeId", - "type": [ - "null", - "long" - ] - }, - { - "name": "groupId", - "type": [ - "null", - "long" - ] - }, - { - "name": "clientId", - "type": [ - "null", - "long" - ] - }, - { - "name": "loanId", - "type": [ - "null", - "long" - ] - }, - { - "name": "savingsId", - "type": [ - "null", - "long" - ] - }, - { - "name": "resourceId", - "type": [ - "null", - "long" - ] - }, - { - "name": "subResourceId", - "type": [ - "null", - "long" - ] - }, - { - "name": "transactionId", - "type": [ - "null", - "long" - ] - }, - { - "name": "resourceIdentifier", - "type": [ - "null", - "string" - ] - }, - { - "name": "productId", - "type": [ - "null", - "long" - ] - }, - { - "name": "gsimId", - "type": [ - "null", - "long" - ] - }, - { - "name": "glimId", - "type": [ - "null", - "long" - ] - } - ] -} \ No newline at end of file + "name": "CommandProcessingResultEventV1", + "namespace": "org.apache.fineract.avro.generic.v1", + "type": "record", + "fields": [ + { + "name": "commandId", + "type": [ + "null", + "long" + ] + }, + { + "name": "officeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "groupId", + "type": [ + "null", + "long" + ] + }, + { + "name": "clientId", + "type": [ + "null", + "long" + ] + }, + { + "name": "loanId", + "type": [ + "null", + "long" + ] + }, + { + "name": "savingsId", + "type": [ + "null", + "long" + ] + }, + { + "name": "resourceId", + "type": [ + "null", + "long" + ] + }, + { + "name": "subResourceId", + "type": [ + "null", + "long" + ] + }, + { + "name": "transactionId", + "type": [ + "null", + "long" + ] + }, + { + "name": "resourceIdentifier", + "type": [ + "null", + "string" + ] + }, + { + "name": "productId", + "type": [ + "null", + "long" + ] + }, + { + "name": "gsimId", + "type": [ + "null", + "long" + ] + }, + { + "name": "glimId", + "type": [ + "null", + "long" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/generic/v1/MessageV1.avsc b/fineract-avro-schemas/src/main/avro/generic/v1/MessageV1.avsc new file mode 100644 index 000000000..cfbff9bc4 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/generic/v1/MessageV1.avsc @@ -0,0 +1,52 @@ +{ + "name": "MessageV1", + "namespace": "org.apache.fineract.avro", + "type": "record", + "fields": [ + { + "name": "id", + "doc": "The ID of the message to be sent", + "type": "int" + }, + { + "name": "source", + "doc": "A unique identifier of the source service", + "type": "string" + }, + { + "name": "type", + "doc": "The type of event the payload refers to. For example LOAN_APPROVED", + "type": "string" + }, + { + "name": "version", + "doc": "The version of the type of event. For example 1, 2, 3, etc", + "type": "string" + }, + { + "name": "category", + "doc": "The category of event the payload refers to. For example LOAN", + "type": "string" + }, + { + "name": "createdAt", + "doc": "The UTC time of when the event has been raised; in ISO_LOCAL_DATE_TIME format. For example 2011-12-03T10:15:30", + "type": "string" + }, + { + "name": "tenantId", + "doc": "The tenantId that the event has been sent from. For example default", + "type": "string" + }, + { + "name": "idempotencyKey", + "doc": "The idempotency key for this particular event for consumer de-duplication", + "type": "string" + }, + { + "name": "payload", + "doc": "The payload serialized into Avro bytes", + "type": "bytes" + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/AccountTransferDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/AccountTransferDataV1.avsc new file mode 100644 index 000000000..38f577042 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/AccountTransferDataV1.avsc @@ -0,0 +1,105 @@ +{ + "name": "AccountTransferDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "reversed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "transferAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "transferDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "transferDescription", + "type": [ + "null", + "string" + ] + }, + { + "name": "fromOffice", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.OfficeDataV1" + ] + }, + { + "name": "fromClient", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.ClientDataV1" + ] + }, + { + "name": "fromAccountType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "fromAccount", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PortfolioAccountDataV1" + ] + }, + { + "name": "toOffice", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.OfficeDataV1" + ] + }, + { + "name": "toClient", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.ClientDataV1" + ] + }, + { + "name": "toAccountType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "toAccount", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PortfolioAccountDataV1" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/CalendarDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/CalendarDataV1.avsc new file mode 100644 index 000000000..f47b9bc5a --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/CalendarDataV1.avsc @@ -0,0 +1,237 @@ +{ + "name": "CalendarDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "calendarInstanceId", + "type": [ + "null", + "long" + ] + }, + { + "name": "entityId", + "type": [ + "null", + "long" + ] + }, + { + "name": "entityType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "title", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "location", + "type": [ + "null", + "string" + ] + }, + { + "name": "startDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "endDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "meetingTime", + "type": [ + "null", + "string" + ] + }, + { + "name": "duration", + "type": [ + "null", + "int" + ] + }, + { + "name": "type", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "repeating", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "recurrence", + "type": [ + "null", + "string" + ] + }, + { + "name": "frequency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "interval", + "type": [ + "null", + "int" + ] + }, + { + "name": "repeatsOnDay", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "repeatsOnNthDayOfMonth", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "remindBy", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "firstReminder", + "type": [ + "null", + "int" + ] + }, + { + "name": "secondReminder", + "type": [ + "null", + "int" + ] + }, + { + "name": "recurringDates", + "type": [ + "null", + { + "type": "array", + "items": "string" + } + ] + }, + { + "name": "nextTenRecurringDates", + "type": [ + "null", + { + "type": "array", + "items": "string" + } + ] + }, + { + "name": "humanReadable", + "type": [ + "null", + "string" + ] + }, + { + "name": "recentEligibleMeetingDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "createdDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "lastUpdatedDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "createdByUserId", + "type": [ + "null", + "long" + ] + }, + { + "name": "createdByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "lastUpdatedByUserId", + "type": [ + "null", + "long" + ] + }, + { + "name": "lastUpdatedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "repeatsOnDayOfMonth", + "type": [ + "null", + "int" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/ChargeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/ChargeDataV1.avsc new file mode 100644 index 000000000..715ad3090 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/ChargeDataV1.avsc @@ -0,0 +1,161 @@ +{ + "name": "ChargeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "penalty", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "freeWithdrawal", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "freeWithdrawalChargeFrequency", + "type": [ + "null", + "int" + ] + }, + { + "name": "restartFrequency", + "type": [ + "null", + "int" + ] + }, + { + "name": "restartFrequencyEnum", + "type": [ + "null", + "int" + ] + }, + { + "name": "isPaymentType", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "paymentTypeOptions", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PaymentTypeDataV1" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "amount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "chargeTimeType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "chargeAppliesTo", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "chargeCalculationType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "chargePaymentMode", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "feeOnMonthDay", + "type": [ + "null", + "string" + ] + }, + { + "name": "feeInterval", + "type": [ + "null", + "int" + ] + }, + { + "name": "minCap", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "maxCap", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeFrequency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "incomeOrLiabilityAccount", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.GLAccountDataV1" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/ClientCollateralManagementV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/ClientCollateralManagementV1.avsc new file mode 100644 index 000000000..c0b7813e9 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/ClientCollateralManagementV1.avsc @@ -0,0 +1,56 @@ +{ + "name": "ClientCollateralManagementDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "quantity", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "pctToBase", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "unitPrice", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "total", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalCollateral", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/ClientDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/ClientDataV1.avsc new file mode 100644 index 000000000..5c942a146 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/ClientDataV1.avsc @@ -0,0 +1,251 @@ +{ + "name": "ClientDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "subStatus", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "activationDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "firstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "middlename", + "type": [ + "null", + "string" + ] + }, + { + "name": "lastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "fullname", + "type": [ + "null", + "string" + ] + }, + { + "name": "displayName", + "type": [ + "null", + "string" + ] + }, + { + "name": "mobileNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "emailAddress", + "type": [ + "null", + "string" + ] + }, + { + "name": "dateOfBirth", + "type": [ + "null", + "string" + ] + }, + { + "name": "gender", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "clientType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "clientClassification", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "isStaff", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "officeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "officeName", + "type": [ + "null", + "string" + ] + }, + { + "name": "transferToOfficeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "transferToOfficeName", + "type": [ + "null", + "string" + ] + }, + { + "name": "imageId", + "type": [ + "null", + "long" + ] + }, + { + "name": "imagePresent", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "staffId", + "type": [ + "null", + "long" + ] + }, + { + "name": "staffName", + "type": [ + "null", + "string" + ] + }, + { + "name": "timeline", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.ClientTimelineDataV1" + ] + }, + { + "name": "savingsProductId", + "type": [ + "null", + "long" + ] + }, + { + "name": "savingsProductName", + "type": [ + "null", + "string" + ] + }, + { + "name": "savingsAccountId", + "type": [ + "null", + "long" + ] + }, + { + "name": "legalForm", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "clientCollateralManagements", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.ClientCollateralManagementDataV1" + } + ] + }, + { + "name": "groups", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.GroupGeneralDataV1" + } + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/ClientTimelineDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/ClientTimelineDataV1.avsc new file mode 100644 index 000000000..263c76d4b --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/ClientTimelineDataV1.avsc @@ -0,0 +1,91 @@ +{ + "name": "ClientTimelineDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "submittedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "activatedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "activatedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "activatedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "activatedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByLastname", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/CodeValueDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/CodeValueDataV1.avsc new file mode 100644 index 000000000..d04246f34 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/CodeValueDataV1.avsc @@ -0,0 +1,49 @@ +{ + "name": "CodeValueDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "position", + "type": [ + "null", + "int" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "mandatory", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc new file mode 100644 index 000000000..e8dca556a --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc @@ -0,0 +1,63 @@ +{ + "name": "CollectionDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "availableDisbursementAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "pastDueDays", + "type": [ + "null", + "int" + ] + }, + { + "name": "nextPaymentDueDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "delinquentDays", + "type": [ + "null", + "int" + ] + }, + { + "name": "delinquentDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "delinquentAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "lastPaymentDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "lastPaymentAmount", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/CurrencyDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/CurrencyDataV1.avsc new file mode 100644 index 000000000..3371048ac --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/CurrencyDataV1.avsc @@ -0,0 +1,56 @@ +{ + "name": "CurrencyDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "decimalPlaces", + "type": [ + "null", + "int" + ] + }, + { + "name": "inMultiplesOf", + "type": [ + "null", + "int" + ] + }, + { + "name": "displaySymbol", + "type": [ + "null", + "string" + ] + }, + { + "name": "nameCode", + "type": [ + "null", + "string" + ] + }, + { + "name": "displayLabel", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/DelinquencyRangeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/DelinquencyRangeDataV1.avsc new file mode 100644 index 000000000..4c232066a --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/DelinquencyRangeDataV1.avsc @@ -0,0 +1,35 @@ +{ + "name": "DelinquencyRangeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "classification", + "type": [ + "null", + "string" + ] + }, + { + "name": "minimumAgeDays", + "type": [ + "null", + "int" + ] + }, + { + "name": "maximumAgeDays", + "type": [ + "null", + "int" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/DisbursementDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/DisbursementDataV1.avsc new file mode 100644 index 000000000..6c216a2c6 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/DisbursementDataV1.avsc @@ -0,0 +1,63 @@ +{ + "name": "DisbursementDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "expectedDisbursementDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "actualDisbursementDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "principal", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "netDisbursalAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "loanChargeId", + "type": [ + "null", + "string" + ] + }, + { + "name": "chargeAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "waivedChargeAmount", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/EnumOptionDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/EnumOptionDataV1.avsc new file mode 100644 index 000000000..8186d0eb7 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/EnumOptionDataV1.avsc @@ -0,0 +1,28 @@ +{ + "name": "EnumOptionDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "value", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/GLAccountDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/GLAccountDataV1.avsc new file mode 100644 index 000000000..b9f6e86d6 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/GLAccountDataV1.avsc @@ -0,0 +1,91 @@ +{ + "name": "GLAccountDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "parentId", + "type": [ + "null", + "long" + ] + }, + { + "name": "glCode", + "type": [ + "null", + "string" + ] + }, + { + "name": "disabled", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "manualEntriesAllowed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "type", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "usage", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "nameDecorated", + "type": [ + "null", + "string" + ] + }, + { + "name": "tagId", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "organizationRunningBalance", + "type": [ + "null", + "long" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/GroupGeneralDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/GroupGeneralDataV1.avsc new file mode 100644 index 000000000..ae6713264 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/GroupGeneralDataV1.avsc @@ -0,0 +1,139 @@ +{ + "name": "GroupGeneralDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "activationDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "officeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "officeName", + "type": [ + "null", + "string" + ] + }, + { + "name": "centerId", + "type": [ + "null", + "long" + ] + }, + { + "name": "centerName", + "type": [ + "null", + "string" + ] + }, + { + "name": "staffId", + "type": [ + "null", + "long" + ] + }, + { + "name": "staffName", + "type": [ + "null", + "string" + ] + }, + { + "name": "hierarchy", + "type": [ + "null", + "string" + ] + }, + { + "name": "groupLevel", + "type": [ + "null", + "string" + ] + }, + { + "name": "groupRoles", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.GroupRoleDataV1" + } + ] + }, + { + "name": "calendarsData", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.CalendarDataV1" + } + ] + }, + { + "name": "collectionMeetingCalendar", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CalendarDataV1" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/GroupRoleDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/GroupRoleDataV1.avsc new file mode 100644 index 000000000..fbaabe466 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/GroupRoleDataV1.avsc @@ -0,0 +1,35 @@ +{ + "name": "GroupRoleDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "code", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CodeValueDataV1" + ] + }, + { + "name": "clientId", + "type": [ + "null", + "long" + ] + }, + { + "name": "clientName", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc new file mode 100644 index 000000000..016fc5327 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc @@ -0,0 +1,112 @@ +{ + "name": "LoanAccountSummaryDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "parentAccountNumber", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "productId", + "type": [ + "null", + "long" + ] + }, + { + "name": "productName", + "type": [ + "null", + "string" + ] + }, + { + "name": "shortProductName", + "type": [ + "null", + "string" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanStatusEnumDataV1" + ] + }, + { + "name": "loanType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "loanCycle", + "type": [ + "null", + "int" + ] + }, + { + "name": "timeline", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanApplicationTimelineV1" + ] + }, + { + "name": "inArrears", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "originalLoan", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "loanBalance", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountPaid", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc new file mode 100644 index 000000000..4c1059bb0 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc @@ -0,0 +1,217 @@ +{ + "name": "LoanApplicationTimelineV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "submittedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "submittedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "rejectedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "rejectedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "rejectedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "rejectedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "withdrawnOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "withdrawnByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "withdrawnByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "withdrawnByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "approvedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "approvedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "approvedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "approvedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "expectedDisbursementDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "actualDisbursementDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "disbursedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "disbursedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "disbursedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "closedByLastname", + "type": [ + "null", + "string" + ] + }, + { + "name": "expectedMaturityDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "writeOffOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "writeOffByUsername", + "type": [ + "null", + "string" + ] + }, + { + "name": "writeOffByFirstname", + "type": [ + "null", + "string" + ] + }, + { + "name": "writeOffByLastname", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargeDataV1.avsc new file mode 100644 index 000000000..5e24b9883 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargeDataV1.avsc @@ -0,0 +1,206 @@ +{ + "name": "LoanChargeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "chargeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "chargeTimeType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "dueDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "chargeCalculationType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "percentage", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountPercentageAppliedTo", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "amount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountOrPercentage", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "chargeOptions", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.ChargeDataV1" + } + ] + }, + { + "name": "penalty", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "chargePaymentMode", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "paid", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "waived", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "chargePayable", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "loanId", + "type": [ + "null", + "long" + ] + }, + { + "name": "minCap", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "maxCap", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "installmentChargeData", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanInstallmentChargeDataV1" + ] + }, + { + "name": "amountAccrued", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountUnrecognized", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargePaidByDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargePaidByDataV1.avsc new file mode 100644 index 000000000..6f2da5c68 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanChargePaidByDataV1.avsc @@ -0,0 +1,49 @@ +{ + "name": "LoanChargePaidByDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "amount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "installmentNumber", + "type": [ + "null", + "int" + ] + }, + { + "name": "chargeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "transactionId", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanEventV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanEventV1.avsc new file mode 100644 index 000000000..0b6e33068 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanEventV1.avsc @@ -0,0 +1,630 @@ +{ + "name": "LoanEventV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "status", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanStatusEnumDataV1" + ] + }, + { + "name": "subStatus", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "clientId", + "type": [ + "null", + "long" + ] + }, + { + "name": "clientAccountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "clientName", + "type": [ + "null", + "string" + ] + }, + { + "name": "clientOfficeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "loanProductId", + "type": [ + "null", + "long" + ] + }, + { + "name": "loanProductName", + "type": [ + "null", + "string" + ] + }, + { + "name": "loanProductDescription", + "type": [ + "null", + "string" + ] + }, + { + "name": "isLoanProductLinkedToFloatingRate", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "fundId", + "type": [ + "null", + "long" + ] + }, + { + "name": "fundName", + "type": [ + "null", + "string" + ] + }, + { + "name": "loanPurposeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "loanPurposeName", + "type": [ + "null", + "string" + ] + }, + { + "name": "loanOfficerId", + "type": [ + "null", + "long" + ] + }, + { + "name": "loanOfficerName", + "type": [ + "null", + "string" + ] + }, + { + "name": "loanType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "principal", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "approvedPrincipal", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "proposedPrincipal", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "netDisbursalAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "termFrequency", + "type": [ + "null", + "int" + ] + }, + { + "name": "termPeriodFrequencyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "numberOfRepayments", + "type": [ + "null", + "int" + ] + }, + { + "name": "repaymentEvery", + "type": [ + "null", + "int" + ] + }, + { + "name": "repaymentFrequencyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "repaymentFrequencyNthDayType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "repaymentFrequencyDayOfWeekType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "interestRatePerPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestRateFrequencyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "annualInterestRate", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "isFloatingInterestRate", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "interestRateDifferential", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amortizationType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "interestType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "interestCalculationPeriodType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "allowPartialPeriodInterestCalculation", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "inArrearsTolerance", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "transactionProcessingStrategyId", + "type": [ + "null", + "long" + ] + }, + { + "name": "transactionProcessingStrategyName", + "type": [ + "null", + "string" + ] + }, + { + "name": "graceOnPrincipalPayment", + "type": [ + "null", + "int" + ] + }, + { + "name": "recurringMoratoriumOnPrincipalPeriods", + "type": [ + "null", + "int" + ] + }, + { + "name": "graceOnInterestPayment", + "type": [ + "null", + "int" + ] + }, + { + "name": "graceOnInterestCharged", + "type": [ + "null", + "int" + ] + }, + { + "name": "graceOnArrearsAgeing", + "type": [ + "null", + "int" + ] + }, + { + "name": "interestChargedFromDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "expectedFirstRepaymentOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "syncDisbursementWithMeeting", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "timeline", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "summary", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanSummaryDataV1" + ] + }, + { + "name": "repaymentSchedule", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanScheduleDataV1" + ] + }, + { + "name": "transactions", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanTransactionDataV1" + } + ] + }, + { + "name": "charges", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanChargeDataV1" + } + ] + }, + { + "name": "meeting", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CalendarDataV1" + ] + }, + { + "name": "disbursementDetails", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.DisbursementDataV1" + } + ] + }, + { + "name": "originalSchedule", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanScheduleDataV1" + ] + }, + { + "name": "totalOverpaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "loanCounter", + "type": [ + "null", + "int" + ] + }, + { + "name": "loanProductCounter", + "type": [ + "null", + "int" + ] + }, + { + "name": "linkedAccount", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PortfolioAccountDataV1" + ] + }, + { + "name": "accountLinkingOptions", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.PortfolioAccountDataV1" + } + ] + }, + { + "name": "multiDisburseLoan", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "canDefineInstallmentAmount", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "fixedEmiAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "maxOutstandingLoanBalance", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "canDisburse", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "emiAmountVariations", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanTermVariationsDataV1" + } + ] + }, + { + "name": "clientActiveLoanOptions", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanAccountSummaryDataV1" + } + ] + }, + { + "name": "canUseForTopup", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "isTopup", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closureLoanId", + "type": [ + "null", + "long" + ] + }, + { + "name": "closureLoanAccountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "topupAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "inArrears", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "isNPA", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "overdueCharges", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.ChargeDataV1" + } + ] + }, + { + "name": "daysInMonthType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "daysInYearType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "isInterestRecalculationEnabled", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "interestRecalculationData", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanInterestRecalculationDataV1" + ] + }, + { + "name": "createStandingInstructionAtDisbursement", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "delinquent", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CollectionDataV1" + ] + }, + { + "name": "delinquencyRange", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.DelinquencyRangeDataV1" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanInstallmentChargeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanInstallmentChargeDataV1.avsc new file mode 100644 index 000000000..81b087f4c --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanInstallmentChargeDataV1.avsc @@ -0,0 +1,70 @@ +{ + "name": "LoanInstallmentChargeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "installmentNumber", + "type": [ + "null", + "int" + ] + }, + { + "name": "dueDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "amount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "paid", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "waived", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "amountAccrued", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "amountUnrecognized", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanInterestRecalculationDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanInterestRecalculationDataV1.avsc new file mode 100644 index 000000000..ee4373fd4 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanInterestRecalculationDataV1.avsc @@ -0,0 +1,133 @@ +{ + "name": "LoanInterestRecalculationDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "loanId", + "type": [ + "null", + "long" + ] + }, + { + "name": "interestRecalculationCompoundingType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "rescheduleStrategyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "calendarData", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CalendarDataV1" + ] + }, + { + "name": "recalculationRestFrequencyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationRestFrequencyInterval", + "type": [ + "null", + "int" + ] + }, + { + "name": "recalculationRestFrequencyNthDay", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationRestFrequencyWeekday", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationRestFrequencyOnDay", + "type": [ + "null", + "int" + ] + }, + { + "name": "recalculationCompoundingFrequencyType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationCompoundingFrequencyInterval", + "type": [ + "null", + "int" + ] + }, + { + "name": "recalculationCompoundingFrequencyNthDay", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationCompoundingFrequencyWeekday", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "recalculationCompoundingFrequencyOnDay", + "type": [ + "null", + "int" + ] + }, + { + "name": "isCompoundingToBePostedAsTransaction", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "compoundingCalendarData", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CalendarDataV1" + ] + }, + { + "name": "allowCompoundingOnEod", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc new file mode 100644 index 000000000..8346a95bc --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc @@ -0,0 +1,126 @@ +{ + "name": "LoanScheduleDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "loanTermInDays", + "type": [ + "null", + "int" + ] + }, + { + "name": "totalPrincipalDisbursed", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPrincipalExpected", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPrincipalPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalInterestCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalFeeChargesCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPenaltyChargesCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalRepaymentExpected", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalRepayment", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPaidInAdvance", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPaidLate", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "periods", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.SchedulePeriodDataV1" + ] + }, + { + "name": "futurePeriods", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.SchedulePeriodDataV1" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc new file mode 100644 index 000000000..052e6b9dc --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc @@ -0,0 +1,84 @@ +{ + "name": "LoanStatusEnumDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "pendingApproval", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "waitingForDisbursal", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "active", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closedObligationsMet", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closedWrittenOff", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closedRescheduled", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "closed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "overpaid", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc new file mode 100644 index 000000000..a2ba0822a --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc @@ -0,0 +1,266 @@ +{ + "name": "LoanSummaryDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "principalDisbursed", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesDueAtDisbursementCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesCharged", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalExpectedRepayment", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalRepayment", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalExpectedCostOfLoan", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalCostOfLoan", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalRecovered", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "overdueSinceDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "writeoffReasonId", + "type": [ + "null", + "long" + ] + }, + { + "name": "writeoffReason", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanTermVariationsDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTermVariationsDataV1.avsc new file mode 100644 index 000000000..867063c60 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTermVariationsDataV1.avsc @@ -0,0 +1,56 @@ +{ + "name": "LoanTermVariationsDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "termType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.EnumOptionDataV1" + ] + }, + { + "name": "termVariationApplicableFrom", + "type": [ + "null", + "string" + ] + }, + { + "name": "decimalValue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "dateValue", + "type": [ + "null", + "string" + ] + }, + { + "name": "isSpecificToInstallment", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "isProcessed", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc new file mode 100644 index 000000000..683837da6 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc @@ -0,0 +1,171 @@ +{ + "name": "LoanTransactionDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "officeId", + "type": [ + "null", + "long" + ] + }, + { + "name": "officeName", + "type": [ + "null", + "string" + ] + }, + { + "name": "type", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.LoanTransactionEnumDataV1" + ] + }, + { + "name": "date", + "type": [ + "null", + "string" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "paymentDetailData", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PaymentDetailDataV1" + ] + }, + { + "name": "amount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "netDisbursalAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalPortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestPortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesPortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesPortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "overpaymentPortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "unrecognizedIncomePortion", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "transfer", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.AccountTransferDataV1" + ] + }, + { + "name": "fixedEmiAmount", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "outstandingLoanBalance", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "submittedOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "manuallyReversed", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "possibleNextRepaymentDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "loanChargePaidByList", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanChargePaidByDataV1" + } + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionEnumDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionEnumDataV1.avsc new file mode 100644 index 000000000..ab2dee641 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionEnumDataV1.avsc @@ -0,0 +1,182 @@ +{ + "name": "LoanTransactionEnumDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "int" + ] + }, + { + "name": "code", + "type": [ + "null", + "string" + ] + }, + { + "name": "value", + "type": [ + "null", + "string" + ] + }, + { + "name": "disbursement", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "repaymentAtDisbursement", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "repayment", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "merchantIssuedRefund", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "payoutRefund", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "goodwillCredit", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "chargeRefund", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "contra", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "waiveInterest", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "waiveCharges", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "accrual", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "writeOff", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "recoveryRepayment", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "initiateTransfer", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "approveTransfer", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "withdrawTransfer", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "rejectTransfer", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "chargePayment", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "refund", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "refundForActiveLoans", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "creditBalanceRefund", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "chargeback", + "type": [ + "null", + "boolean" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/OfficeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/OfficeDataV1.avsc new file mode 100644 index 000000000..350056d9c --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/OfficeDataV1.avsc @@ -0,0 +1,73 @@ +{ + "name": "OfficeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "nameDecorated", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "openingDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "hierarchy", + "type": [ + "null", + "string" + ] + }, + { + "name": "parentId", + "type": [ + "null", + "long" + ] + }, + { + "name": "parentName", + "type": [ + "null", + "string" + ] + }, + { + "name": "allowedParents", + "type": [ + "null", + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.OfficeDataV1" + } + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/PaymentDetailDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/PaymentDetailDataV1.avsc new file mode 100644 index 000000000..ddabc8ea8 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/PaymentDetailDataV1.avsc @@ -0,0 +1,56 @@ +{ + "name": "PaymentDetailDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "paymentType", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.PaymentTypeDataV1" + ] + }, + { + "name": "accountNumber", + "type": [ + "null", + "string" + ] + }, + { + "name": "checkNumber", + "type": [ + "null", + "string" + ] + }, + { + "name": "routingCode", + "type": [ + "null", + "string" + ] + }, + { + "name": "receiptNumber", + "type": [ + "null", + "string" + ] + }, + { + "name": "bankNumber", + "type": [ + "null", + "string" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/PaymentTypeDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/PaymentTypeDataV1.avsc new file mode 100644 index 000000000..3387f36f8 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/PaymentTypeDataV1.avsc @@ -0,0 +1,42 @@ +{ + "name": "PaymentTypeDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "name", + "type": [ + "null", + "string" + ] + }, + { + "name": "description", + "type": [ + "null", + "string" + ] + }, + { + "name": "isCashPayment", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "position", + "type": [ + "null", + "long" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/PortfolioAccountDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/PortfolioAccountDataV1.avsc new file mode 100644 index 000000000..adfa8c07e --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/PortfolioAccountDataV1.avsc @@ -0,0 +1,98 @@ +{ + "name": "PortfolioAccountDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "id", + "type": [ + "null", + "long" + ] + }, + { + "name": "accountNo", + "type": [ + "null", + "string" + ] + }, + { + "name": "externalId", + "type": [ + "null", + "string" + ] + }, + { + "name": "groupId", + "type": [ + "null", + "long" + ] + }, + { + "name": "groupName", + "type": [ + "null", + "string" + ] + }, + { + "name": "clientId", + "type": [ + "null", + "long" + ] + }, + { + "name": "clientName", + "type": [ + "null", + "string" + ] + }, + { + "name": "productId", + "type": [ + "null", + "long" + ] + }, + { + "name": "productName", + "type": [ + "null", + "string" + ] + }, + { + "name": "fieldOfficerId", + "type": [ + "null", + "long" + ] + }, + { + "name": "fieldOfficerName", + "type": [ + "null", + "string" + ] + }, + { + "name": "currency", + "type": [ + "null", + "org.apache.fineract.avro.loan.v1.CurrencyDataV1" + ] + }, + { + "name": "amtForTransfer", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/SchedulePeriodDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/SchedulePeriodDataV1.avsc new file mode 100644 index 000000000..b391a6267 --- /dev/null +++ b/fineract-avro-schemas/src/main/avro/loan/v1/SchedulePeriodDataV1.avsc @@ -0,0 +1,287 @@ +{ + "name": "SchedulePeriodDataV1", + "namespace": "org.apache.fineract.avro.loan.v1", + "type": "record", + "fields": [ + { + "name": "period", + "type": [ + "null", + "int" + ] + }, + { + "name": "fromDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "dueDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "obligationsMetOnDate", + "type": [ + "null", + "string" + ] + }, + { + "name": "complete", + "type": [ + "null", + "boolean" + ] + }, + { + "name": "daysInPeriod", + "type": [ + "null", + "int" + ] + }, + { + "name": "principalDisbursed", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalOriginalDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "principalLoanBalanceOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestOriginalDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "interestOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "feeChargesOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesDue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesPaid", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesWaived", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesWrittenOff", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "penaltyChargesOutstanding", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOriginalDueForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalDueForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPaidForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPaidInAdvanceForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalPaidLateForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWaivedForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalWrittenOffForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOutstandingForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalOverdue", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalActualCostOfLoanForPeriod", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "name": "totalInstallmentAmountForPeriod", + "type": [ + "null", + "bigdecimal" + ] + } + ] +} diff --git a/fineract-avro-schemas/src/main/resources/avro-templates/bigdecimal.avsc b/fineract-avro-schemas/src/main/resources/avro-templates/bigdecimal.avsc new file mode 100644 index 000000000..9b1cec773 --- /dev/null +++ b/fineract-avro-schemas/src/main/resources/avro-templates/bigdecimal.avsc @@ -0,0 +1,6 @@ +{ + "logicalType": "decimal", + "precision": 20, + "scale": 8, + "type": "bytes" +} diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java index 1b4c47a33..6aef79bbd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java @@ -64,6 +64,7 @@ public final class ChargeData implements Comparable, Serializable { private final GLAccountData incomeOrLiabilityAccount; private final TaxGroupData taxGroup; + // template attributes private final Collection currencyOptions; private final List chargeCalculationTypeOptions;// private final List chargeAppliesToOptions;//